Pith. sign in

IndisputableMonolith.Gravity.SevenGaps.DynamicStructureBracketN

IndisputableMonolith/Gravity/SevenGaps/DynamicStructureBracketN.lean · 222 lines · 13 declarations

show as:
view math explainer →

open module explainer GitHub source

Explainer status: ready · generated 2026-08-17 08:47:51.332267+00:00

   1import Mathlib
   2import IndisputableMonolith.Gravity.SevenGaps.DynamicStructureBracket
   3import IndisputableMonolith.Gravity.SevenGaps.DynamicStructureFunctionBlocker
   4
   5/-!
   6# Wave C2 R4 repair Step 2: general-`n` dynamic structure bracket
   7
   8Generalizes `DynamicStructureBracket.HamDyn` / `bracket_HamDyn_HamDyn` from
   9`n = 2` to arbitrary `n` with `[NeZero n]`. The Frechet bookkeeping
  10(`HamDynD`, `∂g/∂q` correction, Kronecker collapse, periodic reindex) is
  11the same pattern as the two-site proof; ZMod wraparound is periodic, so
  12there is no boundary term.
  13
  14True general RHS (derived from the calculus, matching the `n = 2` case):
  15
  16```
  17bracket (HamDynN N) (HamDynN M) x
  18  = ∑ j, (N j * M (j+1) - M j * N (j+1))
  19      * ((1 + (x.1 j)^2) * (x.2 (j+1) * (x.1 (j+1) - x.1 j)))
  20```
  21
  22Structure factor `g_j = 1 + (x.1 j)^2` sits at the left split point `j`
  23(same placement as `HamW`'s background weight `w j`).
  24-/
  25
  26namespace IndisputableMonolith
  27namespace Gravity
  28namespace SevenGaps
  29namespace DynamicStructureBracketN
  30
  31open HypersurfaceDeformation WeightedHypersurfaceBracket
  32open DynamicStructureFunctionBlocker DynamicStructureBracket
  33
  34noncomputable section
  35
  36open Finset
  37
  38variable {n : ℕ} [NeZero n]
  39
  40/-! ## General-`n` dynamic Hamiltonian -/
  41
  42/-- MODEL. Exact shape of `HamDyn` at general `n`: kinetic slot unweighted,
  43stiffness slot carries `g x j = 1 + (x.1 j)^2`. -/
  44def HamDynN (N : ZMod n → ℝ) (x : PhaseSpace n) : ℝ :=
  45  ∑ i : ZMod n, (N i / 2) *
  46    (x.2 i * x.2 i +
  47      (1 + x.1 i * x.1 i) *
  48        ((x.1 (i + 1) - x.1 i) * (x.1 (i + 1) - x.1 i)))
  49
  50/-- Consistency: at `n = 2`, `HamDynN` is definitionally `HamDyn`. -/
  51theorem HamDynN_eq_HamDyn (N : ZMod 2 → ℝ) :
  52    HamDynN (n := 2) N = HamDyn N :=
  53  rfl
  54
  55/-- Inverse-metric factor used in the structure slot. -/
  56def dynamicInverseMetricN (x : PhaseSpace n) (j : ZMod n) : ℝ :=
  57  1 + (x.1 j) ^ 2
  58
  59omit [NeZero n] in
  60theorem dynamicInverseMetricN_eq (x : PhaseSpace n) (j : ZMod n) :
  61    dynamicInverseMetricN x j = 1 + x.1 j * x.1 j := by
  62  simp [dynamicInverseMetricN, pow_two]
  63
  64/-! ## Frechet derivative (honest; includes ∂g/∂q) -/
  65
  66/-- Frechet derivative of `HamDynN N`. Final summand carries `0 + …` to match
  67`HasFDerivAt.const.add` from the metric factor (same as `HamDynD`). -/
  68def HamDynND (N : ZMod n → ℝ) (x : PhaseSpace n) : PhaseSpace n →L[ℝ] ℝ :=
  69  ∑ i : ZMod n,
  70    (N i / 2) •
  71      ((x.2 i • coordP i + x.2 i • coordP i) +
  72        ((1 + x.1 i * x.1 i) •
  73            ((x.1 (i + 1) - x.1 i) • (coordQ (i + 1) - coordQ i) +
  74              (x.1 (i + 1) - x.1 i) • (coordQ (i + 1) - coordQ i)) +
  75          ((x.1 (i + 1) - x.1 i) * (x.1 (i + 1) - x.1 i)) •
  76            (0 + (x.1 i • coordQ i + x.1 i • coordQ i))))
  77
  78lemma hasFDerivAt_HamDynN (N : ZMod n → ℝ) (x : PhaseSpace n) :
  79    HasFDerivAt (HamDynN N) (HamDynND N x) x := by
  80  unfold HamDynN HamDynND
  81  exact HasFDerivAt.fun_sum fun i _ =>
  82    ((((hasFDerivAt_coord_snd i x).mul (hasFDerivAt_coord_snd i x)).add
  83      (((hasFDerivAt_const (1 : ℝ) x).add
  84          ((hasFDerivAt_coord_fst i x).mul (hasFDerivAt_coord_fst i x))).mul
  85        (((hasFDerivAt_coord_fst (i + 1) x).sub (hasFDerivAt_coord_fst i x)).mul
  86          ((hasFDerivAt_coord_fst (i + 1) x).sub (hasFDerivAt_coord_fst i x))))).const_mul
  87      (N i / 2))
  88
  89/-- THEOREM. Momentum partial: kinetic slot unchanged by `g`. -/
  90theorem pderivP_HamDynN (N : ZMod n → ℝ) (j : ZMod n) (x : PhaseSpace n) :
  91    pderivP (HamDynN N) j x = N j * x.2 j := by
  92  rw [pderivP, (hasFDerivAt_HamDynN N x).fderiv, HamDynND, ContinuousLinearMap.sum_apply]
  93  have step : ∀ i : ZMod n,
  94      (((N i / 2) •
  95          ((x.2 i • coordP i + x.2 i • coordP i) +
  96            ((1 + x.1 i * x.1 i) •
  97                ((x.1 (i + 1) - x.1 i) • (coordQ (i + 1) - coordQ i) +
  98                  (x.1 (i + 1) - x.1 i) • (coordQ (i + 1) - coordQ i)) +
  99              ((x.1 (i + 1) - x.1 i) * (x.1 (i + 1) - x.1 i)) •
 100                (0 + (x.1 i • coordQ i + x.1 i • coordQ i)))) :
 101            PhaseSpace n →L[ℝ] ℝ))
 102        ((0, Pi.single j 1) : PhaseSpace n)
 103      = (N i * x.2 i) * (if i = j then (1 : ℝ) else 0) := by
 104    intro i
 105    simp [Pi.single_apply]
 106    split_ifs <;> ring
 107  rw [Finset.sum_congr rfl fun i _ => step i, sum_mul_ite]
 108
 109/-- THEOREM. Honest configuration partial: frozen `HamW`-style contribution
 110plus the `∂g/∂q` correction `N_j q_j (Δq_j)²`. -/
 111theorem pderivQ_HamDynN (N : ZMod n → ℝ) (j : ZMod n) (x : PhaseSpace n) :
 112    pderivQ (HamDynN N) j x
 113      = N (j - 1) * ((1 + x.1 (j - 1) * x.1 (j - 1)) * (x.1 j - x.1 (j - 1)))
 114        - N j * ((1 + x.1 j * x.1 j) * (x.1 (j + 1) - x.1 j))
 115        + N j * (x.1 j * ((x.1 (j + 1) - x.1 j) * (x.1 (j + 1) - x.1 j))) := by
 116  rw [pderivQ, (hasFDerivAt_HamDynN N x).fderiv, HamDynND, ContinuousLinearMap.sum_apply]
 117  have step : ∀ i : ZMod n,
 118      (((N i / 2) •
 119          ((x.2 i • coordP i + x.2 i • coordP i) +
 120            ((1 + x.1 i * x.1 i) •
 121                ((x.1 (i + 1) - x.1 i) • (coordQ (i + 1) - coordQ i) +
 122                  (x.1 (i + 1) - x.1 i) • (coordQ (i + 1) - coordQ i)) +
 123              ((x.1 (i + 1) - x.1 i) * (x.1 (i + 1) - x.1 i)) •
 124                (0 + (x.1 i • coordQ i + x.1 i • coordQ i)))) :
 125            PhaseSpace n →L[ℝ] ℝ))
 126        ((Pi.single j 1, 0) : PhaseSpace n)
 127      = (N i * ((1 + x.1 i * x.1 i) * (x.1 (i + 1) - x.1 i))) *
 128            (if i + 1 = j then (1 : ℝ) else 0)
 129        - (N i * ((1 + x.1 i * x.1 i) * (x.1 (i + 1) - x.1 i))) *
 130            (if i = j then (1 : ℝ) else 0)
 131        + (N i * (x.1 i * ((x.1 (i + 1) - x.1 i) * (x.1 (i + 1) - x.1 i)))) *
 132            (if i = j then (1 : ℝ) else 0) := by
 133    intro i
 134    simp [Pi.single_apply, mul_sub]
 135    split_ifs <;> ring
 136  rw [Finset.sum_congr rfl fun i _ => step i]
 137  simp only [Finset.sum_add_distrib, Finset.sum_sub_distrib]
 138  rw [sum_mul_ite_add
 139      (fun i => N i * ((1 + x.1 i * x.1 i) * (x.1 (i + 1) - x.1 i))) 1 j,
 140    sum_mul_ite
 141      (fun i => N i * ((1 + x.1 i * x.1 i) * (x.1 (i + 1) - x.1 i))) j,
 142    sum_mul_ite
 143      (fun i => N i * (x.1 i * ((x.1 (i + 1) - x.1 i) * (x.1 (i + 1) - x.1 i)))) j]
 144  have e : j - 1 + 1 = j := by ring
 145  simp only [e]
 146
 147theorem differentiable_HamDynN (N : ZMod n → ℝ) :
 148    Differentiable ℝ (HamDynN N) :=
 149  fun x => (hasFDerivAt_HamDynN N x).differentiableAt
 150
 151/-- THEOREM (headline). Exact dynamic structure-function identity at general
 152`n`. Structure factor at left split point `j`. The `∂g/∂q` corrections cancel
 153in the Hamiltonian–Hamiltonian bracket (same telescoping as `n = 2`). -/
 154theorem bracket_HamDynN_HamDynN (N M : ZMod n → ℝ) (x : PhaseSpace n) :
 155    bracket (HamDynN N) (HamDynN M) x
 156      = ∑ j : ZMod n, (N j * M (j + 1) - M j * N (j + 1)) *
 157          ((1 + x.1 j * x.1 j) *
 158            (x.2 (j + 1) * (x.1 (j + 1) - x.1 j))) := by
 159  simp only [bracket, pderivQ_HamDynN, pderivP_HamDynN]
 160  have step1 :
 161      (∑ j : ZMod n,
 162          ((N (j - 1) * ((1 + x.1 (j - 1) * x.1 (j - 1)) * (x.1 j - x.1 (j - 1)))
 163              - N j * ((1 + x.1 j * x.1 j) * (x.1 (j + 1) - x.1 j))
 164              + N j * (x.1 j * ((x.1 (j + 1) - x.1 j) * (x.1 (j + 1) - x.1 j)))) *
 165            (M j * x.2 j)
 166            - (N j * x.2 j) *
 167              (M (j - 1) * ((1 + x.1 (j - 1) * x.1 (j - 1)) * (x.1 j - x.1 (j - 1)))
 168                - M j * ((1 + x.1 j * x.1 j) * (x.1 (j + 1) - x.1 j))
 169                + M j * (x.1 j * ((x.1 (j + 1) - x.1 j) * (x.1 (j + 1) - x.1 j))))))
 170        = ∑ j : ZMod n,
 171            (N (j - 1) * M j - M (j - 1) * N j) *
 172              ((1 + x.1 (j - 1) * x.1 (j - 1)) *
 173                (x.2 j * (x.1 j - x.1 (j - 1)))) :=
 174    Finset.sum_congr rfl fun j _ => by ring
 175  rw [step1]
 176  refine sum_reindex 1
 177    (fun k =>
 178      (N (k - 1) * M k - M (k - 1) * N k) *
 179        ((1 + x.1 (k - 1) * x.1 (k - 1)) *
 180          (x.2 k * (x.1 k - x.1 (k - 1))))) _
 181    fun j => ?_
 182  have e1 : j + 1 - 1 = j := by ring
 183  simp only [e1]
 184
 185/-- Equivalent form with `dynamicInverseMetricN`. -/
 186theorem bracket_HamDynN_HamDynN' (N M : ZMod n → ℝ) (x : PhaseSpace n) :
 187    bracket (HamDynN N) (HamDynN M) x
 188      = ∑ j : ZMod n, (N j * M (j + 1) - M j * N (j + 1)) *
 189          (dynamicInverseMetricN x j *
 190            (x.2 (j + 1) * (x.1 (j + 1) - x.1 j))) := by
 191  simpa [dynamicInverseMetricN, pow_two] using bracket_HamDynN_HamDynN N M x
 192
 193/-- Consistency: at `n = 2`, recovers `bracket_HamDyn_HamDyn`. -/
 194theorem bracket_HamDynN_HamDynN_eq_two
 195    (N M : ZMod 2 → ℝ) (x : PhaseSpace 2) :
 196    bracket (HamDynN (n := 2) N) (HamDynN (n := 2) M) x
 197      = bracket (HamDyn N) (HamDyn M) x := by
 198  rw [HamDynN_eq_HamDyn, HamDynN_eq_HamDyn]
 199
 200theorem bracket_HamDynN_recovers_bracket_HamDyn
 201    (N M : ZMod 2 → ℝ) (x : PhaseSpace 2) :
 202    bracket (HamDynN (n := 2) N) (HamDynN (n := 2) M) x
 203      = ∑ j : ZMod 2, (N j * M (j + 1) - M j * N (j + 1)) *
 204          (concreteDynamicInverseMetric x j *
 205            (x.2 (j + 1) * (x.1 (j + 1) - x.1 j))) := by
 206  rw [bracket_HamDynN_HamDynN_eq_two, bracket_HamDyn_HamDyn]
 207
 208/-! ### Axiom receipts -/
 209
 210#print axioms hasFDerivAt_HamDynN
 211#print axioms pderivP_HamDynN
 212#print axioms pderivQ_HamDynN
 213#print axioms differentiable_HamDynN
 214#print axioms bracket_HamDynN_HamDynN
 215#print axioms bracket_HamDynN_recovers_bracket_HamDyn
 216
 217end
 218end DynamicStructureBracketN
 219end SevenGaps
 220end Gravity
 221end IndisputableMonolith
 222

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