{-# OPTIONS --cubical --safe --guardedness #-} -- Sprint 5 support: the strict order on the analytic real line is a genuine -- strict partial order (irreflexive + transitive). This is the order structure -- the located spectrum lives in -- a spectral value is pinned by where it sits -- in <ℝ. Built on Sprint-1's Dedekind ℝ; pure cut algebra, no postulates. module corpus.cubical_agda.RealCohesion.RealOrder where open import Cubical.Foundations.Prelude open import Cubical.Data.Sigma open import Cubical.Data.Sum using (_⊎_; inl; inr) open import Cubical.Data.Empty as ⊥ using (⊥) open import Cubical.HITs.PropositionalTruncation as PT using (∥_∥₁; ∣_∣₁; squash₁) open import Cubical.Relation.Nullary using (¬_) open import Cubical.Data.Rationals using (ℚ) open import Cubical.Data.Rationals.Order using (_<_; _≟_; lt; eq; gt; isAsym<) open import corpus.cubical_agda.RealCohesion.DedekindReal -- the cut-law projections (IsCut is the right-nested 8-tuple; cut = x .snd .snd) private cutOf : (x : ℝ) → IsCut (lowerCut x) (upperCut x) cutOf x = x .snd .snd UupOf : (x : ℝ) (q r : ℚ) → q < r → ⟦ upperCut x ⟧ q → ⟦ upperCut x ⟧ r UupOf x = cutOf x .snd .snd .snd .snd .snd .fst LdownOf : (x : ℝ) (q r : ℚ) → q < r → ⟦ lowerCut x ⟧ r → ⟦ lowerCut x ⟧ q LdownOf x = cutOf x .snd .snd .snd .snd .fst disjOf : (x : ℝ) (q : ℚ) → ⟦ lowerCut x ⟧ q → ⟦ upperCut x ⟧ q → ⊥ disjOf x = cutOf x .snd .snd .snd .snd .snd .snd .fst -- a rational in y's lower cut is strictly below one in y's upper cut. private cut-sep : (y : ℝ) (q r : ℚ) → ⟦ lowerCut y ⟧ q → ⟦ upperCut y ⟧ r → q < r cut-sep y q r yLq yUr with q ≟ r ... | lt q