{-# OPTIONS --cubical --safe --no-import-sorts --guardedness #-} ------------------------------------------------------------------------------ -- Theory/CohesiveTower.agda — genuine cubical-HoTT port of `lean/CohesiveTower.lean` -- (the dimensional progression is a real-cohesive tower; the 0D→1D step is the SHAPE modality ∫). -- Lean is the reference (PM: lean_to_agda_full_rewrite, P4/Tier-3; Sprint 8). This module REPLACES the -- `Agda.Builtin.Equality` shadow `Foundations/RealCohesiveModalities.agda` with genuine cubical Path -- (the A1 fix the PM §1 calls for). -- -- Lean↔Agda (A3): the finite `π₀` model `Space`/`shape`(∫)/`flat`(♭)/`IsDiscrete` ↔ same (genuine -- `≡` Path, cubical `_≤_`/`_<_`); `shape_idem`/`flat_idem`/`shape_flat_eq` ↔ same (`refl`); -- `point_discrete`/`line_cohesive`/`shape_line_is_point` ↔ same; `cohesionTower` (the dim spine, -- `String` fields dropped like `CayleyFilter`) ↔ `cohesionTower` + `cohesionTower-dims`. -- -- L-refinement (genuine HoTT): `IsModality` (an idempotent endo on `Space`) + `Modality` (the HoTT -- pointed-idempotent-endofunctor frame on `Type`, the universal-property shape of cohesion); the -- finite shape/flat are the 0-truncated shadow of the ∫/♭ modalities. Honest scope (matching the Lean): -- this is the finite `π₀`/0-truncated model — the full ∞-cohesive `∫⊣♭⊣♯` as `(∞,1)`-functors and the -- differential refinement (GR) are INVOKED, not reproven (they live in the heyting-imm `HoTTBridge`). -- -- Glue (§2): set-level mirror — Path on `Space`/ℕ; `‖Agda‖₀ = Lean shadow` is the identity. ------------------------------------------------------------------------------ module corpus.cubical_agda.Theory.CohesiveTower where open import Cubical.Core.Primitives using (Type; Level; ℓ-suc) open import Cubical.Foundations.Prelude using (_≡_; refl; sym; cong; subst) open import Cubical.Data.Nat using (ℕ; zero; suc) renaming (znots to ℕznots; snotz to ℕsnotz) open import Cubical.Data.Nat.Order using (_≤_; _<_; ≤-refl; ≤-trans; ≤-sucℕ; ¬m