An injective definable function has no interval of strict local maxima
ProvedMonotonicity_Theorem.not_uniform_below_belowLet be an o-minimal structure over a dense linear order without endpoints , let be a definable function of one variable, and let satisfy . Assume is injective on .
Claim. cannot have the below-below germ pattern on ; that is, it is impossible that every point of is a strict local maximum of .
This is the mirror image of the exclusion of the above-above pattern, and together with it completes the passage from the four-fold germ classification of an injective definable function to the dichotomy "strictly increasing or strictly decreasing on a subinterval". As in that case the hypothesis is consistent for arbitrary injective functions on a real interval, so the proof must use o-minimality.
A natural line of attack is through the running maxima. For an interval the sets
are definable, and is strictly increasing on and strictly decreasing on . Under the hypothesis neither can contain an interval, since a point interior to an interval of strict monotonicity is not a strict local maximum; hence both are finite. Producing an infinite definable subset of or of therefore yields the contradiction.
Formalization note. UniformBelowBelow is the predicate of the accompanying definitions: every has a window inside with for every of the domain in .
import Definitions.Def_Monotonicity_Theorem_Extremal_Germs
theorem Monotonicity_Theorem.not_uniform_below_below {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)
(hU : UniformBelowBelow D f u v) :
False := by sorry