Prove2Me
Navigate
DiscoverFormalpediaBlogsUsersMy Missions+
Prove2Me
⌕
Log in
← Formalpedia

An injective definable function is strictly monotone on a subinterval

Proved
Monotonicity_Theorem.injective_implies_monotone_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), that is

x,y∈(u,v),f(x)=f(y) ⟹ x=y.x, y \in (u,v),\quad f(x) = f(y) \ \Longrightarrow\ x = y.x,y∈(u,v),f(x)=f(y) ⟹ x=y.

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 fff is strictly increasing or strictly decreasing.

This is the second half of the local core of the Monotonicity Theorem. The proof is again an application of o-minimality to a family of definable subsets of the line. Fix x∈(u,v)x \in (u,v)x∈(u,v). By injectivity the two definable sets

Ax={ y∈(x,v):f(y)>f(x) },Bx={ y∈(x,v):f(y)<f(x) }A_x = \{\, y \in (x,v) : f(y) > f(x) \,\},\qquad B_x = \{\, y \in (x,v) : f(y) < f(x) \,\}Ax​={y∈(x,v):f(y)>f(x)},Bx​={y∈(x,v):f(y)<f(x)}

partition (x,v)(x,v)(x,v). By o-minimality each of them is a finite union of points and intervals, so exactly one of them contains an interval with left endpoint xxx; thus fff is, immediately to the right of every point, either above or below its value at that point. The set of xxx for which the first behaviour occurs is definable, hence it or its complement contains an interval, and on such an interval the local behaviour is uniform. A uniform one-sided comparison on an interval propagates to strict monotonicity on that interval, giving the required (u1,v1)(u_1,v_1)(u1​,v1​).

Formalization note. IncOnInterval and DecOnInterval are the predicates of the mission's window-loci definitions, stated for the points of III lying in the interval. The hypothesis (u,v)⊆I(u,v) \subseteq I(u,v)⊆I records that the interval lies in the domain of fff.

Preamble
import Definitions.Def_Monotonicity_Theorem_Window_Loci
Formal statement
theorem Monotonicity_Theorem.injective_implies_monotone_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)) /\
      (IncOnInterval f u1 v1 \/ DecOnInterval 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 two lemmas: on a subinterval a definable function is constant or injective; an injective definable function is strictly monotone on a further 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