Pith. sign in

IndisputableMonolith.Gravity.Analysis.ReggeBlochFold4D

IndisputableMonolith/Gravity/Analysis/ReggeBlochFold4D.lean · 889 lines · 82 declarations

show as:
view math explainer →

open module explainer GitHub source

Explainer status: pending

   1import Mathlib
   2import IndisputableMonolith.Gravity.Analysis.ReggeFlat4DHessianAssembly
   3import IndisputableMonolith.Gravity.Analysis.ReggeHinge4DOrbitClassification
   4import IndisputableMonolith.Gravity.Analysis.ReggeHinge4DStarKernel
   5import IndisputableMonolith.Gravity.Analysis.ReggeHinge4DFlatKernel
   6import IndisputableMonolith.Gravity.Analysis.ReggeEdgeStencil4D
   7
   8/-!
   9# Regge 4D finite-momentum Bloch fold ((1,1) orbit)
  10
  11QG full-theory campaign: exact phase-decorated fold of the committed
  12true-weight flat Hessian for type-`(1,1)` triangle hinges in one Kuhn
  13cell, using the midpoint plane-wave convention of `ReggeEdgeStencil4D`.
  14
  15## Tier tags (binding)
  16
  17* THEOREM: every named theorem below (kernel-checked; no `sorry`, no
  18  `admit`, no new axioms, no `native_decide`, no `: True` shells).
  19* Scope: **(1,1) orbit only** (72 oriented slots per cell).
  20* This does **not** evaluate the `m²` Taylor coefficient against the
  21  Einstein–Hilbert / TT continuum symbol (next lane).
  22* This does **not** prove `S_RS_converges_EH_4d`.
  23* This does **not** flip `gap_action_recovery`.
  24
  25## What is proved
  26
  271. **Factorized phased fold** at `m = 0` equals committed
  28   `orbitZeroMomQuadratic .t11` (consistency gate
  29   `factorizedBlochFold11_zeroMomentum`).
  302. **Transported phased fold** `blochFold11` over all 72 slots with
  31   bilinearity and zero-momentum phase drop.
  323. **Structural vanishing:** difference masks `(1,2)` and `(2,1)` give
  33   identically zero `axisTTPlus` contributions for every wave vector
  34   (area supports miss axis-TT class loads).
  354. **Certificate algebra** at `m⋆ = (π/2, π/2, π/2, 0)`: the Nat-kind
  36   axis table sums to `-3` and the gauge table to `-4 + 4√2`.
  375. **Integer Bloch symbol** at `m⋆`: every midpoint phase is a natural
  38   multiple of `π/4` (`classMidpointPhase_waveStar`), so each slot term
  39   equals `(N₁ + N₂·√2)/8` with decidable integers
  40   (`transportedSlotTerm_waveStar_eval`).
  416. **Geometric ↔ certificate match, CLOSED:** on all 240 oriented slots
  42   the integer certificates match the Nat-kind tables (`slotN_axis_match`,
  43   `slotN_gauge_match` by `decide`), hence
  44   `transportedSlotTerm_axis_waveStar` / `transportedSlotTerm_gauge_waveStar`.
  457. **Closing values:** `blochFold11 axisTTPlus waveStar = -3` (nonzero:
  46   nonvacuity) and `blochFold11 decoyGauge waveStar = -4 + 4√2` (nonzero:
  47   discrete gauge invariance at finite momentum holds only up to the
  48   finite-difference identity).
  49
  50Expected axiom footprint: `[propext, Classical.choice, Quot.sound]`.
  51-/
  52
  53namespace IndisputableMonolith
  54namespace Gravity
  55namespace Analysis
  56namespace ReggeBlochFold4D
  57
  58open BigOperators
  59open ReggeEdgeStencil4D
  60open ReggeHinge4DOrbitClassification
  61open ReggeHinge4DFlatKernel
  62open ReggeFlat4DHessianAssembly
  63open EdgeTTDecomposition4D
  64
  65noncomputable section
  66
  67/-! ## §1. Phased class dots -/
  68
  69def maskCoord (mask : ℕ) : Fin 4 → ℝ :=
  70  fun i => if Nat.testBit mask i.val then (1 : ℝ) else 0
  71
  72def hingeBase (s : Fin 24) (t : Fin 10) : Fin 4 → ℝ :=
  73  maskCoord (triangleVertexMasks s t).1
  74
  75def phasedClassDot (v : Fin 15 → ℝ) (H : Mat4) (m x : Fin 4 → ℝ) : ℝ :=
  76  ∑ d : Fin 15, v d * planeWaveClassPert H m x d
  77
  78theorem phasedClassDot_add (v : Fin 15 → ℝ) (A B : Mat4)
  79    (m x : Fin 4 → ℝ) :
  80    phasedClassDot v (A + B) m x =
  81      phasedClassDot v A m x + phasedClassDot v B m x := by
  82  unfold phasedClassDot
  83  simp_rw [planeWaveClassPert_add, mul_add, Finset.sum_add_distrib]
  84
  85theorem phasedClassDot_smul (v : Fin 15 → ℝ) (c : ℝ) (A : Mat4)
  86    (m x : Fin 4 → ℝ) :
  87    phasedClassDot v (c • A) m x = c * phasedClassDot v A m x := by
  88  unfold phasedClassDot
  89  simp_rw [planeWaveClassPert_smul]
  90  refine Eq.trans ?_ (Finset.mul_sum _ _ c).symm
  91  exact Finset.sum_congr rfl fun d _ => by ring
  92
  93theorem phasedClassDot_zeroMomentum (v : Fin 15 → ℝ) (H : Mat4)
  94    (x : Fin 4 → ℝ) :
  95    phasedClassDot v H (fun _ => (0 : ℝ)) x = classDot v H := by
  96  unfold phasedClassDot classDot coeffDot planeWaveClassPert classMidpointPhase
  97  refine Finset.sum_congr rfl fun d _ => ?_
  98  simp [Real.cos_zero]
  99
 100/-! ## §2. Factorized fold and consistency gate -/
 101
 102def isT11 (s : Fin 24) (t : Fin 10) : Prop :=
 103  hingeOrbitType s t = .t11
 104
 105instance (s : Fin 24) (t : Fin 10) : Decidable (isT11 s t) :=
 106  inferInstanceAs (Decidable (hingeOrbitType s t = .t11))
 107
 108theorem isT11_iff_pop (s : Fin 24) (t : Fin 10) :
 109    isT11 s t ↔ hingeTypePop s t = (1, 1) := by
 110  constructor
 111  · intro h
 112    have hpop := hingeOrbitType_toPop s t
 113    simp only [isT11] at h
 114    rw [h, HingeOrbitType.toPop] at hpop
 115    exact hpop.symm
 116  · intro h
 117    simp [isT11, hingeOrbitType, h, popToOrbitType, Option.getD]
 118
 119def factorizedSlotTerm (H : Mat4) (m : Fin 4 → ℝ)
 120    (s : Fin 24) (t : Fin 10) : ℝ :=
 121  if isT11 s t then
 122    phasedClassDot areaCov11 H m (hingeBase s t) *
 123      phasedClassDot ReggeHinge4DStarKernel.fullStarClassKernel H m
 124        (hingeBase s t)
 125  else 0
 126
 127def factorizedBlochFold11 (H : Mat4) (m : Fin 4 → ℝ) : ℝ :=
 128  ∑ s : Fin 24, ∑ t : Fin 10, factorizedSlotTerm H m s t
 129
 130private lemma t11_count_nat :
 131    (∑ s : Fin 24, ∑ t : Fin 10, (if isT11 s t then (1 : ℕ) else 0)) =
 132      72 := by
 133  have h : (∑ s : Fin 24, ∑ t : Fin 10,
 134      (if hingeTypePop s t = (1, 1) then (1 : ℕ) else 0)) = 72 := by
 135    simpa [cellTriangleCount, triangleTypeNat] using cellTriangleCount_t11
 136  refine Eq.trans ?_ h
 137  refine Finset.sum_congr rfl fun s _ => Finset.sum_congr rfl fun t _ => ?_
 138  by_cases h' : isT11 s t
 139  · have hp : hingeTypePop s t = (1, 1) := (isT11_iff_pop s t).mp h'
 140    simp [h', hp]
 141  · have : hingeTypePop s t ≠ (1, 1) := fun happ =>
 142      h' ((isT11_iff_pop s t).mpr happ)
 143    simp [h', this]
 144
 145private lemma t11_count_real :
 146    (∑ s : Fin 24, ∑ t : Fin 10, (if isT11 s t then (1 : ℝ) else 0)) =
 147      (72 : ℝ) := by
 148  have := congrArg (fun n : ℕ => (n : ℝ)) t11_count_nat
 149  refine Eq.trans ?_ this
 150  simp_rw [Nat.cast_sum]
 151  refine Finset.sum_congr rfl fun s _ => Finset.sum_congr rfl fun t _ => ?_
 152  by_cases h : isT11 s t <;> simp [h]
 153
 154/-- Consistency gate: factorized fold at zero momentum recovers the
 155committed `(1,1)` orbit quadratic. -/
 156theorem factorizedBlochFold11_zeroMomentum (H : Mat4) :
 157    factorizedBlochFold11 H (fun _ => (0 : ℝ)) =
 158      orbitZeroMomQuadratic .t11 H := by
 159  unfold factorizedBlochFold11 orbitZeroMomQuadratic orbitCellCount
 160    orbitAreaCov orbitDeficitKernel
 161  have hterm : ∀ s t,
 162      factorizedSlotTerm H (fun _ => (0 : ℝ)) s t =
 163        (if isT11 s t then (1 : ℝ) else 0) *
 164          (classDot areaCov11 H *
 165            classDot ReggeHinge4DStarKernel.fullStarClassKernel H) := by
 166    intro s t
 167    unfold factorizedSlotTerm
 168    by_cases h : isT11 s t <;> simp [h, phasedClassDot_zeroMomentum]
 169  simp_rw [hterm]
 170  -- Pull the constant product out of the double sum.
 171  rw [show
 172      (∑ s : Fin 24, ∑ t : Fin 10,
 173          (if isT11 s t then (1 : ℝ) else 0) *
 174            (classDot areaCov11 H *
 175              classDot ReggeHinge4DStarKernel.fullStarClassKernel H)) =
 176        (∑ s : Fin 24, ∑ t : Fin 10, (if isT11 s t then (1 : ℝ) else 0)) *
 177          (classDot areaCov11 H *
 178            classDot ReggeHinge4DStarKernel.fullStarClassKernel H) by
 179    simp_rw [Finset.sum_mul]]
 180  rw [t11_count_real]
 181  ring
 182
 183/-! ## §3. Transported fold -/
 184
 185def transportPermOfDiff (a b : ℕ) : Fin 24 :=
 186  match a, b with
 187  | 1, 2 => 0
 188  | 1, 4 => 2
 189  | 1, 8 => 4
 190  | 2, 1 => 6
 191  | 2, 4 => 8
 192  | 2, 8 => 10
 193  | 4, 1 => 12
 194  | 4, 2 => 14
 195  | 4, 8 => 16
 196  | 8, 1 => 18
 197  | 8, 2 => 20
 198  | 8, 4 => 22
 199  | _, _ => 0
 200
 201def permClass (p : Fin 24) (d : Fin 15) : Fin 15 :=
 202  ⟨permMask (coordPermOf p) (maskOf d) - 1, by
 203    have : 0 < permMask (coordPermOf p) (maskOf d) ∧
 204        permMask (coordPermOf p) (maskOf d) ≤ 15 := by
 205      fin_cases p <;> fin_cases d <;> decide
 206    omega⟩
 207
 208def transportedDeficit (p : Fin 24) : Fin 15 → ℝ :=
 209  fun d =>
 210    ∑ d0 : Fin 15,
 211      if permClass p d0 = d then
 212        ReggeHinge4DStarKernel.fullStarClassKernel d0 else 0
 213
 214def slotTransportPerm (s : Fin 24) (t : Fin 10) : Fin 24 :=
 215  transportPermOfDiff (diffMaskA s t) (diffMaskB s t)
 216
 217def slotAreaCov (s : Fin 24) (t : Fin 10) : Fin 15 → ℝ :=
 218  fun d =>
 219    if maskOf d = diffMaskA s t then (1 / 4 : ℝ)
 220    else if maskOf d = diffMaskB s t then (1 / 4 : ℝ)
 221    else 0
 222
 223def slotDeficitKer (s : Fin 24) (t : Fin 10) : Fin 15 → ℝ :=
 224  transportedDeficit (slotTransportPerm s t)
 225
 226def transportedSlotTerm (H : Mat4) (m : Fin 4 → ℝ)
 227    (s : Fin 24) (t : Fin 10) : ℝ :=
 228  if isT11 s t then
 229    phasedClassDot (slotAreaCov s t) H m (hingeBase s t) *
 230      phasedClassDot (slotDeficitKer s t) H m (hingeBase s t)
 231  else 0
 232
 233/-- Honest transported finite-momentum `(1,1)` Bloch fold (72 instances). -/
 234def blochFold11 (H : Mat4) (m : Fin 4 → ℝ) : ℝ :=
 235  ∑ s : Fin 24, ∑ t : Fin 10, transportedSlotTerm H m s t
 236
 237def blochFold11Bilinear (A B : Mat4) (m : Fin 4 → ℝ) : ℝ :=
 238  (1 / 2 : ℝ) *
 239    (∑ s : Fin 24, ∑ t : Fin 10,
 240      if isT11 s t then
 241        phasedClassDot (slotAreaCov s t) A m (hingeBase s t) *
 242            phasedClassDot (slotDeficitKer s t) B m (hingeBase s t) +
 243          phasedClassDot (slotAreaCov s t) B m (hingeBase s t) *
 244            phasedClassDot (slotDeficitKer s t) A m (hingeBase s t)
 245      else (0 : ℝ))
 246
 247theorem blochFold11_eq_bilinear (H : Mat4) (m : Fin 4 → ℝ) :
 248    blochFold11 H m = blochFold11Bilinear H H m := by
 249  unfold blochFold11 blochFold11Bilinear transportedSlotTerm
 250  have h : ∀ s t,
 251      (if isT11 s t then
 252        phasedClassDot (slotAreaCov s t) H m (hingeBase s t) *
 253          phasedClassDot (slotDeficitKer s t) H m (hingeBase s t)
 254       else (0 : ℝ)) =
 255        (1 / 2 : ℝ) *
 256          (if isT11 s t then
 257            phasedClassDot (slotAreaCov s t) H m (hingeBase s t) *
 258                phasedClassDot (slotDeficitKer s t) H m (hingeBase s t) +
 259              phasedClassDot (slotAreaCov s t) H m (hingeBase s t) *
 260                phasedClassDot (slotDeficitKer s t) H m (hingeBase s t)
 261           else 0) := by
 262    intro s t
 263    by_cases ht : isT11 s t
 264    · simp only [ht, ite_true]; ring
 265    · simp only [ht, ite_false]; ring
 266  simp_rw [h]
 267  -- ∑∑ (1/2) * f = (1/2) * ∑∑ f
 268  simp_rw [← Finset.mul_sum]
 269
 270theorem blochFold11Bilinear_symm (A B : Mat4) (m : Fin 4 → ℝ) :
 271    blochFold11Bilinear A B m = blochFold11Bilinear B A m := by
 272  unfold blochFold11Bilinear
 273  refine congr_arg (fun z : ℝ => (1 / 2 : ℝ) * z) ?_
 274  refine Finset.sum_congr rfl fun s _ => Finset.sum_congr rfl fun t _ => ?_
 275  by_cases h : isT11 s t
 276  · simp only [h, ite_true]; ring
 277  · simp only [h, ite_false]
 278
 279theorem blochFold11Bilinear_add_left (A₁ A₂ B : Mat4) (m : Fin 4 → ℝ) :
 280    blochFold11Bilinear (A₁ + A₂) B m =
 281      blochFold11Bilinear A₁ B m + blochFold11Bilinear A₂ B m := by
 282  unfold blochFold11Bilinear
 283  simp_rw [phasedClassDot_add]
 284  rw [← mul_add, ← Finset.sum_add_distrib]
 285  congr 1
 286  refine Finset.sum_congr rfl fun s _ => ?_
 287  rw [← Finset.sum_add_distrib]
 288  refine Finset.sum_congr rfl fun t _ => ?_
 289  by_cases h : isT11 s t
 290  · simp [h]; ring
 291  · simp [h]
 292
 293theorem blochFold11Bilinear_smul_left (c : ℝ) (A B : Mat4)
 294    (m : Fin 4 → ℝ) :
 295    blochFold11Bilinear (c • A) B m = c * blochFold11Bilinear A B m := by
 296  unfold blochFold11Bilinear
 297  simp_rw [phasedClassDot_smul]
 298  have h : ∀ s t,
 299      (if isT11 s t then
 300        c * phasedClassDot (slotAreaCov s t) A m (hingeBase s t) *
 301            phasedClassDot (slotDeficitKer s t) B m (hingeBase s t) +
 302          phasedClassDot (slotAreaCov s t) B m (hingeBase s t) *
 303            (c * phasedClassDot (slotDeficitKer s t) A m (hingeBase s t))
 304      else (0 : ℝ)) =
 305        c *
 306          (if isT11 s t then
 307            phasedClassDot (slotAreaCov s t) A m (hingeBase s t) *
 308                phasedClassDot (slotDeficitKer s t) B m (hingeBase s t) +
 309              phasedClassDot (slotAreaCov s t) B m (hingeBase s t) *
 310                phasedClassDot (slotDeficitKer s t) A m (hingeBase s t)
 311          else 0) := by
 312    intro s t
 313    by_cases h : isT11 s t
 314    · simp [h]; ring
 315    · simp [h]
 316  simp_rw [h, ← Finset.mul_sum]
 317  ring
 318
 319theorem transportedSlotTerm_zeroMomentum (H : Mat4)
 320    (s : Fin 24) (t : Fin 10) :
 321    transportedSlotTerm H (fun _ => (0 : ℝ)) s t =
 322      if isT11 s t then
 323        classDot (slotAreaCov s t) H * classDot (slotDeficitKer s t) H
 324      else 0 := by
 325  unfold transportedSlotTerm
 326  by_cases h : isT11 s t <;> simp [h, phasedClassDot_zeroMomentum]
 327
 328/-! ## §4. Structural vanishing on seed-mask orientations -/
 329
 330theorem classCoeff_axisTTPlus_mask_1 :
 331    classCoeff axisTTPlus (0 : Fin 15) = 0 := by
 332  have h2 : Nat.testBit 1 2 = false := by decide
 333  have h3 : Nat.testBit 1 3 = false := by decide
 334  simp [classCoeff_axisTTPlus, classBit, maskOf, h2, h3]
 335
 336theorem classCoeff_axisTTPlus_mask_2 :
 337    classCoeff axisTTPlus (1 : Fin 15) = 0 := by
 338  have h2 : Nat.testBit 2 2 = false := by decide
 339  have h3 : Nat.testBit 2 3 = false := by decide
 340  simp [classCoeff_axisTTPlus, classBit, maskOf, h2, h3]
 341
 342theorem classCoeff_axisTTPlus_mask_3 :
 343    classCoeff axisTTPlus (2 : Fin 15) = 0 := by
 344  have h2 : Nat.testBit 3 2 = false := by decide
 345  have h3 : Nat.testBit 3 3 = false := by decide
 346  simp [classCoeff_axisTTPlus, classBit, maskOf, h2, h3]
 347
 348theorem slotAreaCov_support (s : Fin 24) (t : Fin 10) (d : Fin 15)
 349    (h : slotAreaCov s t d ≠ 0) :
 350    maskOf d = diffMaskA s t ∨ maskOf d = diffMaskB s t := by
 351  unfold slotAreaCov at h
 352  split_ifs at h with hA hB
 353  · exact Or.inl hA
 354  · exact Or.inr hB
 355  · exact (h rfl).elim
 356
 357theorem phasedClassDot_area_axis_of_masks_1_2
 358    (s : Fin 24) (t : Fin 10) (m x : Fin 4 → ℝ)
 359    (ha : diffMaskA s t = 1) (hb : diffMaskB s t = 2) :
 360    phasedClassDot (slotAreaCov s t) axisTTPlus m x = 0 := by
 361  unfold phasedClassDot planeWaveClassPert
 362  refine Finset.sum_eq_zero fun d _ => ?_
 363  by_cases hv : slotAreaCov s t d = 0
 364  · simp [hv]
 365  · have hmask := slotAreaCov_support s t d hv
 366    have hc : classCoeff axisTTPlus d = 0 := by
 367      rcases hmask with h | h
 368      · have h1 : maskOf d = 1 := by simpa [ha] using h
 369        have : d.val = 0 := by
 370          have := congrArg (· - 1) h1
 371          simpa [maskOf] using this
 372        have hd : d = ⟨0, by decide⟩ := Fin.ext this
 373        simpa [hd] using classCoeff_axisTTPlus_mask_1
 374      · have h2 : maskOf d = 2 := by simpa [hb] using h
 375        have : d.val = 1 := by
 376          have := congrArg (· - 1) h2
 377          simpa [maskOf] using this
 378        have hd : d = ⟨1, by decide⟩ := Fin.ext this
 379        simpa [hd] using classCoeff_axisTTPlus_mask_2
 380    simp [hc]
 381
 382theorem phasedClassDot_area_axis_of_masks_2_1
 383    (s : Fin 24) (t : Fin 10) (m x : Fin 4 → ℝ)
 384    (ha : diffMaskA s t = 2) (hb : diffMaskB s t = 1) :
 385    phasedClassDot (slotAreaCov s t) axisTTPlus m x = 0 := by
 386  unfold phasedClassDot planeWaveClassPert
 387  refine Finset.sum_eq_zero fun d _ => ?_
 388  by_cases hv : slotAreaCov s t d = 0
 389  · simp [hv]
 390  · have hmask := slotAreaCov_support s t d hv
 391    have hc : classCoeff axisTTPlus d = 0 := by
 392      rcases hmask with h | h
 393      · have h2 : maskOf d = 2 := by simpa [ha] using h
 394        have : d.val = 1 := by
 395          have := congrArg (· - 1) h2
 396          simpa [maskOf] using this
 397        have hd : d = ⟨1, by decide⟩ := Fin.ext this
 398        simpa [hd] using classCoeff_axisTTPlus_mask_2
 399      · have h1 : maskOf d = 1 := by simpa [hb] using h
 400        have : d.val = 0 := by
 401          have := congrArg (· - 1) h1
 402          simpa [maskOf] using this
 403        have hd : d = ⟨0, by decide⟩ := Fin.ext this
 404        simpa [hd] using classCoeff_axisTTPlus_mask_1
 405    simp [hc]
 406
 407theorem transportedSlotTerm_axis_seedMasks
 408    (s : Fin 24) (t : Fin 10) (m : Fin 4 → ℝ)
 409    (h : (diffMaskA s t = 1 ∧ diffMaskB s t = 2) ∨
 410      (diffMaskA s t = 2 ∧ diffMaskB s t = 1)) :
 411    transportedSlotTerm axisTTPlus m s t = 0 := by
 412  unfold transportedSlotTerm
 413  by_cases ht : isT11 s t
 414  · simp only [ht, ite_true]
 415    rcases h with ⟨ha, hb⟩ | ⟨ha, hb⟩
 416    · rw [phasedClassDot_area_axis_of_masks_1_2 s t m (hingeBase s t) ha hb]
 417      ring
 418    · rw [phasedClassDot_area_axis_of_masks_2_1 s t m (hingeBase s t) ha hb]
 419      ring
 420  · simp [ht]
 421
 422/-! ## §5. Wave vector and certificate algebra -/
 423
 424/-- `m⋆ = (π/2, π/2, π/2, 0)`. -/
 425def waveStar : Fin 4 → ℝ
 426  | 0 => Real.pi / 2
 427  | 1 => Real.pi / 2
 428  | 2 => Real.pi / 2
 429  | 3 => 0
 430
 431def axisStarKind (s : Fin 24) (t : Fin 10) : ℕ :=
 432  if (s.val, t.val) ∈
 433      [(0, 6), (2, 6), (4, 9), (5, 9), (6, 6), (8, 6), (10, 9), (11, 9),
 434        (18, 9), (19, 9), (20, 9), (21, 9)] then 1
 435  else if (s.val, t.val) ∈
 436      [(2, 0), (3, 0), (8, 0), (9, 0), (12, 0), (13, 0), (14, 0), (15, 0),
 437        (19, 6), (21, 6), (22, 6), (23, 6)] then 2
 438  else 0
 439
 440def axisStarContrib (s : Fin 24) (t : Fin 10) : ℝ :=
 441  if axisStarKind s t = 1 then -Real.sqrt 2 / 8
 442  else if axisStarKind s t = 2 then -1 / 4 + Real.sqrt 2 / 8
 443  else 0
 444
 445def gaugeStarKind (s : Fin 24) (t : Fin 10) : ℕ :=
 446  if (s.val, t.val) ∈ [(7, 6), (10, 6), (13, 6), (16, 6)] then 1 else 0
 447
 448def gaugeStarContrib (s : Fin 24) (t : Fin 10) : ℝ :=
 449  if gaugeStarKind s t = 1 then -1 + Real.sqrt 2 else 0
 450
 451theorem axisStarKind_count1 :
 452    (∑ s : Fin 24, ∑ t : Fin 10,
 453        if axisStarKind s t = 1 then (1 : ℕ) else 0) = 12 := by
 454  decide
 455
 456theorem axisStarKind_count2 :
 457    (∑ s : Fin 24, ∑ t : Fin 10,
 458        if axisStarKind s t = 2 then (1 : ℕ) else 0) = 12 := by
 459  decide
 460
 461theorem gaugeStarKind_count1 :
 462    (∑ s : Fin 24, ∑ t : Fin 10,
 463        if gaugeStarKind s t = 1 then (1 : ℕ) else 0) = 4 := by
 464  decide
 465
 466/-- Certificate sum for axis TT at `m⋆`: `-3`. -/
 467theorem sum_axisStarContrib :
 468    (∑ s : Fin 24, ∑ t : Fin 10, axisStarContrib s t) = (-3 : ℝ) := by
 469  unfold axisStarContrib
 470  set a : ℝ := -Real.sqrt 2 / 8
 471  set b : ℝ := -1 / 4 + Real.sqrt 2 / 8
 472  have hterm : ∀ s t,
 473      (if axisStarKind s t = 1 then a
 474        else if axisStarKind s t = 2 then b else (0 : ℝ)) =
 475        a * (if axisStarKind s t = 1 then (1 : ℝ) else 0) +
 476          b * (if axisStarKind s t = 2 then (1 : ℝ) else 0) := by
 477    intro s t
 478    have hk : axisStarKind s t ≤ 2 := by
 479      unfold axisStarKind; split_ifs <;> simp
 480    match h : axisStarKind s t with
 481    | 0 => simp
 482    | 1 => simp
 483    | 2 => simp
 484    | n + 3 => omega
 485  simp_rw [hterm, Finset.sum_add_distrib, ← Finset.mul_sum]
 486  have hc1 :
 487      (∑ s : Fin 24, ∑ t : Fin 10,
 488          if axisStarKind s t = 1 then (1 : ℝ) else 0) = 12 := by
 489    simpa [Nat.cast_sum] using
 490      congrArg (fun n : ℕ => (n : ℝ)) axisStarKind_count1
 491  have hc2 :
 492      (∑ s : Fin 24, ∑ t : Fin 10,
 493          if axisStarKind s t = 2 then (1 : ℝ) else 0) = 12 := by
 494    simpa [Nat.cast_sum] using
 495      congrArg (fun n : ℕ => (n : ℝ)) axisStarKind_count2
 496  rw [hc1, hc2]
 497  -- a*12 + b*12 = -3
 498  unfold a b
 499  ring
 500
 501/-- Certificate sum for decoy gauge at `m⋆`: `-4 + 4√2`. -/
 502theorem sum_gaugeStarContrib :
 503    (∑ s : Fin 24, ∑ t : Fin 10, gaugeStarContrib s t) =
 504      -4 + 4 * Real.sqrt 2 := by
 505  unfold gaugeStarContrib
 506  set c : ℝ := -1 + Real.sqrt 2
 507  have hterm : ∀ s t,
 508      (if gaugeStarKind s t = 1 then c else (0 : ℝ)) =
 509        c * (if gaugeStarKind s t = 1 then (1 : ℝ) else 0) := by
 510    intro s t; by_cases h : gaugeStarKind s t = 1 <;> simp [h]
 511  simp_rw [hterm, ← Finset.mul_sum]
 512  have hc :
 513      (∑ s : Fin 24, ∑ t : Fin 10,
 514          if gaugeStarKind s t = 1 then (1 : ℝ) else 0) = 4 := by
 515    simpa [Nat.cast_sum] using
 516      congrArg (fun n : ℕ => (n : ℝ)) gaugeStarKind_count1
 517  rw [hc]
 518  unfold c
 519  ring
 520
 521/-! ## §6. Integer Bloch symbol at `waveStar`
 522
 523Every midpoint phase at `waveStar` is a natural multiple of `π/4`, so
 524each phased class dot is `a + b·(√2/2)` with decidable integers `a, b`.
 525This turns the geometric slot terms into integer certificates.
 526-/
 527
 528/-- Base-vertex quarter-turn half-count (bits 0,1,2 of the base mask). -/
 529def baseTurns (s : Fin 24) (t : Fin 10) : ℕ :=
 530  (if Nat.testBit (triangleVertexMasks s t).1 0 then 1 else 0) +
 531    (if Nat.testBit (triangleVertexMasks s t).1 1 then 1 else 0) +
 532      (if Nat.testBit (triangleVertexMasks s t).1 2 then 1 else 0)
 533
 534/-- Midpoint quarter-turn count of class `d` (bits 0,1,2 of its mask). -/
 535def dispTurns (d : Fin 15) : ℕ :=
 536  (if classBit d 0 then 1 else 0) +
 537    (if classBit d 1 then 1 else 0) +
 538      (if classBit d 2 then 1 else 0)
 539
 540/-- Total quarter turns of the midpoint phase at `waveStar`. -/
 541def quarterTurns (s : Fin 24) (t : Fin 10) (d : Fin 15) : ℕ :=
 542  2 * baseTurns s t + dispTurns d
 543
 544/-- Integer part of `cos(k·π/4)` (period-8 table). -/
 545def cosC1 : ℕ → ℤ
 546  | 0 => 1
 547  | 4 => -1
 548  | _ => 0
 549
 550/-- `√2/2`-coefficient of `cos(k·π/4)` (period-8 table). -/
 551def cosC2 : ℕ → ℤ
 552  | 1 => 1
 553  | 3 => -1
 554  | 5 => -1
 555  | 7 => 1
 556  | _ => 0
 557
 558private lemma waveStar_dot_maskCoord (M : ℕ) :
 559    (∑ i : Fin 4, waveStar i * maskCoord M i) =
 560      (((if Nat.testBit M 0 then 1 else 0) +
 561          (if Nat.testBit M 1 then 1 else 0) +
 562            (if Nat.testBit M 2 then 1 else 0) : ℕ) : ℝ) *
 563        (Real.pi / 2) := by
 564  rw [Fin.sum_univ_four]
 565  by_cases h0 : Nat.testBit M 0 <;> by_cases h1 : Nat.testBit M 1 <;>
 566    by_cases h2 : Nat.testBit M 2 <;> by_cases h3 : Nat.testBit M 3 <;>
 567    simp [waveStar, maskCoord, h0, h1, h2, h3] <;> ring
 568
 569private lemma waveStar_dot_classDisp (d : Fin 15) :
 570    (∑ i : Fin 4, waveStar i * classDisp d i) =
 571      ((dispTurns d : ℕ) : ℝ) * (Real.pi / 2) := by
 572  rw [Fin.sum_univ_four]
 573  unfold dispTurns
 574  by_cases h0 : classBit d 0 <;> by_cases h1 : classBit d 1 <;>
 575    by_cases h2 : classBit d 2 <;> by_cases h3 : classBit d 3 <;>
 576    simp [waveStar, classDisp, h0, h1, h2, h3] <;> ring
 577
 578/-- The midpoint phase at `waveStar` is `quarterTurns · π/4` exactly. -/
 579theorem classMidpointPhase_waveStar (s : Fin 24) (t : Fin 10) (d : Fin 15) :
 580    classMidpointPhase waveStar (hingeBase s t) d =
 581      (quarterTurns s t d : ℝ) * (Real.pi / 4) := by
 582  unfold classMidpointPhase hingeBase quarterTurns baseTurns
 583  rw [waveStar_dot_maskCoord, waveStar_dot_classDisp]
 584  push_cast
 585  ring
 586
 587/-- Exact table for `cos(k·π/4)`, valid for every natural `k`. -/
 588theorem cos_quarterTurns (k : ℕ) :
 589    Real.cos ((k : ℝ) * (Real.pi / 4)) =
 590      (cosC1 (k % 8) : ℝ) + (cosC2 (k % 8) : ℝ) * (Real.sqrt 2 / 2) := by
 591  have hmod : ((k % 8 : ℕ) : ℝ) + 8 * ((k / 8 : ℕ) : ℝ) = (k : ℝ) := by
 592    exact_mod_cast congrArg (fun n : ℕ => (n : ℝ)) (Nat.mod_add_div k 8)
 593  have hsplit : (k : ℝ) * (Real.pi / 4) =
 594      ((k % 8 : ℕ) : ℝ) * (Real.pi / 4) +
 595        ((k / 8 : ℕ) : ℝ) * (2 * Real.pi) := by
 596    rw [← hmod]; ring
 597  rw [hsplit,
 598    (Real.cos_periodic.nat_mul (k / 8)) (((k % 8 : ℕ) : ℝ) * (Real.pi / 4))]
 599  have h8 : k % 8 = 0 ∨ k % 8 = 1 ∨ k % 8 = 2 ∨ k % 8 = 3 ∨ k % 8 = 4 ∨
 600      k % 8 = 5 ∨ k % 8 = 6 ∨ k % 8 = 7 := by omega
 601  rcases h8 with h | h | h | h | h | h | h | h <;> rw [h]
 602  · norm_num [cosC1, cosC2, Real.cos_zero]
 603  · norm_num [cosC1, cosC2, Real.cos_pi_div_four]
 604  · rw [show ((2 : ℕ) : ℝ) * (Real.pi / 4) = Real.pi / 2 by push_cast; ring]
 605    norm_num [cosC1, cosC2, Real.cos_pi_div_two]
 606  · rw [show ((3 : ℕ) : ℝ) * (Real.pi / 4) = Real.pi - Real.pi / 4 by
 607      push_cast; ring]
 608    rw [Real.cos_pi_sub]
 609    norm_num [cosC1, cosC2, Real.cos_pi_div_four]
 610  · rw [show ((4 : ℕ) : ℝ) * (Real.pi / 4) = Real.pi by push_cast; ring]
 611    norm_num [cosC1, cosC2, Real.cos_pi]
 612  · rw [show ((5 : ℕ) : ℝ) * (Real.pi / 4) = Real.pi + Real.pi / 4 by
 613      push_cast; ring]
 614    rw [Real.cos_add]
 615    norm_num [cosC1, cosC2, Real.cos_pi, Real.sin_pi, Real.cos_pi_div_four]
 616  · rw [show ((6 : ℕ) : ℝ) * (Real.pi / 4) = Real.pi + Real.pi / 2 by
 617      push_cast; ring]
 618    rw [Real.cos_add]
 619    norm_num [cosC1, cosC2, Real.cos_pi, Real.sin_pi, Real.cos_pi_div_two]
 620  · rw [show ((7 : ℕ) : ℝ) * (Real.pi / 4) = 2 * Real.pi - Real.pi / 4 by
 621      push_cast; ring]
 622    rw [Real.cos_sub]
 623    norm_num [cosC1, cosC2, Real.cos_two_pi, Real.sin_two_pi,
 624      Real.cos_pi_div_four]
 625
 626/-- Integer (×4) slot area table. -/
 627def slotAreaCovZ4 (s : Fin 24) (t : Fin 10) (d : Fin 15) : ℤ :=
 628  if maskOf d = diffMaskA s t then 1
 629  else if maskOf d = diffMaskB s t then 1
 630  else 0
 631
 632private lemma slotAreaCov_eq_cast (s : Fin 24) (t : Fin 10) (d : Fin 15) :
 633    slotAreaCov s t d = ((slotAreaCovZ4 s t d : ℤ) : ℝ) / 4 := by
 634  unfold slotAreaCov slotAreaCovZ4
 635  split_ifs <;> norm_num
 636
 637/-- Integer symbol of the phased area dot (×4, integer part). -/
 638def slotA1 (cz : Fin 15 → ℤ) (s : Fin 24) (t : Fin 10) : ℤ :=
 639  ∑ d : Fin 15,
 640    slotAreaCovZ4 s t d * cz d * cosC1 (quarterTurns s t d % 8)
 641
 642/-- Integer symbol of the phased area dot (×4, `√2/2` part). -/
 643def slotA2 (cz : Fin 15 → ℤ) (s : Fin 24) (t : Fin 10) : ℤ :=
 644  ∑ d : Fin 15,
 645    slotAreaCovZ4 s t d * cz d * cosC2 (quarterTurns s t d % 8)
 646
 647/-- Integer symbol of the phased transported-kernel dot (integer part). -/
 648def slotK1 (cz : Fin 15 → ℤ) (s : Fin 24) (t : Fin 10) : ℤ :=
 649  ∑ d0 : Fin 15,
 650    kernel11Sign d0 * cz (permClass (slotTransportPerm s t) d0) *
 651      cosC1 (quarterTurns s t (permClass (slotTransportPerm s t) d0) % 8)
 652
 653/-- Integer symbol of the phased transported-kernel dot (`√2/2` part). -/
 654def slotK2 (cz : Fin 15 → ℤ) (s : Fin 24) (t : Fin 10) : ℤ :=
 655  ∑ d0 : Fin 15,
 656    kernel11Sign d0 * cz (permClass (slotTransportPerm s t) d0) *
 657      cosC2 (quarterTurns s t (permClass (slotTransportPerm s t) d0) % 8)
 658
 659/-- Integer certificate of a slot term (×8, integer part). -/
 660def slotN1 (cz : Fin 15 → ℤ) (s : Fin 24) (t : Fin 10) : ℤ :=
 661  if isT11 s t then
 662    2 * slotA1 cz s t * slotK1 cz s t + slotA2 cz s t * slotK2 cz s t
 663  else 0
 664
 665/-- Integer certificate of a slot term (×8, `√2` part). -/
 666def slotN2 (cz : Fin 15 → ℤ) (s : Fin 24) (t : Fin 10) : ℤ :=
 667  if isT11 s t then
 668    slotA1 cz s t * slotK2 cz s t + slotA2 cz s t * slotK1 cz s t
 669  else 0
 670
 671/-- Reindexing: a phased dot against the transported kernel is the seed
 672kernel folded through the class permutation. -/
 673theorem phasedClassDot_transportedDeficit (p : Fin 24) (H : Mat4)
 674    (m x : Fin 4 → ℝ) :
 675    phasedClassDot (transportedDeficit p) H m x =
 676      ∑ d0 : Fin 15,
 677        ReggeHinge4DStarKernel.fullStarClassKernel d0 *
 678          planeWaveClassPert H m x (permClass p d0) := by
 679  unfold phasedClassDot transportedDeficit
 680  simp_rw [Finset.sum_mul]
 681  rw [Finset.sum_comm]
 682  refine Finset.sum_congr rfl fun d0 _ => ?_
 683  have h : ∀ d : Fin 15,
 684      (if permClass p d0 = d then
 685        ReggeHinge4DStarKernel.fullStarClassKernel d0 else 0) *
 686          planeWaveClassPert H m x d =
 687        (if permClass p d0 = d then
 688          ReggeHinge4DStarKernel.fullStarClassKernel d0 *
 689            planeWaveClassPert H m x d else 0) := by
 690    intro d; split_ifs <;> simp
 691  simp_rw [h]
 692  rw [Finset.sum_ite_eq]
 693  simp
 694
 695/-- Master area evaluation at `waveStar`. -/
 696theorem phasedA_waveStar (H : Mat4) (cz : Fin 15 → ℤ)
 697    (hH : ∀ d, classCoeff H d = (cz d : ℝ)) (s : Fin 24) (t : Fin 10) :
 698    phasedClassDot (slotAreaCov s t) H waveStar (hingeBase s t) =
 699      ((slotA1 cz s t : ℝ) + (slotA2 cz s t : ℝ) * (Real.sqrt 2 / 2)) / 4 := by
 700  unfold phasedClassDot slotA1 slotA2
 701  rw [Int.cast_sum, Int.cast_sum, Finset.sum_mul, ← Finset.sum_add_distrib,
 702    Finset.sum_div]
 703  refine Finset.sum_congr rfl fun d _ => ?_
 704  unfold planeWaveClassPert
 705  rw [slotAreaCov_eq_cast, hH d, classMidpointPhase_waveStar,
 706    cos_quarterTurns]
 707  push_cast
 708  ring
 709
 710/-- Master transported-kernel evaluation at `waveStar`. -/
 711theorem phasedK_waveStar (H : Mat4) (cz : Fin 15 → ℤ)
 712    (hH : ∀ d, classCoeff H d = (cz d : ℝ)) (s : Fin 24) (t : Fin 10) :
 713    phasedClassDot (slotDeficitKer s t) H waveStar (hingeBase s t) =
 714      (slotK1 cz s t : ℝ) + (slotK2 cz s t : ℝ) * (Real.sqrt 2 / 2) := by
 715  unfold slotDeficitKer
 716  rw [phasedClassDot_transportedDeficit]
 717  unfold slotK1 slotK2
 718  rw [Int.cast_sum, Int.cast_sum, Finset.sum_mul, ← Finset.sum_add_distrib]
 719  refine Finset.sum_congr rfl fun d0 _ => ?_
 720  unfold planeWaveClassPert
 721  rw [kernel11_eq_sign, hH, classMidpointPhase_waveStar, cos_quarterTurns]
 722  push_cast
 723  ring
 724
 725/-- MASTER SLOT EVALUATION: every transported slot term at `waveStar`
 726equals its integer certificate `(N1 + N2·√2)/8`. -/
 727theorem transportedSlotTerm_waveStar_eval (H : Mat4) (cz : Fin 15 → ℤ)
 728    (hH : ∀ d, classCoeff H d = (cz d : ℝ)) (s : Fin 24) (t : Fin 10) :
 729    transportedSlotTerm H waveStar s t =
 730      ((slotN1 cz s t : ℝ) + (slotN2 cz s t : ℝ) * Real.sqrt 2) / 8 := by
 731  unfold transportedSlotTerm slotN1 slotN2
 732  by_cases ht : isT11 s t
 733  · simp only [ht, ite_true]
 734    rw [phasedA_waveStar H cz hH s t, phasedK_waveStar H cz hH s t]
 735    have h2 : Real.sqrt 2 * Real.sqrt 2 = 2 :=
 736      Real.mul_self_sqrt (by norm_num)
 737    push_cast
 738    linear_combination
 739      (((slotA2 cz s t : ℤ) : ℝ) * ((slotK2 cz s t : ℤ) : ℝ) / 16) * h2
 740  · simp [ht]
 741
 742/-! ## §7. Closing the geometric ↔ certificate match at `waveStar` -/
 743
 744/-- Integer certificate of the axis table by kind:
 745kind 1 ↦ `(0,-1)` (value `-√2/8`), kind 2 ↦ `(-2,1)` (value `-1/4+√2/8`). -/
 746def axisCertN1 : ℕ → ℤ
 747  | 2 => -2
 748  | _ => 0
 749
 750def axisCertN2 : ℕ → ℤ
 751  | 1 => -1
 752  | 2 => 1
 753  | _ => 0
 754
 755def gaugeCertN1 : ℕ → ℤ
 756  | 1 => -8
 757  | _ => 0
 758
 759def gaugeCertN2 : ℕ → ℤ
 760  | 1 => 8
 761  | _ => 0
 762
 763set_option maxRecDepth 8000 in
 764/-- DECIDABLE GATE: the integer slot certificates on `axisTTPlus` match
 765the Nat-kind table on every one of the 240 oriented slots. -/
 766theorem slotN_axis_match :
 767    ∀ s : Fin 24, ∀ t : Fin 10,
 768      slotN1 axisTTPlusCoeffZ s t = axisCertN1 (axisStarKind s t) ∧
 769        slotN2 axisTTPlusCoeffZ s t = axisCertN2 (axisStarKind s t) := by
 770  decide
 771
 772/-- Integer coefficient table for the pure-gauge probe. -/
 773def decoyGaugeCoeffZ (d : Fin 15) : ℤ := 2 * (gaugeBit0 d : ℤ)
 774
 775theorem classCoeff_decoyGauge_int (d : Fin 15) :
 776    classCoeff decoyGauge d = (decoyGaugeCoeffZ d : ℝ) := by
 777  rw [classCoeff_decoyGauge_bit]
 778  unfold decoyGaugeCoeffZ
 779  push_cast
 780  ring
 781
 782set_option maxRecDepth 8000 in
 783/-- DECIDABLE GATE: the integer slot certificates on `decoyGauge` match
 784the Nat-kind table on every slot. -/
 785theorem slotN_gauge_match :
 786    ∀ s : Fin 24, ∀ t : Fin 10,
 787      slotN1 decoyGaugeCoeffZ s t = gaugeCertN1 (gaugeStarKind s t) ∧
 788        slotN2 decoyGaugeCoeffZ s t = gaugeCertN2 (gaugeStarKind s t) := by
 789  decide
 790
 791/-- GEOMETRIC ↔ CERTIFICATE MATCH (axis): every transported slot term on
 792`axisTTPlus` at `waveStar` equals its certificate entry. -/
 793theorem transportedSlotTerm_axis_waveStar (s : Fin 24) (t : Fin 10) :
 794    transportedSlotTerm axisTTPlus waveStar s t = axisStarContrib s t := by
 795  rw [transportedSlotTerm_waveStar_eval axisTTPlus axisTTPlusCoeffZ
 796    classCoeff_axisTTPlus_int s t,
 797    (slotN_axis_match s t).1, (slotN_axis_match s t).2]
 798  unfold axisStarContrib
 799  have hk : axisStarKind s t = 0 ∨ axisStarKind s t = 1 ∨
 800      axisStarKind s t = 2 := by
 801    unfold axisStarKind; split_ifs <;> simp
 802  rcases hk with h | h | h <;> rw [h]
 803  all_goals norm_num [axisCertN1, axisCertN2]
 804  all_goals ring
 805
 806/-- GEOMETRIC ↔ CERTIFICATE MATCH (gauge). -/
 807theorem transportedSlotTerm_gauge_waveStar (s : Fin 24) (t : Fin 10) :
 808    transportedSlotTerm decoyGauge waveStar s t = gaugeStarContrib s t := by
 809  rw [transportedSlotTerm_waveStar_eval decoyGauge decoyGaugeCoeffZ
 810    classCoeff_decoyGauge_int s t,
 811    (slotN_gauge_match s t).1, (slotN_gauge_match s t).2]
 812  unfold gaugeStarContrib
 813  have hk : gaugeStarKind s t = 0 ∨ gaugeStarKind s t = 1 := by
 814    unfold gaugeStarKind; split_ifs <;> simp
 815  rcases hk with h | h <;> rw [h]
 816  all_goals norm_num [gaugeCertN1, gaugeCertN2]
 817  all_goals ring
 818
 819/-- CLOSING THEOREM: the honest transported `(1,1)` Bloch fold on the
 820axis TT polarization at `m⋆ = (π/2, π/2, π/2, 0)` equals `-3`. -/
 821theorem blochFold11_axisTTPlus_waveStar :
 822    blochFold11 axisTTPlus waveStar = -3 := by
 823  unfold blochFold11
 824  simp_rw [transportedSlotTerm_axis_waveStar]
 825  exact sum_axisStarContrib
 826
 827/-- Nonvacuity of the finite-momentum fold on axis TT. -/
 828theorem blochFold11_axisTTPlus_waveStar_ne_zero :
 829    blochFold11 axisTTPlus waveStar ≠ 0 := by
 830  rw [blochFold11_axisTTPlus_waveStar]; norm_num
 831
 832/-- CLOSING THEOREM (gauge verdict): the fold on the pure-gauge probe at
 833`m⋆` equals `-4 + 4√2` (nonzero; discrete gauge invariance at finite
 834momentum holds only up to the finite-difference identity). -/
 835theorem blochFold11_decoyGauge_waveStar :
 836    blochFold11 decoyGauge waveStar = -4 + 4 * Real.sqrt 2 := by
 837  unfold blochFold11
 838  simp_rw [transportedSlotTerm_gauge_waveStar]
 839  exact sum_gaugeStarContrib
 840
 841theorem blochFold11_decoyGauge_waveStar_ne_zero :
 842    blochFold11 decoyGauge waveStar ≠ 0 := by
 843  rw [blochFold11_decoyGauge_waveStar]
 844  have hlt : (1 : ℝ) < Real.sqrt 2 := by
 845    have := Real.lt_sqrt (x := 1) (y := 2) (by norm_num)
 846    norm_num at this
 847    exact this
 848  nlinarith
 849
 850/-! ## §8. Status -/
 851
 852structure BlochFold4DStatus where
 853  factorizedZeroMomentumClosed : Bool
 854  transportedBilinearClosed : Bool
 855  seedMaskAxisVanishClosed : Bool
 856  certificateAlgebraClosed : Bool
 857  geometricCertificateMatchClosed : Bool
 858  m2EhComparisonOpen : Bool
 859  convergesEH4d : Bool
 860  gapActionRecovery : Bool
 861
 862def blochFold4DStatus : BlochFold4DStatus where
 863  factorizedZeroMomentumClosed := true
 864  transportedBilinearClosed := true
 865  seedMaskAxisVanishClosed := true
 866  certificateAlgebraClosed := true
 867  geometricCertificateMatchClosed := true
 868  m2EhComparisonOpen := true
 869  convergesEH4d := false
 870  gapActionRecovery := false
 871
 872theorem blochFold4DStatus_flags :
 873    blochFold4DStatus.factorizedZeroMomentumClosed = true ∧
 874      blochFold4DStatus.transportedBilinearClosed = true ∧
 875        blochFold4DStatus.seedMaskAxisVanishClosed = true ∧
 876          blochFold4DStatus.certificateAlgebraClosed = true ∧
 877            blochFold4DStatus.geometricCertificateMatchClosed = true ∧
 878              blochFold4DStatus.m2EhComparisonOpen = true ∧
 879                blochFold4DStatus.convergesEH4d = false ∧
 880                  blochFold4DStatus.gapActionRecovery = false := by
 881  decide
 882
 883end
 884
 885end ReggeBlochFold4D
 886end Analysis
 887end Gravity
 888end IndisputableMonolith
 889

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