Pith. sign in

IndisputableMonolith.Gravity.SevenGaps.DynamicStructureBracket

IndisputableMonolith/Gravity/SevenGaps/DynamicStructureBracket.lean · 267 lines · 22 declarations

show as:
view math explainer →

open module explainer GitHub source

Explainer status: ready · generated 2026-08-17 05:24:31.400781+00:00

   1import Mathlib
   2import IndisputableMonolith.Gravity.SevenGaps.DynamicStructureFunctionBlocker
   3
   4/-!
   5# Wave C2 R0+R1: dynamic structure-function bracket on two sites
   6
   7Closes the first two typed residuals of
   8`plans/QG_WaveC2_Gap5_Residual_DAG_Draft_20260722.txt`:
   9
  10* **R0 (decoy).** The naive lookalike that plugs `g x` into the frozen
  11  `HamW` slot and reuses the frozen partials (`pderivQ_HamW`) fails: the
  12  configuration partial picks up an uncompensated `∂g/∂q` term.
  13* **R1.** The same candidate Hamiltonian, once its Frechet derivative is
  14  computed honestly (including `∂g/∂q`), inhabits
  15  `PhaseSpaceDependentHamiltonianConstruction concreteDynamicInverseMetric`
  16  at `n = 2`. The extra derivative terms cancel in the Hamiltonian–Hamiltonian
  17  bracket, so `ham_ham` recovers the target dynamic structure function.
  18
  19Does **not** flip `gap5_constraint_recovery`. Continuum and HKT residuals
  20remain OPEN.
  21-/
  22
  23namespace IndisputableMonolith
  24namespace Gravity
  25namespace SevenGaps
  26namespace DynamicStructureBracket
  27
  28open HypersurfaceDeformation WeightedHypersurfaceBracket DynamicStructureFunctionBlocker
  29
  30noncomputable section
  31
  32open Finset
  33
  34/-! ## Candidate: naive dynamic HamW lookalike -/
  35
  36/-- MODEL. The lookalike that substitutes the phase-space-dependent inverse
  37metric into the `HamW` density pointwise:
  38`ham N x := HamW (concreteDynamicInverseMetric x) N x`. -/
  39def naiveDynamicHamW (N : ZMod 2 → ℝ) (x : PhaseSpace 2) : ℝ :=
  40  HamW (concreteDynamicInverseMetric x) N x
  41
  42/-- Unfolded form used for Frechet calculus. -/
  43def HamDyn (N : ZMod 2 → ℝ) (x : PhaseSpace 2) : ℝ :=
  44  ∑ i : ZMod 2, (N i / 2) *
  45    (x.2 i * x.2 i +
  46      (1 + x.1 i * x.1 i) *
  47        ((x.1 (i + 1) - x.1 i) * (x.1 (i + 1) - x.1 i)))
  48
  49theorem HamDyn_eq_naive (N : ZMod 2 → ℝ) :
  50    HamDyn N = naiveDynamicHamW N := by
  51  funext x
  52  unfold HamDyn naiveDynamicHamW HamW concreteDynamicInverseMetric
  53  refine Finset.sum_congr rfl fun i _ => ?_
  54  ring
  55
  56/-! ## R0 witness data -/
  57
  58/-- Explicit witness phase point: unit configuration and unit momentum at
  59site `0`, zero at site `1`. Gradient and `∂g/∂q` are both nonzero at site
  60`0`. -/
  61def decoyPhasePoint : PhaseSpace 2 :=
  62  (fun j : ZMod 2 => if j = (0 : ZMod 2) then (1 : ℝ) else 0,
  63    fun j : ZMod 2 => if j = (0 : ZMod 2) then (1 : ℝ) else 0)
  64
  65/-- Lapse supported at site `0`. -/
  66def decoyLapse : ZMod 2 → ℝ :=
  67  fun j => if j = (0 : ZMod 2) then (1 : ℝ) else 0
  68
  69private lemma decoyLapse_zero : decoyLapse (0 : ZMod 2) = 1 := by
  70  simp [decoyLapse]
  71
  72private lemma decoyLapse_one : decoyLapse (1 : ZMod 2) = 0 := by
  73  simp [decoyLapse]
  74
  75private lemma decoy_q_zero : decoyPhasePoint.1 (0 : ZMod 2) = 1 := by
  76  simp [decoyPhasePoint]
  77
  78private lemma decoy_q_one : decoyPhasePoint.1 (1 : ZMod 2) = 0 := by
  79  simp [decoyPhasePoint]
  80
  81private lemma zmod2_zero_sub_one : (0 : ZMod 2) - 1 = 1 := by
  82  decide
  83
  84private lemma zmod2_zero_add_one : (0 : ZMod 2) + 1 = 1 := by
  85  decide
  86
  87/-! ## Frechet derivative (honest; includes ∂g/∂q) -/
  88
  89/-- Frechet derivative of `HamDyn N`. The final summand carries `0 + …`
  90so that it matches `HasFDerivAt.const.add` from the metric factor. -/
  91def HamDynD (N : ZMod 2 → ℝ) (x : PhaseSpace 2) : PhaseSpace 2 →L[ℝ] ℝ :=
  92  ∑ i : ZMod 2,
  93    (N i / 2) •
  94      ((x.2 i • coordP i + x.2 i • coordP i) +
  95        ((1 + x.1 i * x.1 i) •
  96            ((x.1 (i + 1) - x.1 i) • (coordQ (i + 1) - coordQ i) +
  97              (x.1 (i + 1) - x.1 i) • (coordQ (i + 1) - coordQ i)) +
  98          ((x.1 (i + 1) - x.1 i) * (x.1 (i + 1) - x.1 i)) •
  99            (0 + (x.1 i • coordQ i + x.1 i • coordQ i))))
 100
 101lemma hasFDerivAt_HamDyn (N : ZMod 2 → ℝ) (x : PhaseSpace 2) :
 102    HasFDerivAt (HamDyn N) (HamDynD N x) x := by
 103  unfold HamDyn HamDynD
 104  exact HasFDerivAt.fun_sum fun i _ =>
 105    ((((hasFDerivAt_coord_snd i x).mul (hasFDerivAt_coord_snd i x)).add
 106      (((hasFDerivAt_const (1 : ℝ) x).add
 107          ((hasFDerivAt_coord_fst i x).mul (hasFDerivAt_coord_fst i x))).mul
 108        (((hasFDerivAt_coord_fst (i + 1) x).sub (hasFDerivAt_coord_fst i x)).mul
 109          ((hasFDerivAt_coord_fst (i + 1) x).sub (hasFDerivAt_coord_fst i x))))).const_mul
 110      (N i / 2))
 111
 112/-- THEOREM. Momentum partial: kinetic slot unchanged by `g`. -/
 113theorem pderivP_HamDyn (N : ZMod 2 → ℝ) (j : ZMod 2) (x : PhaseSpace 2) :
 114    pderivP (HamDyn N) j x = N j * x.2 j := by
 115  rw [pderivP, (hasFDerivAt_HamDyn N x).fderiv, HamDynD, ContinuousLinearMap.sum_apply]
 116  have step : ∀ i : ZMod 2,
 117      (((N i / 2) •
 118          ((x.2 i • coordP i + x.2 i • coordP i) +
 119            ((1 + x.1 i * x.1 i) •
 120                ((x.1 (i + 1) - x.1 i) • (coordQ (i + 1) - coordQ i) +
 121                  (x.1 (i + 1) - x.1 i) • (coordQ (i + 1) - coordQ i)) +
 122              ((x.1 (i + 1) - x.1 i) * (x.1 (i + 1) - x.1 i)) •
 123                (0 + (x.1 i • coordQ i + x.1 i • coordQ i)))) :
 124            PhaseSpace 2 →L[ℝ] ℝ))
 125        ((0, Pi.single j 1) : PhaseSpace 2)
 126      = (N i * x.2 i) * (if i = j then (1 : ℝ) else 0) := by
 127    intro i
 128    simp [Pi.single_apply]
 129    split_ifs <;> ring
 130  rw [Finset.sum_congr rfl fun i _ => step i, sum_mul_ite]
 131
 132/-- THEOREM. Honest configuration partial: frozen `HamW` contribution plus
 133the `∂g/∂q` correction `N_j q_j (Δq_j)²`. -/
 134theorem pderivQ_HamDyn (N : ZMod 2 → ℝ) (j : ZMod 2) (x : PhaseSpace 2) :
 135    pderivQ (HamDyn N) j x
 136      = N (j - 1) * ((1 + x.1 (j - 1) * x.1 (j - 1)) * (x.1 j - x.1 (j - 1)))
 137        - N j * ((1 + x.1 j * x.1 j) * (x.1 (j + 1) - x.1 j))
 138        + N j * (x.1 j * ((x.1 (j + 1) - x.1 j) * (x.1 (j + 1) - x.1 j))) := by
 139  rw [pderivQ, (hasFDerivAt_HamDyn N x).fderiv, HamDynD, ContinuousLinearMap.sum_apply]
 140  have step : ∀ i : ZMod 2,
 141      (((N i / 2) •
 142          ((x.2 i • coordP i + x.2 i • coordP i) +
 143            ((1 + x.1 i * x.1 i) •
 144                ((x.1 (i + 1) - x.1 i) • (coordQ (i + 1) - coordQ i) +
 145                  (x.1 (i + 1) - x.1 i) • (coordQ (i + 1) - coordQ i)) +
 146              ((x.1 (i + 1) - x.1 i) * (x.1 (i + 1) - x.1 i)) •
 147                (0 + (x.1 i • coordQ i + x.1 i • coordQ i)))) :
 148            PhaseSpace 2 →L[ℝ] ℝ))
 149        ((Pi.single j 1, 0) : PhaseSpace 2)
 150      = (N i * ((1 + x.1 i * x.1 i) * (x.1 (i + 1) - x.1 i))) *
 151            (if i + 1 = j then (1 : ℝ) else 0)
 152        - (N i * ((1 + x.1 i * x.1 i) * (x.1 (i + 1) - x.1 i))) *
 153            (if i = j then (1 : ℝ) else 0)
 154        + (N i * (x.1 i * ((x.1 (i + 1) - x.1 i) * (x.1 (i + 1) - x.1 i)))) *
 155            (if i = j then (1 : ℝ) else 0) := by
 156    intro i
 157    simp [Pi.single_apply, mul_sub]
 158    split_ifs <;> ring
 159  rw [Finset.sum_congr rfl fun i _ => step i]
 160  simp only [Finset.sum_add_distrib, Finset.sum_sub_distrib]
 161  rw [sum_mul_ite_add
 162      (fun i => N i * ((1 + x.1 i * x.1 i) * (x.1 (i + 1) - x.1 i))) 1 j,
 163    sum_mul_ite
 164      (fun i => N i * ((1 + x.1 i * x.1 i) * (x.1 (i + 1) - x.1 i))) j,
 165    sum_mul_ite
 166      (fun i => N i * (x.1 i * ((x.1 (i + 1) - x.1 i) * (x.1 (i + 1) - x.1 i)))) j]
 167  have e : j - 1 + 1 = j := by ring
 168  simp only [e]
 169
 170/-- THEOREM (R0 decoy). The naive lookalike fails the frozen-partial
 171construction reading: at `decoyPhasePoint`, with lapse `decoyLapse` and site
 172`0`, the honest `pderivQ` differs from the frozen `pderivQ_HamW` evaluation
 173at `w := g x` by the uncompensated `∂g/∂q` term. -/
 174theorem TypedResidual_naive_dynamic_HamW_decoy_fails :
 175    pderivQ (HamDyn decoyLapse) (0 : ZMod 2) decoyPhasePoint
 176      ≠ pderivQ (HamW (concreteDynamicInverseMetric decoyPhasePoint) decoyLapse)
 177          (0 : ZMod 2) decoyPhasePoint := by
 178  have hHonest :
 179      pderivQ (HamDyn decoyLapse) (0 : ZMod 2) decoyPhasePoint = (3 : ℝ) := by
 180    rw [pderivQ_HamDyn, zmod2_zero_sub_one, zmod2_zero_add_one,
 181      decoyLapse_zero, decoyLapse_one, decoy_q_zero, decoy_q_one]
 182    norm_num
 183  have hFrozen :
 184      pderivQ (HamW (concreteDynamicInverseMetric decoyPhasePoint) decoyLapse)
 185          (0 : ZMod 2) decoyPhasePoint = (2 : ℝ) := by
 186    rw [pderivQ_HamW]
 187    rw [zmod2_zero_sub_one, zmod2_zero_add_one, decoyLapse_zero, decoyLapse_one,
 188      decoy_q_zero, decoy_q_one]
 189    simp only [concreteDynamicInverseMetric, decoy_q_zero, pow_two]
 190    norm_num
 191  rw [hHonest, hFrozen]
 192  norm_num
 193
 194theorem differentiable_HamDyn (N : ZMod 2 → ℝ) :
 195    Differentiable ℝ (HamDyn N) :=
 196  fun x => (hasFDerivAt_HamDyn N x).differentiableAt
 197
 198/-- THEOREM (R1 headline). Exact dynamic structure-function identity for the
 199two-site concrete inverse metric. -/
 200theorem bracket_HamDyn_HamDyn (N M : ZMod 2 → ℝ) (x : PhaseSpace 2) :
 201    bracket (HamDyn N) (HamDyn M) x
 202      = ∑ j : ZMod 2, (N j * M (j + 1) - M j * N (j + 1)) *
 203          (concreteDynamicInverseMetric x j *
 204            (x.2 (j + 1) * (x.1 (j + 1) - x.1 j))) := by
 205  simp only [bracket, pderivQ_HamDyn, pderivP_HamDyn, concreteDynamicInverseMetric]
 206  have step1 :
 207      (∑ j : ZMod 2,
 208          ((N (j - 1) * ((1 + x.1 (j - 1) * x.1 (j - 1)) * (x.1 j - x.1 (j - 1)))
 209              - N j * ((1 + x.1 j * x.1 j) * (x.1 (j + 1) - x.1 j))
 210              + N j * (x.1 j * ((x.1 (j + 1) - x.1 j) * (x.1 (j + 1) - x.1 j)))) *
 211            (M j * x.2 j)
 212            - (N j * x.2 j) *
 213              (M (j - 1) * ((1 + x.1 (j - 1) * x.1 (j - 1)) * (x.1 j - x.1 (j - 1)))
 214                - M j * ((1 + x.1 j * x.1 j) * (x.1 (j + 1) - x.1 j))
 215                + M j * (x.1 j * ((x.1 (j + 1) - x.1 j) * (x.1 (j + 1) - x.1 j))))))
 216        = ∑ j : ZMod 2,
 217            (N (j - 1) * M j - M (j - 1) * N j) *
 218              ((1 + x.1 (j - 1) * x.1 (j - 1)) *
 219                (x.2 j * (x.1 j - x.1 (j - 1)))) :=
 220    Finset.sum_congr rfl fun j _ => by ring
 221  rw [step1]
 222  refine sum_reindex 1
 223    (fun k =>
 224      (N (k - 1) * M k - M (k - 1) * N k) *
 225        ((1 + x.1 (k - 1) * x.1 (k - 1)) *
 226          (x.2 k * (x.1 k - x.1 (k - 1))))) _
 227    fun j => ?_
 228  have e1 : j + 1 - 1 = j := by ring
 229  simp only [e1]
 230  ring
 231
 232/-- THEOREM (R1). Inhabitant of the phase-space-dependent Hamiltonian
 233construction for `concreteDynamicInverseMetric` at `n = 2`. -/
 234def concreteDynamicHamiltonianConstruction :
 235    PhaseSpaceDependentHamiltonianConstruction concreteDynamicInverseMetric where
 236  ham := HamDyn
 237  ham_differentiable := differentiable_HamDyn
 238  ham_ham := bracket_HamDyn_HamDyn
 239
 240/-- Equivalent residual Prop named in the Wave C2 DAG. -/
 241def TypedResidual_dynamic_bracket_concrete_two_site : Prop :=
 242  Nonempty (PhaseSpaceDependentHamiltonianConstruction concreteDynamicInverseMetric)
 243
 244theorem typedResidual_dynamic_bracket_concrete_two_site :
 245    TypedResidual_dynamic_bracket_concrete_two_site :=
 246  ⟨concreteDynamicHamiltonianConstruction⟩
 247
 248/-- Immediate hard-core corollary (DAG R2, folded into R1 for `n = 2`). -/
 249theorem phaseSpaceDependentDiracPremise_two_site :
 250    PhaseSpaceDependentDiracPremise 2 :=
 251  ⟨concreteDynamicInverseMetric,
 252    concreteDynamicInverseMetric_not_constant,
 253    ⟨concreteDynamicHamiltonianConstruction⟩⟩
 254
 255/-! ### Axiom receipts -/
 256
 257#print axioms TypedResidual_naive_dynamic_HamW_decoy_fails
 258#print axioms bracket_HamDyn_HamDyn
 259#print axioms typedResidual_dynamic_bracket_concrete_two_site
 260#print axioms phaseSpaceDependentDiracPremise_two_site
 261
 262end
 263end DynamicStructureBracket
 264end SevenGaps
 265end Gravity
 266end IndisputableMonolith
 267

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