Pith. sign in

IndisputableMonolith.Foundation.PublicSpine

IndisputableMonolith/Foundation/PublicSpine.lean · 312 lines · 31 declarations

show as:
view math explainer →

open module explainer GitHub source

Explainer status: ready · generated 2026-08-11 06:16:28.970559+00:00

   1import IndisputableMonolith.Foundation.PrimitiveRecognitionCalculus.Strength
   2import IndisputableMonolith.Foundation.PrimitiveRecognitionCalculus.DeltaForced
   3import IndisputableMonolith.Foundation.UniversalForcing.ReciprocalGenerator
   4import IndisputableMonolith.Foundation.AlexanderDuality
   5import IndisputableMonolith.Foundation.DimensionForcing
   6import IndisputableMonolith.Foundation.CircleWindingChain
   7import IndisputableMonolith.Foundation.MathlibCohomologyBridge
   8import IndisputableMonolith.Foundation.UnknotComplementRetract
   9import IndisputableMonolith.Foundation.LinkingVanishingLowDim
  10import IndisputableMonolith.Cost.FunctionalEquation
  11import IndisputableMonolith.Verification.T6T8SpineAudit
  12
  13/-!
  14# PublicSpine — dual forcing surface (δ stratification)
  15
  16This module is the **public dual** of `UnifiedForcingChain`. It does **not** delete
  17or replace UFC. The Boolean / certificate spine stays for loop compatibility and
  18pedagogy. This surface is the honest δ-stratified map:
  19
  20* δ-only tower: ℕ / ℤ / ℚ (`forced_tower_holds`); continuum cut is
  21  `classicalExtension` (panel K2: do not put ¬ℝ under `deltaOnly`)
  22* cost form vs unit calibration (purchases / gauges, not free THEOREMs)
  23* φ from the reciprocal involution (`ReciprocalGenerator`)
  24* H₁(S¹;ℤ) ≅ ℤ kept as THEOREM; the D=3 / 8-tick bridge target is **CLOSED**
  25  (campaign P-d3link, 2026-07-18): `AlexanderLinkingBridge` is fully inhabited
  26  in `Foundation.PublicSpineLinkingClosure` (0 sorry, axioms exactly
  27  `[propext, Classical.choice, Quot.sound]`, no appeal to
  28  `DimensionForcing.linking_requires_D3`, no arithmetic encoding). The pieces:
  29  `d3_detects` (unknot complement retract), `CubePeriodEight` (pigeonhole),
  30  vanishing at D=0,1, and `forces_D3` for D=2 and D≥4 via the excision spine
  31  and arc-complement acyclicity (Hatcher 2B.1, arc case). The content-typed
  32  binder below is unchanged (panel K1: kills encoding cheat); only its
  33  inhabitation status moved from OPEN to THEOREM.
  34
  35Contract (dual-surface rules):
  361. Papers / loops that mean "what is forced" should cite **this** module.
  372. UFC names remain valid as `CERTIFICATE` / floor witnesses, not as the
  38   architecture claim.
  393. No encoding predicates: T8/T7 require `AlexanderLinkingBridge`, never
  40   `SphereAdmitsCircleLinking` as currently defined.
  414. FOP / unique-cost paper is untouched; this is Lean-map honesty only.
  42
  43Plan: `δ/Delta_Spine_Retype_Map_20260708.html`.
  44-/
  45
  46namespace IndisputableMonolith
  47namespace Foundation
  48namespace PublicSpine
  49
  50open PrimitiveRecognitionCalculus
  51open PrimitiveRecognitionCalculus.Forced
  52open UniversalForcing.ReciprocalGenerator
  53open Cost.FunctionalEquation
  54open Verification.T6T8SpineAudit
  55open AlexanderDuality
  56open DimensionForcing
  57
  58/-- Strength-tagged claim: the public surface refuses untagged THEOREM badges. -/
  59structure Tagged (tag : StrengthTag) (P : Prop) : Prop where
  60  holds : P
  61
  62/-- **δ-only tower:** ℕ / ℤ / ℚ are physically real (choice-free certificates).
  63Panel K2: do NOT conjoin the classical `¬ℝ` half under `deltaOnly`. -/
  64def ForcedTower : Prop :=
  65  PhysicallyReal ℕ ∧ PhysicallyReal ℤ ∧ PhysicallyReal ℚ
  66
  67theorem forced_tower_holds : Tagged StrengthTag.deltaOnly ForcedTower where
  68  holds := forcedTower
  69
  70/-- Continuum cut: ℝ is not δ-forced. Classical uncountability lives here, so the
  71tag is `classicalExtension`, not `deltaOnly` (panel K2). -/
  72theorem continuum_is_purchase :
  73    Tagged StrengthTag.classicalExtension (¬ DeltaForced ℝ) where
  74  holds := not_deltaForced_real
  75
  76/-- Full demarcation package (tower + continuum cut). Classical tag: the ℝ half
  77uses uncountability. Prefer `forced_tower_holds` + `continuum_is_purchase` when
  78citing δ-only vs purchase separately. -/
  79def Floor_Demarcation : Prop :=
  80  PhysicallyReal ℕ ∧ PhysicallyReal ℤ ∧ PhysicallyReal ℚ ∧ ¬ PhysicallyReal ℝ
  81
  82theorem floor_demarcation_holds :
  83    Tagged StrengthTag.classicalExtension Floor_Demarcation where
  84  holds := demarcation
  85
  86/-- **Cost form vs selection.** The continuous uniqueness theorem selects `J`
  87under reciprocity, normalization, RCL, calibration, continuity, and the Aczél
  88package. Honest tag is at least `traceClosure` (continuum carrier) plus the
  89calibration gauge; never `deltaOnly`. -/
  90structure CostSelectionPackage : Prop where
  91  /-- J is unique among reciprocal continuous calibrated RCL costs. -/
  92  j_unique :
  93    ∀ (F : ℝ → ℝ) [AczelSmoothnessPackage],
  94      IsReciprocalCost F → IsNormalized F → SatisfiesCompositionLaw F →
  95      IsCalibrated F → ContinuousOn F (Set.Ioi 0) →
  96      ∀ {x : ℝ}, 0 < x → F x = Cost.Jcost x
  97
  98theorem cost_selection_holds : Tagged StrengthTag.traceClosure CostSelectionPackage where
  99  holds := {
 100    j_unique := fun F _ hRecip hNorm hComp hCalib hCont {_x} hx =>
 101      law_of_logic_forces_jcost F hRecip hNorm hComp hCalib hCont _ hx
 102  }
 103
 104/-- **φ from the reciprocal involution** (consumes reciprocity of J, not a
 105standalone quadratic). Tier: THEOREM (algebra of `ι` / `1+ι`). Hierarchy /
 106`MinimalHierarchy` routes remain FORCED-CONDITIONAL elsewhere. -/
 107structure PhiFromIota : Prop where
 108  cost_and_scale : ReciprocalGeneratorCert
 109
 110theorem phi_from_iota_holds :
 111    Tagged StrengthTag.traceClosure PhiFromIota where
 112  holds := { cost_and_scale := reciprocalGeneratorCert_holds }
 113
 114/-- **H₁(S¹;ℤ) ≅ ℤ** is proved; it is **not** yet a premise of a non-encoding
 115D=3 theorem (`T6T8SpineAudit`). -/
 116theorem circle_H1_holds :
 117    Tagged StrengthTag.classicalExtension MathlibCohomologyBridge.circleH1ZIsoInt where
 118  holds := CircleWindingChain.circleH1ZIsoInt_holds
 119
 120/-- Audit: linking predicate still unfolds to arithmetic encoding. -/
 121theorem linking_still_encoding (D : ℕ) :
 122    SphereAdmitsCircleLinking D ↔ (D : ℤ) - 2 = 1 :=
 123  t8_linking_predicate_unfolds_to_arithmetic D
 124
 125/-- **Content-typed linking object.** First singular homology (ℤ coefficients,
 126genuine Mathlib `singularHomologyFunctor`) of the complement of a continuous
 127map from S¹ into S^D. This is the object Alexander duality computes. Statements
 128about it cannot be discharged by arithmetic encodings: they require actual
 129homology computations of complements. -/
 130noncomputable def linkingComplementH1 (D : ℕ)
 131    (f : C(TopCat.sphere.{0} 1, TopCat.sphere.{0} D)) : ModuleCat ℤ :=
 132  ((AlgebraicTopology.singularHomologyFunctor (ModuleCat ℤ) 1).obj
 133    (ModuleCat.of ℤ ℤ)).obj
 134    (TopCat.of {x : TopCat.sphere.{0} D // x ∉ Set.range f})
 135
 136/-- **Non-encoding detector (panel K1, corrected 2026-07-08).** Some embedded
 137circle in S^D has homologically nontrivial complement: the real linking
 138obstruction, stated on the Mathlib object itself.
 139
 140History: the first binder used an abstract `detects : ℕ → Prop` field plus a
 141`not_encoding` name-firewall. That was broken both ways: the empty detector
 142`fun _ => False` inhabited it trivially (verified: the probe built), and by
 143`funext`+`propext` any honest detector is *equal* to the encoding predicate,
 144so the firewall excluded exactly the real bridge. Content-typing is the only
 145non-gameable form. -/
 146def DetectsNontrivialLinking (D : ℕ) : Prop :=
 147  ∃ f : C(TopCat.sphere.{0} 1, TopCat.sphere.{0} D),
 148    Topology.IsEmbedding f ∧
 149      ¬ CategoryTheory.Limits.IsZero (linkingComplementH1 D f)
 150
 151/-- **The detection half is proved** (R2 of campaign P-d3link, 2026-07-17):
 152the flat unknot `z ↦ (z,0,0)` embeds S¹ in S³, and its complement retracts
 153onto the core circle `(0,0,w)`, so `H₁(S¹;ℤ) ≅ ℤ` (proved,
 154`circleH1ZIsoInt_holds`) is a retract of the complement's first homology,
 155which therefore is not zero. Real Mathlib singular homology throughout; no
 156arithmetic encoding anywhere in the proof
 157(`Foundation/UnknotComplementRetract.lean`). -/
 158theorem detectsNontrivialLinking_three : DetectsNontrivialLinking 3 :=
 159  ⟨UnknotComplementRetract.unknot, UnknotComplementRetract.unknot_isEmbedding,
 160    UnknotComplementRetract.unknotComplementH1_ne_zero
 161      CircleWindingChain.circleH1ZIsoInt_holds⟩
 162
 163/-- **The purchase binder, content-typed.** All three fields are PROVED
 164(campaign P-d3link, 2026-07-18): `d3_detects` by the unknot complement
 165retract, and `forces_D3` unconditionally by the circle-complement dichotomy
 166(excision spine + arc-complement acyclicity), for arbitrary (possibly wild)
 167topological embeddings. None of it can be produced from
 168`SphereAdmitsCircleLinking`'s arithmetic. The full inhabitation lives in
 169`Foundation.PublicSpineLinkingClosure`. -/
 170structure AlexanderLinkingBridge : Prop where
 171  /-- H₁(S¹;ℤ) ≅ ℤ is available to the bridge (already proved). -/
 172  h1 : MathlibCohomologyBridge.circleH1ZIsoInt
 173  /-- Some embedded circle in S³ has nontrivial complement homology.
 174  PROVED: `detectsNontrivialLinking_three` (unknot complement retract). -/
 175  d3_detects : DetectsNontrivialLinking 3
 176  /-- Only D = 3 admits the obstruction. PROVED:
 177  `PublicSpineLinkingClosure.forces_D3` (unconditional). -/
 178  forces_D3 : ∀ D, DetectsNontrivialLinking D → D = 3
 179
 180theorem D3_of_bridge (B : AlexanderLinkingBridge) :
 181    ∀ D, DetectsNontrivialLinking D → D = 3 :=
 182  B.forces_D3
 183
 184/-- **Target: D=3 from non-encoding linking — now THEOREM** (campaign
 185P-d3link, 2026-07-18; proof: `PublicSpineLinkingClosure.target_D3`). Kept as
 186a `def` (gate requirement): the statement stays content-typed so no free-Prop
 187cheat could ever have discharged it; it was closed by real topology. -/
 188def target_D3_from_nonencoding_linking : Prop :=
 189  Nonempty AlexanderLinkingBridge
 190
 191/-- **Vanishing at D = 0** (R3a of campaign P-d3link): every subspace of the
 192two-point S⁰ is totally disconnected, so complement H₁ vanishes for any map. -/
 193theorem not_detectsNontrivialLinking_zero : ¬ DetectsNontrivialLinking 0 :=
 194  LinkingVanishingLowDim.not_detects_zero
 195
 196/-- **Vanishing at D = 1** (R3a of campaign P-d3link): an embedded circle in
 197S¹ is surjective (stereographic projection + connectedness), so the complement
 198is empty and its H₁ vanishes. -/
 199theorem not_detectsNontrivialLinking_one : ¬ DetectsNontrivialLinking 1 :=
 200  LinkingVanishingLowDim.not_detects_one
 201
 202/-- Reduction lemma (historical shape of the campaign): given `forces_D3`,
 203the target follows because `h1` and `d3_detects` are proved. The premise is
 204now discharged unconditionally in `PublicSpineLinkingClosure`. -/
 205theorem bridge_of_forces_D3
 206    (h : ∀ D, DetectsNontrivialLinking D → D = 3) :
 207    target_D3_from_nonencoding_linking :=
 208  ⟨⟨CircleWindingChain.circleH1ZIsoInt_holds, detectsNontrivialLinking_three, h⟩⟩
 209
 210/-- Real (non-`rfl`) eight-tick consequent: any periodic walk covering all
 2112³ = 8 corners of the 3-cube has period at least 8. Stated this way because
 212the literal `eight_tick = 2 ^ 3` is `rfl`-true (`eight_tick := 8`), which made
 213the previous eight-tick target vacuous. -/
 214def CubePeriodEight : Prop :=
 215  ∀ (walk : ℕ → (Fin 3 → Bool)) (p : ℕ), 0 < p →
 216    (∀ n, walk (n + p) = walk n) →
 217    Function.Surjective walk → 8 ≤ p
 218
 219/-- **The eight-tick period bound holds** (R0 of campaign P-d3link,
 2202026-07-17). Periodicity confines the walk's range to its first `p` values,
 221so surjectivity onto the `2³ = 8` cube corners forces `8 ≤ p` by counting.
 222Honest pigeonhole content; nothing here touches the D=3 bridge. -/
 223theorem cubePeriodEight_holds : CubePeriodEight := by
 224  classical
 225  intro walk p hp hper hsurj
 226  have hshift : ∀ k n, walk (n + k * p) = walk n := by
 227    intro k
 228    induction k with
 229    | zero => intro n; simp
 230    | succ k ih =>
 231      intro n
 232      have hsplit : n + (k + 1) * p = (n + k * p) + p := by ring
 233      rw [hsplit, hper, ih]
 234  have hmod : ∀ n, walk n = walk (n % p) := by
 235    intro n
 236    have h := hshift (n / p) (n % p)
 237    rwa [Nat.mod_add_div'] at h
 238  let f : (Fin 3 → Bool) → Fin p := fun x =>
 239    ⟨(hsurj x).choose % p, Nat.mod_lt _ hp⟩
 240  have hf : ∀ x, walk ((f x : Fin p) : ℕ) = x := by
 241    intro x
 242    exact ((hmod (hsurj x).choose).symm.trans (hsurj x).choose_spec)
 243  have hinj : Function.Injective f := by
 244    intro x y hxy
 245    have hx := hf x
 246    rw [hxy, hf y] at hx
 247    exact hx.symm
 248  have hcard := Fintype.card_le_of_injective f hinj
 249  simpa using hcard
 250
 251/-- **Target: eight-tick downstream of a non-encoding D=3 — now THEOREM.**
 252Both conjuncts are proved: the bridge (`PublicSpineLinkingClosure.target_D3`)
 253and the period half (`cubePeriodEight_holds`). See
 254`Skeleton.guidepost_public_eight_tick` for the assembled proof. -/
 255def target_eight_tick_from_D3 : Prop :=
 256  target_D3_from_nonencoding_linking ∧ CubePeriodEight
 257
 258/-- The eight-tick target reduces to the D=3 bridge alone: the period half is
 259proved. -/
 260theorem target_eight_tick_of_bridge
 261    (h : target_D3_from_nonencoding_linking) : target_eight_tick_from_D3 :=
 262  ⟨h, cubePeriodEight_holds⟩
 263
 264/-- Dual-surface certificate: inhabited pieces of the public spine. -/
 265structure PublicSpineCert : Prop where
 266  forced_tower : Tagged StrengthTag.deltaOnly ForcedTower
 267  continuum_purchase : Tagged StrengthTag.classicalExtension (¬ DeltaForced ℝ)
 268  cost_selection : Tagged StrengthTag.traceClosure CostSelectionPackage
 269  phi_from_iota : Tagged StrengthTag.traceClosure PhiFromIota
 270  circle_H1 : Tagged StrengthTag.classicalExtension MathlibCohomologyBridge.circleH1ZIsoInt
 271  linking_encoding_named : ∀ D, SphereAdmitsCircleLinking D ↔ (D : ℤ) - 2 = 1
 272
 273theorem publicSpineCert_holds : PublicSpineCert where
 274  forced_tower := forced_tower_holds
 275  continuum_purchase := continuum_is_purchase
 276  cost_selection := cost_selection_holds
 277  phi_from_iota := phi_from_iota_holds
 278  circle_H1 := circle_H1_holds
 279  linking_encoding_named := linking_still_encoding
 280
 281/-! ## Channel-B citation surface (2026-07-08; retiered 2026-07-18)
 282
 283Downstream modules that previously bundled `UnifiedForcingChain.t0_holds`…`t8_holds`
 284as a closed architecture spine should cite these instead. Inhabited content is
 285`PublicSpineCert`. D=3 / eight-tick are now closed:
 286`PublicSpineLinkingClosure.target_D3` and
 287`Skeleton.guidepost_public_eight_tick`. -/
 288
 289/-- Preferred name for the inhabited public substrate (Channel B retarget). -/
 290abbrev SubstrateCert : Prop := PublicSpineCert
 291
 292theorem substrateCert_holds : SubstrateCert := publicSpineCert_holds
 293
 294/-- Disclosure: the D=3 / eight-tick public targets are exactly the content-typed
 295binders above (both now proved; see `PublicSpineLinkingClosure`). Citing this is
 296the honest replacement for `Nonempty T7_EightTick_Forced` /
 297`Nonempty T8_Dimension_Forced`. -/
 298structure DimensionEightTickOpen : Prop where
 299  d3_is_bridge :
 300    target_D3_from_nonencoding_linking = Nonempty AlexanderLinkingBridge
 301  eight_is_bridge_and_period :
 302    target_eight_tick_from_D3 =
 303      (target_D3_from_nonencoding_linking ∧ CubePeriodEight)
 304
 305theorem dimensionEightTickOpen_holds : DimensionEightTickOpen where
 306  d3_is_bridge := rfl
 307  eight_is_bridge_and_period := rfl
 308
 309end PublicSpine
 310end Foundation
 311end IndisputableMonolith
 312

source mirrored from github.com/jonwashburn/shape-of-logic