Cut points avoiding a finite set
ProvedMonotonicity_Theorem.cut_points_avoiding_finite_setLet be a dense linear order without endpoints, let be a finite subset of the line (finiteness in the sense of IsFinite1: the first coordinates of the members of are exactly the entries of some finite list), and let .
Claim. There are finitely many cut points
such that none of the intervening open intervals meets .
This is the purely order-theoretic half of the finite-partition step of the Monotonicity Theorem: it converts a finite exceptional set into an explicit finite chain of cut points whose open pieces avoid it. The proof is by induction on the list witnessing the finiteness of : if the first listed value does not satisfy , a chain avoiding the remaining values already works, because every open piece is contained in ; if , one concatenates a chain for the remaining values on with a chain for the remaining values on , and itself becomes a cut point, so no open piece contains it.
import Definitions.Def_Monotonicity_Theorem_Framework
theorem Monotonicity_Theorem.cut_points_avoiding_finite_set {R : Type} (D : DenseLinearOrderNoEndpoints R)
{F : Set (Power R 1)} (hF : IsFinite1 F) {a b : Power R 1} (hab : Lt1 D a b) :
exists k : Nat, exists p : Fin (k + 1) -> Power R 1,
p 0 = a /\ p (Fin.last k) = b /\
(forall i : Fin k, Lt1 D (p i.castSucc) (p i.succ)) /\
(forall i : Fin k, forall x : Power R 1,
openInterval D (Endpoint.finite ((p i.castSucc) 0)) (Endpoint.finite ((p i.succ) 0)) x ->
Not (F x)) := by sorry