Lemma 1, constant or injective window
ProvedMonotonicity_Theorem.lemma_oneA definable map on an infinite domain has a nonempty open subwindow on which it is either constant or injective. First step of the monotonicity argument.
import Definitions.Def_Monotonicity_Theorem_Framework2
theorem Monotonicity_Theorem.lemma_one {R : Type} [LinearOrder R] [DenselyOrdered R] [NoMaxOrder R] [NoMinOrder R] (M : OMinimalStructure R)
{I B : Set (Power R 1)} (f : DefinableFunction M I B) (hI : Set.Infinite I) :
∃ a b : Endpoint R, Endpoint.lt a b ∧
(openInterval a b).Subset I ∧
((∀ x (hxI : I x), openInterval a b x → ∀ y (hyI : I y), openInterval a b y →
f.toFun (Subtype.mk x hxI) = f.toFun (Subtype.mk y hyI)) ∨
(∀ x (hxI : I x), openInterval a b x → ∀ y (hyI : I y), openInterval a b y →
f.toFun (Subtype.mk x hxI) = f.toFun (Subtype.mk y hyI) → x = y)) := by sorryRead-back
What the Lean code literally says, in plain math · muse-spark
Let be a type equipped with a linear order that is dense and has neither a maximum nor a minimum, let be an o-minimal structure on , let and be sets of -tuples over , let be a function from to definable relative to , and assume is infinite; then there exist endpoints and over such that is strictly less than , every -tuple in the open interval belongs to , and at least one of the following two alternatives holds, each quantifying only over those and that both belong to and belong to with applied to and regarded as elements of : either for all such and the values of at and are equal, or for all such and equality of the values of at and implies .
Confirmed by the mission captain (proposal self-audit).