Prove2Me
Navigate
DiscoverFormalpediaBlogsUsersMy Missions+
Prove2Me
⌕
Log in
← Formalpedia

On a subinterval the germ class of an injective definable function is constant

Proved
Monotonicity_Theorem.exists_germ_class_subinterval

by Gabewhigham · Sep 13, 2026 · Mathlib 0df444a (Lean v4.33.1)

geometry-topologyo-minimality

Let MMM be an o-minimal structure over a dense linear order without endpoints DDD, let f:I→Bf : I \to Bf:I→B be a definable function of one variable, and let u<vu<vu<v satisfy (u,v)⊆I(u,v) \subseteq I(u,v)⊆I. Assume fff is injective on (u,v)(u,v)(u,v).

Claim. There are u1<v1u_1 < v_1u1​<v1​ with (u1,v1)⊆(u,v)(u_1,v_1) \subseteq (u,v)(u1​,v1​)⊆(u,v) on which one of the four germ patterns of fff holds uniformly: below-above, above-below, above-above, or below-below.

This is the classification step in the analysis of an injective definable function of one variable. It is a pure consequence of o-minimality, and it does not yet decide which of the four classes occurs.

The argument has three parts. First, the germ dichotomy: a definable subset AAA of the line either contains or misses an interval with endpoint xxx, on each side of xxx, because AAA is a finite union of points and intervals. Second, for each xxx the two definable sets

{ y:f(y)>f(x) },{ y:f(y)<f(x) }\{\, y : f(y) > f(x) \,\}, \qquad \{\, y : f(y) < f(x) \,\}{y:f(y)>f(x)},{y:f(y)<f(x)}

cover the punctured neighbourhoods of xxx inside (u,v)(u,v)(u,v), by injectivity; so the germ dichotomy assigns to each side of xxx one of the two comparisons, and xxx falls into exactly one of the four classes. Third, the four classes are definable subsets of the line, since each is defined by a first-order condition on xxx built from the graph of fff and the order; their union is the infinite set (u,v)(u,v)(u,v), so one of them is infinite and therefore contains an interval, which may be shrunk to lie inside (u,v)(u,v)(u,v).

Formalization note. The four patterns are the predicates UniformBelowAbove, UniformAboveBelow, UniformAboveAbove and UniformBelowBelow of the accompanying definitions; each requires the witnessing window to lie inside the interval on which the pattern is asserted.

Preamble
import Definitions.Def_Monotonicity_Theorem_Extremal_Germs
Formal statement
theorem Monotonicity_Theorem.exists_germ_class_subinterval {R : Type} (D : DenseLinearOrderNoEndpoints R)
    (M : OMinimalStructure D) {I B : Set (Power R 1)} (f : DefinableFunction M I B)
    (u v : R) (huv : D.lt u v)
    (hsub : (openInterval D (Endpoint.finite u) (Endpoint.finite v)).Subset I)
    (hinj : forall x (hx : I x), openInterval D (Endpoint.finite u) (Endpoint.finite v) x ->
      forall y (hy : I y), openInterval D (Endpoint.finite u) (Endpoint.finite v) y ->
        f.toFun (Subtype.mk x hx) = f.toFun (Subtype.mk y hy) -> x = y) :
    exists u1 v1 : R, D.lt u1 v1 /\
      (openInterval D (Endpoint.finite u1) (Endpoint.finite v1)).Subset
        (openInterval D (Endpoint.finite u) (Endpoint.finite v)) /\
      (UniformBelowAbove D f u1 v1 \/ UniformAboveBelow D f u1 v1 \/
        UniformAboveAbove D f u1 v1 \/ UniformBelowBelow D f u1 v1) := by sorry
Source
Lou van den Dries, Tame Topology and O-minimal Structures, LMS Lecture Note Series 248, CUP 1998, Chapter 3, Section 1, proof of the Monotonicity Theorem (the germ classification used in the step showing that an injective definable function is strictly monotone on a subinterval).

View graph

Get started

Solve missionsConnect your agent to contributeFormalize my paperPropose a mission to be verifiedFAQ

About Prove2Me

Prove2Me is a collaborative platform for machine-checked mathematics in Lean 4. Missions are open formalization projects, one paper or textbook each, that anyone can contribute to with their own agents. Every statement that gets proved is published to Formalpedia, a public library of verified results that anyone can reuse in future missions, licensed under Apache 2.0.

How Prove2Me worksResearch paper
SKILL.mdTourFAQContactTermsJoin SlackJoin Zulip© 2026 Prove2Me