Pith. sign in

IndisputableMonolith.Gravity.SevenGaps.HKTLocalFunctionalEquation

IndisputableMonolith/Gravity/SevenGaps/HKTLocalFunctionalEquation.lean · 200 lines · 17 declarations

show as:
view math explainer →

open module explainer GitHub source

Explainer status: ready · generated 2026-08-17 22:06:02.151115+00:00

   1import IndisputableMonolith.Gravity.SevenGaps.HypersurfaceDeformation
   2
   3/-!
   4# Wave C2 R5/R6 groundwork: local-profile functional equation (n = 2)
   5
   6Landed at n = 2 (mirrors HamDyn). Reduces Dyn ham_ham for local profiles to
   7momDensity_j = h_b(j) * h_p(j+1). R6 attack surface; nothing proves rigidity.
   8-/
   9
  10namespace IndisputableMonolith
  11namespace Gravity
  12namespace SevenGaps
  13namespace HKTLocalFunctionalEquation
  14
  15open HypersurfaceDeformation
  16
  17noncomputable section
  18
  19open Finset
  20
  21abbrev LocalHamProfile : Type := ℝ → ℝ → ℝ → ℝ
  22
  23def LocalHamFromProfile (h : LocalHamProfile) (N : ZMod 2 → ℝ)
  24    (x : PhaseSpace 2) : ℝ :=
  25  ∑ j : ZMod 2, N j * h (x.1 j) (x.1 (j + 1)) (x.2 j)
  26
  27structure LocalHamSmooth (h : LocalHamProfile) where
  28  ha : LocalHamProfile
  29  hb : LocalHamProfile
  30  hp : LocalHamProfile
  31  hasFDerivCell :
  32    ∀ (j : ZMod 2) (x : PhaseSpace 2),
  33      HasFDerivAt (fun y : PhaseSpace 2 => h (y.1 j) (y.1 (j + 1)) (y.2 j))
  34        ((ha (x.1 j) (x.1 (j + 1)) (x.2 j)) • coordQ j +
  35          (hb (x.1 j) (x.1 (j + 1)) (x.2 j)) • coordQ (j + 1) +
  36          (hp (x.1 j) (x.1 (j + 1)) (x.2 j)) • coordP j)
  37        x
  38
  39def localCellD (h : LocalHamProfile) (S : LocalHamSmooth h) (j : ZMod 2)
  40    (x : PhaseSpace 2) : PhaseSpace 2 →L[ℝ] ℝ :=
  41  (S.ha (x.1 j) (x.1 (j + 1)) (x.2 j)) • coordQ j +
  42    (S.hb (x.1 j) (x.1 (j + 1)) (x.2 j)) • coordQ (j + 1) +
  43    (S.hp (x.1 j) (x.1 (j + 1)) (x.2 j)) • coordP j
  44
  45lemma hasFDerivAt_localCell (h : LocalHamProfile) (S : LocalHamSmooth h)
  46    (j : ZMod 2) (x : PhaseSpace 2) :
  47    HasFDerivAt (fun y : PhaseSpace 2 => h (y.1 j) (y.1 (j + 1)) (y.2 j))
  48      (localCellD h S j x) x :=
  49  S.hasFDerivCell j x
  50
  51def LocalHamFromProfileD (h : LocalHamProfile) (S : LocalHamSmooth h)
  52    (N : ZMod 2 → ℝ) (x : PhaseSpace 2) : PhaseSpace 2 →L[ℝ] ℝ :=
  53  ∑ j : ZMod 2, (N j) • localCellD h S j x
  54
  55lemma hasFDerivAt_LocalHamFromProfile (h : LocalHamProfile) (S : LocalHamSmooth h)
  56    (N : ZMod 2 → ℝ) (x : PhaseSpace 2) :
  57    HasFDerivAt (LocalHamFromProfile h N) (LocalHamFromProfileD h S N x) x := by
  58  unfold LocalHamFromProfile LocalHamFromProfileD
  59  exact HasFDerivAt.fun_sum fun j _ =>
  60    (hasFDerivAt_localCell h S j x).const_mul (N j)
  61
  62theorem differentiable_LocalHamFromProfile (h : LocalHamProfile)
  63    (S : LocalHamSmooth h) (N : ZMod 2 → ℝ) :
  64    Differentiable ℝ (LocalHamFromProfile h N) :=
  65  fun x => (hasFDerivAt_LocalHamFromProfile h S N x).differentiableAt
  66
  67private lemma cellD_pdir (h : LocalHamProfile) (S : LocalHamSmooth h)
  68    (j k : ZMod 2) (x : PhaseSpace 2) :
  69    localCellD h S j x (0, Pi.single k 1)
  70      = S.hp (x.1 j) (x.1 (j + 1)) (x.2 j) * (if j = k then (1 : ℝ) else 0) := by
  71  simp only [localCellD, ContinuousLinearMap.add_apply, ContinuousLinearMap.smul_apply,
  72    coordQ_apply, coordP_apply, Pi.single_apply]
  73  by_cases hjk : j = k <;> simp [hjk]
  74
  75private lemma cellD_qdir (h : LocalHamProfile) (S : LocalHamSmooth h)
  76    (j k : ZMod 2) (x : PhaseSpace 2) :
  77    localCellD h S j x (Pi.single k 1, 0)
  78      = S.ha (x.1 j) (x.1 (j + 1)) (x.2 j) * (if j = k then (1 : ℝ) else 0)
  79        + S.hb (x.1 j) (x.1 (j + 1)) (x.2 j) * (if j + 1 = k then (1 : ℝ) else 0) := by
  80  simp only [localCellD, ContinuousLinearMap.add_apply, ContinuousLinearMap.smul_apply,
  81    coordQ_apply, coordP_apply, Pi.single_apply]
  82  by_cases hjk : j = k
  83  · subst hjk
  84    have hjp : (j + 1 : ZMod 2) ≠ j := by
  85      intro h
  86      have : (1 : ZMod 2) = 0 := by
  87        calc (1 : ZMod 2) = j + 1 - j := by ring
  88          _ = j - j := by rw [h]
  89          _ = 0 := by ring
  90      exact absurd this (by decide)
  91    simp [hjp]
  92  · by_cases hjp : j + 1 = k
  93    · simp [hjk, hjp]
  94    · simp [hjk, hjp]
  95
  96theorem pderivP_LocalHamFromProfile (h : LocalHamProfile) (S : LocalHamSmooth h)
  97    (N : ZMod 2 → ℝ) (k : ZMod 2) (x : PhaseSpace 2) :
  98    pderivP (LocalHamFromProfile h N) k x
  99      = N k * S.hp (x.1 k) (x.1 (k + 1)) (x.2 k) := by
 100  rw [pderivP, (hasFDerivAt_LocalHamFromProfile h S N x).fderiv,
 101    LocalHamFromProfileD, ContinuousLinearMap.sum_apply]
 102  have step : ∀ j : ZMod 2,
 103      (((N j) • localCellD h S j x : PhaseSpace 2 →L[ℝ] ℝ)
 104        ((0, Pi.single k 1) : PhaseSpace 2))
 105      = (N j * S.hp (x.1 j) (x.1 (j + 1)) (x.2 j)) *
 106          (if j = k then (1 : ℝ) else 0) := by
 107    intro j
 108    simp only [ContinuousLinearMap.smul_apply, cellD_pdir, smul_eq_mul]
 109    ring
 110  rw [Finset.sum_congr rfl fun j _ => step j, sum_mul_ite]
 111
 112theorem pderivQ_LocalHamFromProfile (h : LocalHamProfile) (S : LocalHamSmooth h)
 113    (N : ZMod 2 → ℝ) (k : ZMod 2) (x : PhaseSpace 2) :
 114    pderivQ (LocalHamFromProfile h N) k x
 115      = N k * S.ha (x.1 k) (x.1 (k + 1)) (x.2 k)
 116        + N (k - 1) * S.hb (x.1 (k - 1)) (x.1 k) (x.2 (k - 1)) := by
 117  rw [pderivQ, (hasFDerivAt_LocalHamFromProfile h S N x).fderiv,
 118    LocalHamFromProfileD, ContinuousLinearMap.sum_apply]
 119  have step : ∀ j : ZMod 2,
 120      (((N j) • localCellD h S j x : PhaseSpace 2 →L[ℝ] ℝ)
 121        ((Pi.single k 1, 0) : PhaseSpace 2))
 122      = (N j * S.ha (x.1 j) (x.1 (j + 1)) (x.2 j)) *
 123            (if j = k then (1 : ℝ) else 0)
 124        + (N j * S.hb (x.1 j) (x.1 (j + 1)) (x.2 j)) *
 125            (if j + 1 = k then (1 : ℝ) else 0) := by
 126    intro j
 127    simp only [ContinuousLinearMap.smul_apply, cellD_qdir, smul_eq_mul]
 128    ring
 129  rw [Finset.sum_congr rfl fun j _ => step j, Finset.sum_add_distrib,
 130    sum_mul_ite, sum_mul_ite_add]
 131  have e : k - 1 + 1 = k := by ring
 132  simp only [e]
 133
 134def localHamHamCoefficient (h : LocalHamProfile) (S : LocalHamSmooth h)
 135    (x : PhaseSpace 2) (j : ZMod 2) : ℝ :=
 136  S.hb (x.1 j) (x.1 (j + 1)) (x.2 j) *
 137    S.hp (x.1 (j + 1)) (x.1 (j + 2)) (x.2 (j + 1))
 138
 139theorem local_profile_ham_ham_form (h : LocalHamProfile) (S : LocalHamSmooth h)
 140    (N M : ZMod 2 → ℝ) (x : PhaseSpace 2) :
 141    bracket (LocalHamFromProfile h N) (LocalHamFromProfile h M) x
 142      = ∑ j : ZMod 2,
 143          (N j * M (j + 1) - M j * N (j + 1)) *
 144            localHamHamCoefficient h S x j := by
 145  unfold bracket localHamHamCoefficient
 146  simp_rw [pderivQ_LocalHamFromProfile h S, pderivP_LocalHamFromProfile h S]
 147  have step1 :
 148      (∑ k : ZMod 2,
 149          ((N k * S.ha (x.1 k) (x.1 (k + 1)) (x.2 k)
 150              + N (k - 1) * S.hb (x.1 (k - 1)) (x.1 k) (x.2 (k - 1))) *
 151            (M k * S.hp (x.1 k) (x.1 (k + 1)) (x.2 k))
 152            - (N k * S.hp (x.1 k) (x.1 (k + 1)) (x.2 k)) *
 153              (M k * S.ha (x.1 k) (x.1 (k + 1)) (x.2 k)
 154                + M (k - 1) * S.hb (x.1 (k - 1)) (x.1 k) (x.2 (k - 1)))))
 155        = ∑ k : ZMod 2,
 156            (N (k - 1) * M k - M (k - 1) * N k) *
 157              (S.hb (x.1 (k - 1)) (x.1 k) (x.2 (k - 1)) *
 158                S.hp (x.1 k) (x.1 (k + 1)) (x.2 k)) :=
 159    Finset.sum_congr rfl fun k _ => by ring
 160  rw [step1]
 161  refine sum_reindex (n := 2) 1
 162    (fun k =>
 163      (N (k - 1) * M k - M (k - 1) * N k) *
 164        (S.hb (x.1 (k - 1)) (x.1 k) (x.2 (k - 1)) *
 165          S.hp (x.1 k) (x.1 (k + 1)) (x.2 k))) _
 166    fun j => ?_
 167  have e1 : j + 1 - 1 = j := by ring
 168  have e2 : j + 1 + 1 = j + 2 := by ring
 169  simp only [e1, e2]
 170
 171def LocalProfileMomDensityIdentity (h : LocalHamProfile) (_S : LocalHamSmooth h)
 172    (momDensity : PhaseSpace 2 → ZMod 2 → ℝ) : Prop :=
 173  ∀ (N M : ZMod 2 → ℝ) (x : PhaseSpace 2),
 174    bracket (LocalHamFromProfile h N) (LocalHamFromProfile h M) x
 175      = ∑ j : ZMod 2,
 176          (N j * M (j + 1) - M j * N (j + 1)) * momDensity x j
 177
 178theorem localHamHamCoefficient_witnesses_identity (h : LocalHamProfile)
 179    (S : LocalHamSmooth h) :
 180    LocalProfileMomDensityIdentity h S (localHamHamCoefficient h S) := by
 181  intro N M x
 182  exact local_profile_ham_ham_form h S N M x
 183
 184/-- General-n packaging Prop (defined; proved form is the n=2 theorem above). -/
 185def LocalProfileHamHamFormGeneral (n : ℕ) [NeZero n]
 186    (h : LocalHamProfile) (hb hp : LocalHamProfile) : Prop :=
 187  ∀ (N M : ZMod n → ℝ) (x : PhaseSpace n),
 188    bracket (fun y => ∑ j : ZMod n, N j * h (y.1 j) (y.1 (j + 1)) (y.2 j))
 189      (fun y => ∑ j : ZMod n, M j * h (y.1 j) (y.1 (j + 1)) (y.2 j)) x
 190      = ∑ j : ZMod n,
 191          (N j * M (j + 1) - M j * N (j + 1)) *
 192            (hb (x.1 j) (x.1 (j + 1)) (x.2 j) *
 193              hp (x.1 (j + 1)) (x.1 (j + 2)) (x.2 (j + 1)))
 194
 195end
 196end HKTLocalFunctionalEquation
 197end SevenGaps
 198end Gravity
 199end IndisputableMonolith
 200

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