IndisputableMonolith.Gravity.TensorShearSector
IndisputableMonolith/Gravity/TensorShearSector.lean · 3437 lines · 201 declarations
show as:
view math explainer →
1import Mathlib
2import IndisputableMonolith.Geometry.ReggeActionFirstVariation
3import IndisputableMonolith.Geometry.PeriodicFreudenthalTorus
4
5/-!
6# Track 1.D tensor/shear sector scaffold
7
8The existing Track 1.B conformal ansatz assigns one scalar potential to each
9vertex and induces edge-length variations by averaging endpoint potentials.
10That scalar slice is not the full weak-field metric sector: it cannot represent
11pure shear, hence cannot by itself cover transverse-traceless gravitational-wave
12modes.
13
14This file starts the tensor/shear track by separating independent edge
15perturbations from vertex-conformal perturbations and by proving the elementary
16rectangle obstruction for the conformal ansatz.
17-/
18
19namespace IndisputableMonolith
20namespace Gravity
21namespace TensorShearSector
22
23open Geometry.ReggeTriangulation3D
24open Geometry.ReggeHessian3D
25open Geometry.ReggeActionFirstVariation
26open Geometry.Triangulation3DConsistency
27open Geometry.PeriodicFreudenthalTorus
28
29noncomputable section
30
31/-- Edge-level length perturbations. Unlike `VertexPotential`, this has one
32degree of freedom per global edge and is the natural finite Regge surface for
33anisotropic shear and TT modes. -/
34abbrev EdgePerturbation (K : Triangulation3D) :=
35 Fin K.nE → ℝ
36
37/-- The first-order log-length strain induced by the vertex-conformal ansatz. -/
38def conformalEdgeLogStrain (K : Triangulation3D) (ξ : VertexPotential K) :
39 EdgePerturbation K :=
40 fun e =>
41 let uv := K.edgeVerts e
42 (ξ uv.1 + ξ uv.2) / 2
43
44/-- The actual first-order length variation induced by the conformal ansatz. -/
45def conformalEdgeLengthPerturbation
46 (K : Triangulation3D) (hK : IncidenceConsistent K) (ξ : VertexPotential K) :
47 EdgePerturbation K :=
48 fun e => hingeMeasureDirectionalDeriv K hK ξ e
49
50theorem conformalEdgeLengthPerturbation_eq_sqrt_mul_logStrain
51 (K : Triangulation3D) (hK : IncidenceConsistent K) (ξ : VertexPotential K)
52 (e : Fin K.nE) :
53 conformalEdgeLengthPerturbation K hK ξ e =
54 Real.sqrt (hK.globalSqEdge e) * conformalEdgeLogStrain K ξ e := by
55 rfl
56
57/-- The subspace of edge perturbations that come from vertex-conformal
58potentials. Track 1.B lives inside this subspace. -/
59def IsConformalEdgePerturbation (K : Triangulation3D) (ε : EdgePerturbation K) : Prop :=
60 ∃ ξ : VertexPotential K, ε = conformalEdgeLogStrain K ξ
61
62/-- Rectangle obstruction in first-order log strains. If a quadrilateral's two
63opposite horizontal edges have conformal log-strain `h` and its two opposite
64vertical edges have conformal log-strain `v`, then `h = v`. Hence a nontrivial
65rectangle/shear mode cannot be vertex-conformal. -/
66theorem vertexConformal_rectangle_log_strain_forces_square
67 (ξa ξb ξc ξd h v : ℝ)
68 (hab : (ξa + ξb) / 2 = h)
69 (hcd : (ξc + ξd) / 2 = h)
70 (hbc : (ξb + ξc) / 2 = v)
71 (hda : (ξd + ξa) / 2 = v) :
72 h = v := by
73 linarith
74
75/-- A nontrivial rectangle/shear strain (`h ≠ v`) has no vertex-conformal
76potential realization. -/
77theorem nontrivial_rectangle_shear_not_vertexConformal
78 (h v : ℝ) (hne : h ≠ v) :
79 ¬ ∃ ξa ξb ξc ξd : ℝ,
80 (ξa + ξb) / 2 = h ∧
81 (ξc + ξd) / 2 = h ∧
82 (ξb + ξc) / 2 = v ∧
83 (ξd + ξa) / 2 = v := by
84 rintro ⟨ξa, ξb, ξc, ξd, hab, hcd, hbc, hda⟩
85 exact hne (vertexConformal_rectangle_log_strain_forces_square
86 ξa ξb ξc ξd h v hab hcd hbc hda)
87
88/-! ## Concrete `N = 5` periodic Freudenthal edge surface -/
89
90abbrev PeriodicVertex5 :=
91 Vertex 5 5 5
92
93abbrev PeriodicEdge5 :=
94 PeriodicEdge 5 5 5
95
96/-- The canonical encoded `5 × 5 × 5` periodic Freudenthal torus for Track 1.D. -/
97noncomputable abbrev PeriodicTorus5 :=
98 canonicalEncodedPeriodicFreudenthalTorus 5 5 5 (by decide) (by decide) (by decide)
99
100/-- External vertex decoder matching the numerical order used by the Track 1.D
101payload generators: `vertex_index = (x * 5 + y) * 5 + z`. -/
102def periodicExternalVertexOfIndex5 (idx : Nat) : PeriodicVertex5 :=
103 (⟨(idx / 25) % 5, by omega⟩,
104 ⟨(idx / 5) % 5, by omega⟩,
105 ⟨idx % 5, by omega⟩)
106
107/-- External vertex encoder matching `periodicExternalVertexOfIndex5` on
108in-range payload vertices. -/
109def periodicExternalVertexIndex5 (v : PeriodicVertex5) : Nat :=
110 (v.1.1 * 5 + v.2.1.1) * 5 + v.2.2.1
111
112/-- External edge decoder matching the numerical order used by the Track 1.D
113payload generators: `edge_index = vertex_index * 7 + disp`. This is a
114computable, Lean-native companion to the canonical `PeriodicTorus5.edgeEquiv`,
115whose current implementation goes through opaque `Fintype.equivFin` order. -/
116def periodicExternalEdgeOfEncodedIdx5
117 (idx : Fin PeriodicTorus5.K.nE) : PeriodicEdge5 :=
118 { base := periodicExternalVertexOfIndex5 (idx.1 / 7)
119 disp := ⟨idx.1 % 7, by omega⟩ }
120
121/-- External edge encoder matching the numerical order used by the Track 1.D
122payload generators. -/
123def periodicExternalEdgeIndex5 (e : PeriodicEdge5) : Nat :=
124 periodicExternalVertexIndex5 e.base * 7 + e.disp.1
125
126/-- Canonical encoded vertex index equivalence for the concrete `N = 5` torus. -/
127noncomputable abbrev periodicVertexEquiv5 :
128 Fin PeriodicTorus5.K.nV ≃ PeriodicVertex5 :=
129 vertexFinEquiv 5 5 5
130
131/-- Coordinate addition on the concrete `N = 5` torus. -/
132def periodicAddFin5 (base v : Fin 5) : Fin 5 :=
133 ⟨(base.1 + v.1) % 5, by omega⟩
134
135/-- Translate a vertex by another vertex on the concrete `N = 5` torus. -/
136def periodicTranslateVertex5 (base v : PeriodicVertex5) : PeriodicVertex5 :=
137 (periodicAddFin5 base.1 v.1,
138 periodicAddFin5 base.2.1 v.2.1,
139 periodicAddFin5 base.2.2 v.2.2)
140
141/-- Encoded vertex-index shift corresponding to translation by a typed row base. -/
142noncomputable def periodicTranslateEncodedVertexIdx5
143 (base : PeriodicVertex5) (v : Fin PeriodicTorus5.K.nV) :
144 Fin PeriodicTorus5.K.nV :=
145 periodicVertexEquiv5.symm (periodicTranslateVertex5 base (periodicVertexEquiv5 v))
146
147/-- The encoded torus endpoint map agrees with the typed periodic-edge
148endpoints after transporting through the canonical vertex equivalence. -/
149theorem periodicTorus5_edgeVerts_symm_eq_endpoints
150 (e : PeriodicEdge5) :
151 PeriodicTorus5.K.edgeVerts (PeriodicTorus5.edgeEquiv.symm e) =
152 (periodicVertexEquiv5.symm e.endpoints.1,
153 periodicVertexEquiv5.symm e.endpoints.2) := by
154 simp [periodicVertexEquiv5,
155 canonicalEncodedPeriodicFreudenthalTorus,
156 canonicalEncodedPeriodicFreudenthalTorus_of_endpoint,
157 canonicalEncodedPeriodicFreudenthalTorus_of_incidence,
158 canonicalPeriodicTriangulation, canonicalPeriodicEdgeEquiv,
159 canonicalEdgeVerts]
160
161/-- Edge perturbations indexed by the typed periodic Freudenthal edges. -/
162abbrev PeriodicEdgePerturbation5 :=
163 PeriodicEdge5 → ℝ
164
165/-- Edge perturbations indexed by the encoded finite triangulation edges. -/
166abbrev EncodedEdgePerturbation5 :=
167 EdgePerturbation PeriodicTorus5.K
168
169/-- Pull an encoded finite edge perturbation back to typed periodic edges. -/
170def encodedToPeriodicEdgePerturbation5
171 (ε : EncodedEdgePerturbation5) : PeriodicEdgePerturbation5 :=
172 fun e => ε (PeriodicTorus5.edgeEquiv.symm e)
173
174/-- Push a typed periodic edge perturbation to encoded finite edge indices. -/
175def periodicToEncodedEdgePerturbation5
176 (ε : PeriodicEdgePerturbation5) : EncodedEdgePerturbation5 :=
177 fun e => ε (PeriodicTorus5.edgeEquiv e)
178
179/-- The encoded `Fin K.nE` and typed periodic-edge views of the `N = 5`
180tensor/shear perturbation surface are exactly equivalent. -/
181noncomputable def periodicEdgePerturbationEquiv5 :
182 EncodedEdgePerturbation5 ≃ PeriodicEdgePerturbation5 where
183 toFun := encodedToPeriodicEdgePerturbation5
184 invFun := periodicToEncodedEdgePerturbation5
185 left_inv := by
186 intro ε
187 funext e
188 simp [encodedToPeriodicEdgePerturbation5, periodicToEncodedEdgePerturbation5]
189 right_inv := by
190 intro ε
191 funext e
192 simp [encodedToPeriodicEdgePerturbation5, periodicToEncodedEdgePerturbation5]
193
194/-- Raw additive splitting datum for an edge-perturbation space. This carries
195only the algebraic reconstruction identity; the real Track 1.D target below
196adds conformal, gauge, and TT membership predicates. -/
197structure RawEdgePerturbationSplitting (E : Type) where
198 conformalPart : (E → ℝ) → E → ℝ
199 gaugePart : (E → ℝ) → E → ℝ
200 ttPart : (E → ℝ) → E → ℝ
201 reconstruct :
202 ∀ ε : E → ℝ, ∀ e : E,
203 conformalPart ε e + gaugePart ε e + ttPart ε e = ε e
204
205/-- The concrete next target for Track 1.D after Session 215. The three
206predicates must be supplied by the actual periodic Freudenthal operators:
207conformal/trace, gauge/longitudinal, and TT/transverse-traceless. -/
208def PeriodicFreudenthalTTDecompositionTargetAtN5
209 (IsConformal IsGauge IsTT : PeriodicEdgePerturbation5 → Prop) : Prop :=
210 ∃ split : RawEdgePerturbationSplitting PeriodicEdge5,
211 (∀ ε, IsConformal (split.conformalPart ε)) ∧
212 (∀ ε, IsGauge (split.gaugePart ε)) ∧
213 (∀ ε, IsTT (split.ttPart ε))
214
215/-- Carry any decomposition on encoded finite edges across the canonical
216periodic-edge equivalence. -/
217noncomputable def periodicRawSplittingOfEncoded5
218 (D : RawEdgePerturbationSplitting (Fin PeriodicTorus5.K.nE)) :
219 RawEdgePerturbationSplitting PeriodicEdge5 where
220 conformalPart ε :=
221 encodedToPeriodicEdgePerturbation5
222 (D.conformalPart (periodicToEncodedEdgePerturbation5 ε))
223 gaugePart ε :=
224 encodedToPeriodicEdgePerturbation5
225 (D.gaugePart (periodicToEncodedEdgePerturbation5 ε))
226 ttPart ε :=
227 encodedToPeriodicEdgePerturbation5
228 (D.ttPart (periodicToEncodedEdgePerturbation5 ε))
229 reconstruct := by
230 intro ε e
231 simp [encodedToPeriodicEdgePerturbation5, periodicToEncodedEdgePerturbation5,
232 D.reconstruct]
233
234/-! ## Orthogonal conformal/gauge/TT surface -/
235
236/-- The finite `N = 5` edge-space inner product used for the tensor/shear
237decomposition. -/
238def periodicEdgeInnerProduct5
239 (ε η : PeriodicEdgePerturbation5) : ℝ :=
240 ∑ e : PeriodicEdge5, ε e * η e
241
242theorem periodicEdgeInnerProduct5_symm
243 (ε η : PeriodicEdgePerturbation5) :
244 periodicEdgeInnerProduct5 ε η = periodicEdgeInnerProduct5 η ε := by
245 unfold periodicEdgeInnerProduct5
246 refine Finset.sum_congr rfl ?_
247 intro e _
248 ring
249
250theorem periodicEdgeInnerProduct5_zero_left
251 (η : PeriodicEdgePerturbation5) :
252 periodicEdgeInnerProduct5 (fun _ => 0) η = 0 := by
253 simp [periodicEdgeInnerProduct5]
254
255theorem periodicEdgeInnerProduct5_zero_right
256 (ε : PeriodicEdgePerturbation5) :
257 periodicEdgeInnerProduct5 ε (fun _ => 0) = 0 := by
258 simp [periodicEdgeInnerProduct5]
259
260theorem periodicEdgeInnerProduct5_add_right
261 (ε η ζ : PeriodicEdgePerturbation5) :
262 periodicEdgeInnerProduct5 ε (fun e => η e + ζ e) =
263 periodicEdgeInnerProduct5 ε η + periodicEdgeInnerProduct5 ε ζ := by
264 unfold periodicEdgeInnerProduct5
265 rw [← Finset.sum_add_distrib]
266 refine Finset.sum_congr rfl ?_
267 intro e _
268 ring
269
270set_option maxRecDepth 65536
271
272/-- On the finite real periodic-edge space, zero self-inner-product forces the
273edge perturbation itself to vanish. -/
274theorem periodicEdgePerturbation5_eq_zero_of_inner_self_eq_zero
275 (ε : PeriodicEdgePerturbation5)
276 (h : periodicEdgeInnerProduct5 ε ε = 0) :
277 ε = fun _ => 0 := by
278 funext e
279 have hsum : (∑ x : PeriodicEdge5, ε x * ε x) = 0 := by
280 simpa [periodicEdgeInnerProduct5] using h
281 by_contra hne
282 have hpos : 0 < ε e * ε e := mul_self_pos.mpr hne
283 have hsum_pos : 0 < ∑ x : PeriodicEdge5, ε x * ε x := by
284 exact Finset.sum_pos'
285 (fun x _ => mul_self_nonneg (ε x))
286 ⟨e, Finset.mem_univ e, hpos⟩
287 rw [hsum] at hsum_pos
288 exact (lt_irrefl (0 : ℝ) hsum_pos).elim
289
290/-- The periodic-edge version of the vertex-conformal/log-strain subspace. -/
291def PeriodicConformalLogSubspace5
292 (ε : PeriodicEdgePerturbation5) : Prop :=
293 ∃ ξ : VertexPotential PeriodicTorus5.K,
294 ε = encodedToPeriodicEdgePerturbation5 (conformalEdgeLogStrain PeriodicTorus5.K ξ)
295
296theorem periodicConformalLogSubspace5_zero :
297 PeriodicConformalLogSubspace5 (fun _ => 0) := by
298 refine ⟨fun _ => 0, ?_⟩
299 funext e
300 simp [encodedToPeriodicEdgePerturbation5, conformalEdgeLogStrain]
301
302/-- Encoded vertex delta used to generate the finite conformal subspace. -/
303def encodedVertexDeltaPotential5
304 (v : Fin PeriodicTorus5.K.nV) : VertexPotential PeriodicTorus5.K :=
305 fun w => if w = v then 1 else 0
306
307/-- The conformal generator obtained by putting unit potential at one encoded
308vertex and zero potential at the others. -/
309def periodicConformalGenerator5
310 (v : Fin PeriodicTorus5.K.nV) : PeriodicEdgePerturbation5 :=
311 encodedToPeriodicEdgePerturbation5
312 (conformalEdgeLogStrain PeriodicTorus5.K (encodedVertexDeltaPotential5 v))
313
314/-- Pointwise form of the conformal vertex-delta edge generator in typed
315periodic-edge coordinates. -/
316theorem periodicConformalGenerator5_apply_endpoint
317 (v : Fin PeriodicTorus5.K.nV) (e : PeriodicEdge5) :
318 periodicConformalGenerator5 v e =
319 ((if periodicVertexEquiv5.symm e.endpoints.1 = v then 1 else 0) +
320 (if periodicVertexEquiv5.symm e.endpoints.2 = v then 1 else 0)) / 2 := by
321 unfold periodicConformalGenerator5 encodedToPeriodicEdgePerturbation5
322 conformalEdgeLogStrain encodedVertexDeltaPotential5
323 rw [periodicTorus5_edgeVerts_symm_eq_endpoints]
324
325/-- The concrete `N = 5` conformal slice is spanned by encoded vertex delta
326generators. This supplies the conformal half of the finite-generator TT
327projector data. -/
328theorem periodicConformalLogSubspace5_spanned_by_encodedVertexGenerators
329 (c : PeriodicEdgePerturbation5)
330 (hc : PeriodicConformalLogSubspace5 c) :
331 ∃ coeff : Fin PeriodicTorus5.K.nV → ℝ,
332 ∀ e, c e = ∑ v : Fin PeriodicTorus5.K.nV,
333 coeff v * periodicConformalGenerator5 v e := by
334 classical
335 rcases hc with ⟨ξ, rfl⟩
336 refine ⟨ξ, ?_⟩
337 intro e
338 unfold periodicConformalGenerator5 encodedVertexDeltaPotential5
339 encodedToPeriodicEdgePerturbation5 conformalEdgeLogStrain
340 simp [Finset.mul_sum, Finset.sum_add_distrib, div_eq_mul_inv, mul_add,
341 mul_assoc, mul_comm]
342
343/-- A gauge subspace supplied by a concrete forward Track 1.D gauge operator. The
344operator remains a parameter here, so this file does not pretend to have already
345chosen the longitudinal/diffeomorphism discretization. -/
346def PeriodicGaugeSubspace5
347 (GaugePotential : Type) (gaugeMap : GaugePotential → PeriodicEdgePerturbation5)
348 (ε : PeriodicEdgePerturbation5) : Prop :=
349 ∃ A : GaugePotential, ε = gaugeMap A
350
351/-- TT means orthogonal to the conformal slice and to the supplied gauge slice
352with respect to the finite periodic-edge inner product. -/
353def PeriodicTTOrthogonal5
354 (GaugePotential : Type) (gaugeMap : GaugePotential → PeriodicEdgePerturbation5)
355 (ε : PeriodicEdgePerturbation5) : Prop :=
356 (∀ c : PeriodicEdgePerturbation5,
357 PeriodicConformalLogSubspace5 c → periodicEdgeInnerProduct5 ε c = 0) ∧
358 (∀ g : PeriodicEdgePerturbation5,
359 PeriodicGaugeSubspace5 GaugePotential gaugeMap g →
360 periodicEdgeInnerProduct5 ε g = 0)
361
362theorem periodicTTOrthogonal5_zero
363 (GaugePotential : Type) (gaugeMap : GaugePotential → PeriodicEdgePerturbation5) :
364 PeriodicTTOrthogonal5 GaugePotential gaugeMap (fun _ => 0) := by
365 constructor
366 · intro c _
367 exact periodicEdgeInnerProduct5_zero_left c
368 · intro g _
369 exact periodicEdgeInnerProduct5_zero_left g
370
371/-- Honest Track 1.D decomposition target with TT interpreted as finite
372orthogonality to the conformal and gauge subspaces. The remaining mathematical
373load is the construction of the three projectors. -/
374def PeriodicFreudenthalTTOrthogonalDecompositionTargetAtN5
375 (GaugePotential : Type) (gaugeMap : GaugePotential → PeriodicEdgePerturbation5) : Prop :=
376 ∃ split : RawEdgePerturbationSplitting PeriodicEdge5,
377 (∀ ε, PeriodicConformalLogSubspace5 (split.conformalPart ε)) ∧
378 (∀ ε, PeriodicGaugeSubspace5 GaugePotential gaugeMap (split.gaugePart ε)) ∧
379 (∀ ε, PeriodicTTOrthogonal5 GaugePotential gaugeMap (split.ttPart ε))
380
381/-- Concrete projector data needed to close the finite `N = 5` conformal/gauge/TT
382decomposition. This is still a theorem-shaped target: the tensor lane must
383construct these three maps for the chosen gauge operator and prove membership
384plus pointwise reconstruction. -/
385structure PeriodicTTProjectorData5
386 (GaugePotential : Type) (gaugeMap : GaugePotential → PeriodicEdgePerturbation5) where
387 conformalProjector : PeriodicEdgePerturbation5 → PeriodicEdgePerturbation5
388 gaugeProjector : PeriodicEdgePerturbation5 → PeriodicEdgePerturbation5
389 ttProjector : PeriodicEdgePerturbation5 → PeriodicEdgePerturbation5
390 conformal_mem :
391 ∀ ε, PeriodicConformalLogSubspace5 (conformalProjector ε)
392 gauge_mem :
393 ∀ ε, PeriodicGaugeSubspace5 GaugePotential gaugeMap (gaugeProjector ε)
394 tt_mem :
395 ∀ ε, PeriodicTTOrthogonal5 GaugePotential gaugeMap (ttProjector ε)
396 reconstruct :
397 ∀ ε e, conformalProjector ε e + gaugeProjector ε e + ttProjector ε e = ε e
398
399/-- Linearity of the finite periodic-edge inner product in the right argument,
400specialized to a finite linear combination. -/
401theorem periodicEdgeInnerProduct5_linear_combo_right
402 {ι : Type} [Fintype ι]
403 (ε : PeriodicEdgePerturbation5)
404 (coeff : ι → ℝ) (basis : ι → PeriodicEdgePerturbation5) :
405 periodicEdgeInnerProduct5 ε (fun e => ∑ i : ι, coeff i * basis i e) =
406 ∑ i : ι, coeff i * periodicEdgeInnerProduct5 ε (basis i) := by
407 classical
408 unfold periodicEdgeInnerProduct5
409 calc
410 (∑ e : PeriodicEdge5, ε e * (∑ i : ι, coeff i * basis i e)) =
411 ∑ e : PeriodicEdge5, ∑ i : ι, ε e * (coeff i * basis i e) := by
412 refine Finset.sum_congr rfl ?_
413 intro e _
414 rw [Finset.mul_sum]
415 _ = ∑ i : ι, ∑ e : PeriodicEdge5, ε e * (coeff i * basis i e) := by
416 rw [Finset.sum_comm]
417 _ = ∑ i : ι, coeff i * ∑ e : PeriodicEdge5, ε e * basis i e := by
418 refine Finset.sum_congr rfl ?_
419 intro i _
420 rw [Finset.mul_sum]
421 refine Finset.sum_congr rfl ?_
422 intro e _
423 ring
424
425/-- Finite-generator projector data. This is the next concrete Track 1.D proof
426surface: give finite spanning families for the conformal and gauge slices, then
427construct projectors whose TT residual is orthogonal to every generator. -/
428structure PeriodicTTFiniteGeneratorProjectorData5
429 (GaugePotential : Type) (gaugeMap : GaugePotential → PeriodicEdgePerturbation5)
430 (CIdx GIdx : Type) [Fintype CIdx] [Fintype GIdx] where
431 conformalProjector : PeriodicEdgePerturbation5 → PeriodicEdgePerturbation5
432 gaugeProjector : PeriodicEdgePerturbation5 → PeriodicEdgePerturbation5
433 ttProjector : PeriodicEdgePerturbation5 → PeriodicEdgePerturbation5
434 conformalGen : CIdx → PeriodicEdgePerturbation5
435 gaugeGen : GIdx → PeriodicEdgePerturbation5
436 conformal_mem :
437 ∀ ε, PeriodicConformalLogSubspace5 (conformalProjector ε)
438 gauge_mem :
439 ∀ ε, PeriodicGaugeSubspace5 GaugePotential gaugeMap (gaugeProjector ε)
440 conformal_span :
441 ∀ c, PeriodicConformalLogSubspace5 c →
442 ∃ coeff : CIdx → ℝ, ∀ e, c e = ∑ i : CIdx, coeff i * conformalGen i e
443 gauge_span :
444 ∀ g, PeriodicGaugeSubspace5 GaugePotential gaugeMap g →
445 ∃ coeff : GIdx → ℝ, ∀ e, g e = ∑ i : GIdx, coeff i * gaugeGen i e
446 tt_orthogonal_conformal_gen :
447 ∀ ε i, periodicEdgeInnerProduct5 (ttProjector ε) (conformalGen i) = 0
448 tt_orthogonal_gauge_gen :
449 ∀ ε i, periodicEdgeInnerProduct5 (ttProjector ε) (gaugeGen i) = 0
450 reconstruct :
451 ∀ ε e, conformalProjector ε e + gaugeProjector ε e + ttProjector ε e = ε e
452
453/-- The gauge map generated by a finite family of longitudinal edge
454perturbations. Gauge potentials are coefficient vectors on the supplied
455generators. -/
456def periodicGaugeGeneratorMap5
457 {GIdx : Type} [Fintype GIdx]
458 (gaugeGen : GIdx → PeriodicEdgePerturbation5) :
459 (GIdx → ℝ) → PeriodicEdgePerturbation5 :=
460 fun coeff e => ∑ i : GIdx, coeff i * gaugeGen i e
461
462/-- The conformal projector generated by coefficients on the encoded vertex
463delta basis. -/
464def periodicConformalGeneratorMap5 :
465 (Fin PeriodicTorus5.K.nV → ℝ) → PeriodicEdgePerturbation5 :=
466 periodicGaugeGeneratorMap5 periodicConformalGenerator5
467
468/-- The conformal generator map has two-point support on a concrete edge: only
469the base and head endpoint coefficients contribute. -/
470theorem periodicConformalGeneratorMap5_apply_endpoint
471 (coeff : Fin PeriodicTorus5.K.nV → ℝ) (e : PeriodicEdge5) :
472 periodicConformalGeneratorMap5 coeff e =
473 (coeff (periodicVertexEquiv5.symm e.endpoints.1) +
474 coeff (periodicVertexEquiv5.symm e.endpoints.2)) / 2 := by
475 classical
476 unfold periodicConformalGeneratorMap5 periodicGaugeGeneratorMap5
477 simp [periodicConformalGenerator5_apply_endpoint, Finset.sum_add_distrib,
478 div_eq_mul_inv, mul_add, mul_comm]
479
480/-- Any coefficient vector on the encoded vertex-delta conformal generators
481lands in the conformal subspace. -/
482theorem periodicConformalGeneratorMap5_mem
483 (coeff : Fin PeriodicTorus5.K.nV → ℝ) :
484 PeriodicConformalLogSubspace5 (periodicConformalGeneratorMap5 coeff) := by
485 classical
486 refine ⟨coeff, ?_⟩
487 funext e
488 unfold periodicConformalGeneratorMap5 periodicGaugeGeneratorMap5
489 periodicConformalGenerator5 encodedVertexDeltaPotential5
490 encodedToPeriodicEdgePerturbation5 conformalEdgeLogStrain
491 simp [Finset.mul_sum, Finset.sum_add_distrib, div_eq_mul_inv, mul_add,
492 mul_assoc, mul_comm]
493
494/-- The image of a generator-defined gauge map is spanned by its generators by
495construction. -/
496theorem periodicGaugeSubspace5_spanned_by_generatorMap
497 {GIdx : Type} [Fintype GIdx]
498 (gaugeGen : GIdx → PeriodicEdgePerturbation5)
499 (g : PeriodicEdgePerturbation5)
500 (hg : PeriodicGaugeSubspace5 (GIdx → ℝ) (periodicGaugeGeneratorMap5 gaugeGen) g) :
501 ∃ coeff : GIdx → ℝ, ∀ e, g e = ∑ i : GIdx, coeff i * gaugeGen i e := by
502 rcases hg with ⟨coeff, rfl⟩
503 exact ⟨coeff, fun _ => rfl⟩
504
505/-- Index type for the concrete periodic longitudinal gauge basis: one vector
506component at one periodic vertex. -/
507abbrev PeriodicLongitudinalGaugeIdx5 :=
508 PeriodicVertex5 × Fin 3
509
510/-- Translate a concrete longitudinal gauge basis index by a typed row base. -/
511def periodicTranslateLongitudinalGaugeIdx5
512 (base : PeriodicVertex5) (idx : PeriodicLongitudinalGaugeIdx5) :
513 PeriodicLongitudinalGaugeIdx5 :=
514 (periodicTranslateVertex5 base idx.1, idx.2)
515
516/-- Coordinate component of one of the seven positive Freudenthal edge
517displacements. -/
518def periodicDispCoord5 (disp : Fin 7) (j : Fin 3) : ℝ :=
519 let bits := dispBits disp
520 match j with
521 | ⟨0, _⟩ => if bits.1 then 1 else 0
522 | ⟨1, _⟩ => if bits.2.1 then 1 else 0
523 | ⟨2, _⟩ => if bits.2.2 then 1 else 0
524
525/-- Concrete finite longitudinal gauge generator on periodic edge strains. It is
526the signed edge-direction component of a unit vector field at one vertex:
527positive at the head endpoint and negative at the base endpoint. -/
528def periodicLongitudinalGaugeGenerator5
529 (idx : PeriodicLongitudinalGaugeIdx5) : PeriodicEdgePerturbation5 :=
530 fun e =>
531 let d := periodicDispCoord5 e.disp idx.2
532 (if e.endpoints.2 = idx.1 then d else 0) -
533 (if e.endpoints.1 = idx.1 then d else 0)
534
535/-- The concrete finite longitudinal gauge map generated by vertex-vector delta
536basis elements. -/
537def periodicLongitudinalGaugeMap5 :
538 (PeriodicLongitudinalGaugeIdx5 → ℝ) → PeriodicEdgePerturbation5 :=
539 periodicGaugeGeneratorMap5 periodicLongitudinalGaugeGenerator5
540
541/-- The longitudinal gauge map has endpoint support on a concrete edge: only
542the three component coefficients at the edge base and head contribute. -/
543theorem periodicLongitudinalGaugeMap5_apply_endpoint
544 (coeff : PeriodicLongitudinalGaugeIdx5 → ℝ) (e : PeriodicEdge5) :
545 periodicLongitudinalGaugeMap5 coeff e =
546 ∑ c : Fin 3,
547 (coeff (e.endpoints.2, c) - coeff (e.endpoints.1, c)) *
548 periodicDispCoord5 e.disp c := by
549 classical
550 unfold periodicLongitudinalGaugeMap5 periodicGaugeGeneratorMap5
551 periodicLongitudinalGaugeGenerator5
552 rw [Fintype.sum_prod_type]
553 simp [Finset.sum_sub_distrib, mul_sub, mul_comm]
554
555/-- The concrete longitudinal gauge map is, by definition, generated by the
556vertex-vector longitudinal basis. -/
557theorem periodicLongitudinalGaugeMap5_eq_generatorMap :
558 periodicLongitudinalGaugeMap5 =
559 periodicGaugeGeneratorMap5 periodicLongitudinalGaugeGenerator5 :=
560 rfl
561
562/-- Concrete TT predicate for the fixed longitudinal-gauge tensor sector. -/
563abbrev PeriodicLongitudinalTTSubspace5 :=
564 PeriodicTTOrthogonal5
565 (PeriodicLongitudinalGaugeIdx5 → ℝ)
566 periodicLongitudinalGaugeMap5
567
568/-- The concrete longitudinal gauge image is spanned by the vertex-vector delta
569generators. -/
570theorem periodicGaugeSubspace5_spanned_by_longitudinalGeneratorMap
571 (g : PeriodicEdgePerturbation5)
572 (hg : PeriodicGaugeSubspace5
573 (PeriodicLongitudinalGaugeIdx5 → ℝ) periodicLongitudinalGaugeMap5 g) :
574 ∃ coeff : PeriodicLongitudinalGaugeIdx5 → ℝ,
575 ∀ e, g e =
576 ∑ i : PeriodicLongitudinalGaugeIdx5,
577 coeff i * periodicLongitudinalGaugeGenerator5 i e := by
578 exact periodicGaugeSubspace5_spanned_by_generatorMap
579 periodicLongitudinalGaugeGenerator5 g hg
580
581/-- Gauge-generator projector data, with the conformal generators fixed to the
582encoded vertex-delta family already proved to span the conformal slice. This is
583the sharper Track 1.D target after the conformal half has been discharged. -/
584structure PeriodicTTGaugeGeneratorProjectorData5
585 (GaugePotential : Type) (gaugeMap : GaugePotential → PeriodicEdgePerturbation5)
586 (GIdx : Type) [Fintype GIdx] where
587 conformalProjector : PeriodicEdgePerturbation5 → PeriodicEdgePerturbation5
588 gaugeProjector : PeriodicEdgePerturbation5 → PeriodicEdgePerturbation5
589 ttProjector : PeriodicEdgePerturbation5 → PeriodicEdgePerturbation5
590 gaugeGen : GIdx → PeriodicEdgePerturbation5
591 conformal_mem :
592 ∀ ε, PeriodicConformalLogSubspace5 (conformalProjector ε)
593 gauge_mem :
594 ∀ ε, PeriodicGaugeSubspace5 GaugePotential gaugeMap (gaugeProjector ε)
595 gauge_span :
596 ∀ g, PeriodicGaugeSubspace5 GaugePotential gaugeMap g →
597 ∃ coeff : GIdx → ℝ, ∀ e, g e = ∑ i : GIdx, coeff i * gaugeGen i e
598 tt_orthogonal_conformal_gen :
599 ∀ ε v, periodicEdgeInnerProduct5 (ttProjector ε) (periodicConformalGenerator5 v) = 0
600 tt_orthogonal_gauge_gen :
601 ∀ ε i, periodicEdgeInnerProduct5 (ttProjector ε) (gaugeGen i) = 0
602 reconstruct :
603 ∀ ε e, conformalProjector ε e + gaugeProjector ε e + ttProjector ε e = ε e
604
605/-- Projector data for a gauge map that is itself defined by finite generators.
606This removes a separate gauge-span obligation: the gauge map is the span. -/
607structure PeriodicTTGeneratorMapProjectorData5
608 (GIdx : Type) [Fintype GIdx] where
609 conformalProjector : PeriodicEdgePerturbation5 → PeriodicEdgePerturbation5
610 gaugeCoeffProjector : PeriodicEdgePerturbation5 → GIdx → ℝ
611 ttProjector : PeriodicEdgePerturbation5 → PeriodicEdgePerturbation5
612 gaugeGen : GIdx → PeriodicEdgePerturbation5
613 conformal_mem :
614 ∀ ε, PeriodicConformalLogSubspace5 (conformalProjector ε)
615 tt_orthogonal_conformal_gen :
616 ∀ ε v, periodicEdgeInnerProduct5 (ttProjector ε) (periodicConformalGenerator5 v) = 0
617 tt_orthogonal_gauge_gen :
618 ∀ ε i, periodicEdgeInnerProduct5 (ttProjector ε) (gaugeGen i) = 0
619 reconstruct :
620 ∀ ε e,
621 conformalProjector ε e +
622 periodicGaugeGeneratorMap5 gaugeGen (gaugeCoeffProjector ε) e +
623 ttProjector ε e = ε e
624
625/-- Projector data for the concrete periodic longitudinal gauge basis. This is
626now the exact finite-dimensional decomposition input still owed by Track 1.D. -/
627structure PeriodicTTLongitudinalProjectorData5 where
628 conformalProjector : PeriodicEdgePerturbation5 → PeriodicEdgePerturbation5
629 gaugeCoeffProjector :
630 PeriodicEdgePerturbation5 → PeriodicLongitudinalGaugeIdx5 → ℝ
631 ttProjector : PeriodicEdgePerturbation5 → PeriodicEdgePerturbation5
632 conformal_mem :
633 ∀ ε, PeriodicConformalLogSubspace5 (conformalProjector ε)
634 tt_orthogonal_conformal_gen :
635 ∀ ε v, periodicEdgeInnerProduct5 (ttProjector ε) (periodicConformalGenerator5 v) = 0
636 tt_orthogonal_gauge_gen :
637 ∀ ε i,
638 periodicEdgeInnerProduct5 (ttProjector ε) (periodicLongitudinalGaugeGenerator5 i) = 0
639 reconstruct :
640 ∀ ε e,
641 conformalProjector ε e +
642 periodicLongitudinalGaugeMap5 (gaugeCoeffProjector ε) e +
643 ttProjector ε e = ε e
644
645/-- Pure coefficient-projector data for the concrete longitudinal split. The
646conformal part is no longer an arbitrary map: it is explicitly generated from
647encoded vertex-delta coefficients. -/
648structure PeriodicTTLongitudinalCoefficientProjectorData5 where
649 conformalCoeffProjector :
650 PeriodicEdgePerturbation5 → Fin PeriodicTorus5.K.nV → ℝ
651 gaugeCoeffProjector :
652 PeriodicEdgePerturbation5 → PeriodicLongitudinalGaugeIdx5 → ℝ
653 ttProjector : PeriodicEdgePerturbation5 → PeriodicEdgePerturbation5
654 tt_orthogonal_conformal_gen :
655 ∀ ε v, periodicEdgeInnerProduct5 (ttProjector ε) (periodicConformalGenerator5 v) = 0
656 tt_orthogonal_gauge_gen :
657 ∀ ε i,
658 periodicEdgeInnerProduct5 (ttProjector ε) (periodicLongitudinalGaugeGenerator5 i) = 0
659 reconstruct :
660 ∀ ε e,
661 periodicConformalGeneratorMap5 (conformalCoeffProjector ε) e +
662 periodicLongitudinalGaugeMap5 (gaugeCoeffProjector ε) e +
663 ttProjector ε e = ε e
664
665/-- Residual after subtracting the conformal and longitudinal coefficient
666projections from an edge perturbation. -/
667def periodicLongitudinalCoefficientResidual5
668 (conformalCoeffProjector :
669 PeriodicEdgePerturbation5 → Fin PeriodicTorus5.K.nV → ℝ)
670 (gaugeCoeffProjector :
671 PeriodicEdgePerturbation5 → PeriodicLongitudinalGaugeIdx5 → ℝ)
672 (ε : PeriodicEdgePerturbation5) : PeriodicEdgePerturbation5 :=
673 fun e =>
674 ε e - periodicConformalGeneratorMap5 (conformalCoeffProjector ε) e -
675 periodicLongitudinalGaugeMap5 (gaugeCoeffProjector ε) e
676
677/-- The coefficient solve can be stated with no separate TT projector: the TT
678part is the residual after subtracting the conformal and longitudinal projections. -/
679structure PeriodicTTLongitudinalCoefficientSolutionData5 where
680 conformalCoeffProjector :
681 PeriodicEdgePerturbation5 → Fin PeriodicTorus5.K.nV → ℝ
682 gaugeCoeffProjector :
683 PeriodicEdgePerturbation5 → PeriodicLongitudinalGaugeIdx5 → ℝ
684 residual_orthogonal_conformal_gen :
685 ∀ ε v,
686 periodicEdgeInnerProduct5
687 (periodicLongitudinalCoefficientResidual5
688 conformalCoeffProjector gaugeCoeffProjector ε)
689 (periodicConformalGenerator5 v) = 0
690 residual_orthogonal_gauge_gen :
691 ∀ ε i,
692 periodicEdgeInnerProduct5
693 (periodicLongitudinalCoefficientResidual5
694 conformalCoeffProjector gaugeCoeffProjector ε)
695 (periodicLongitudinalGaugeGenerator5 i) = 0
696
697/-- Combined index for the fixed conformal vertex-delta generators and fixed
698longitudinal vertex-vector generators. -/
699abbrev PeriodicTTNormalEquationIdx5 :=
700 Sum (Fin PeriodicTorus5.K.nV) PeriodicLongitudinalGaugeIdx5
701
702/-- Translate a combined normal-equation generator index by a typed row base.
703Conformal indices use the encoded vertex equivalence; gauge indices translate
704the vertex and preserve the vector component. -/
705noncomputable def periodicTranslateTTNormalEquationIdx5
706 (base : PeriodicVertex5) :
707 PeriodicTTNormalEquationIdx5 → PeriodicTTNormalEquationIdx5
708 | Sum.inl v => Sum.inl (periodicTranslateEncodedVertexIdx5 base v)
709 | Sum.inr i => Sum.inr (periodicTranslateLongitudinalGaugeIdx5 base i)
710
711/-- Combined generator family for the concrete finite TT normal equations. -/
712def periodicTTNormalEquationGenerator5
713 (idx : PeriodicTTNormalEquationIdx5) : PeriodicEdgePerturbation5 :=
714 match idx with
715 | Sum.inl v => periodicConformalGenerator5 v
716 | Sum.inr i => periodicLongitudinalGaugeGenerator5 i
717
718/-- Conformal coefficients extracted from a combined coefficient vector. -/
719def periodicTTNormalEquationConformalCoeff5
720 (coeff : PeriodicTTNormalEquationIdx5 → ℝ) :
721 Fin PeriodicTorus5.K.nV → ℝ :=
722 fun v => coeff (Sum.inl v)
723
724/-- Longitudinal coefficients extracted from a combined coefficient vector. -/
725def periodicTTNormalEquationGaugeCoeff5
726 (coeff : PeriodicTTNormalEquationIdx5 → ℝ) :
727 PeriodicLongitudinalGaugeIdx5 → ℝ :=
728 fun i => coeff (Sum.inr i)
729
730/-- Combined generator map for the concrete finite TT normal equations. -/
731def periodicTTNormalEquationGeneratorMap5 :
732 (PeriodicTTNormalEquationIdx5 → ℝ) → PeriodicEdgePerturbation5 :=
733 periodicGaugeGeneratorMap5 periodicTTNormalEquationGenerator5
734
735/-- External-order displacement component used by the numerical TT
736normal-equation generator matrix. -/
737def periodicExternalDispCoordNat5 (disp : Fin 7) (component : Nat) : ℝ :=
738 let bits := dispBits disp
739 match component with
740 | 0 => if bits.1 then 1 else 0
741 | 1 => if bits.2.1 then 1 else 0
742 | 2 => if bits.2.2 then 1 else 0
743 | _ => 0
744
745/-- External-order head vertex index for a typed edge. -/
746def periodicExternalEdgeHeadIndex5 (e : PeriodicEdge5) : Nat :=
747 periodicExternalVertexIndex5 e.endpoints.2
748
749/-- Entry of the external TT normal-equation generator matrix used by the
750Python payloads. Rows are external edge indices; columns `0..124` are
751conformal vertex deltas and columns `125..499` are longitudinal
752vertex-component generators. -/
753def periodicExternalTTNormalEquationGeneratorMatrixEntry5
754 (edgeIdx : Fin PeriodicTorus5.K.nE) (col : Nat) : ℝ :=
755 let e := periodicExternalEdgeOfEncodedIdx5 edgeIdx
756 let baseIdx := periodicExternalVertexIndex5 e.endpoints.1
757 let headIdx := periodicExternalEdgeHeadIndex5 e
758 if col < 125 then
759 ((if col = baseIdx then 1 else 0) + (if col = headIdx then 1 else 0)) / 2
760 else
761 let gaugeCol := col - 125
762 let vertexIdx := gaugeCol / 3
763 let component := gaugeCol % 3
764 (if vertexIdx = headIdx then periodicExternalDispCoordNat5 e.disp component else 0) -
765 (if vertexIdx = baseIdx then periodicExternalDispCoordNat5 e.disp component else 0)
766
767/-- External generator-matrix dot product for one selected row. This is the
768Lean-side counterpart of the Python matrix dot used by generated certificate
769skeletons. -/
770def periodicExternalTTNormalEquationGeneratorMatrixDot5
771 (coeff : Nat → ℝ) (edgeIdx : Fin PeriodicTorus5.K.nE) : ℝ :=
772 ∑ col : Fin 500,
773 coeff col.1 * periodicExternalTTNormalEquationGeneratorMatrixEntry5 edgeIdx col.1
774
775/-- Sparse external generator-matrix dot product for one selected row. This is
776definitionally small: two conformal endpoint terms plus the three possible
777longitudinal component differences. -/
778def periodicExternalTTNormalEquationGeneratorSparseDot5
779 (coeff : Nat → ℝ) (edgeIdx : Fin PeriodicTorus5.K.nE) : ℝ :=
780 let e := periodicExternalEdgeOfEncodedIdx5 edgeIdx
781 let baseIdx := periodicExternalVertexIndex5 e.endpoints.1
782 let headIdx := periodicExternalEdgeHeadIndex5 e
783 (coeff baseIdx + coeff headIdx) / 2 +
784 ((coeff (125 + 3 * headIdx + 0) -
785 coeff (125 + 3 * baseIdx + 0)) *
786 periodicExternalDispCoordNat5 e.disp 0) +
787 ((coeff (125 + 3 * headIdx + 1) -
788 coeff (125 + 3 * baseIdx + 1)) *
789 periodicExternalDispCoordNat5 e.disp 1) +
790 ((coeff (125 + 3 * headIdx + 2) -
791 coeff (125 + 3 * baseIdx + 2)) *
792 periodicExternalDispCoordNat5 e.disp 2)
793
794/-- The combined normal-equation generator map splits into the already-fixed
795conformal and longitudinal generator maps. -/
796theorem periodicTTNormalEquationGeneratorMap5_eq_split
797 (coeff : PeriodicTTNormalEquationIdx5 → ℝ) (e : PeriodicEdge5) :
798 periodicTTNormalEquationGeneratorMap5 coeff e =
799 periodicConformalGeneratorMap5
800 (periodicTTNormalEquationConformalCoeff5 coeff) e +
801 periodicLongitudinalGaugeMap5
802 (periodicTTNormalEquationGaugeCoeff5 coeff) e := by
803 classical
804 unfold periodicTTNormalEquationGeneratorMap5 periodicConformalGeneratorMap5
805 periodicLongitudinalGaugeMap5 periodicGaugeGeneratorMap5
806 periodicTTNormalEquationConformalCoeff5 periodicTTNormalEquationGaugeCoeff5
807 periodicTTNormalEquationGenerator5
808 rw [Fintype.sum_sum_type]
809
810/-- Right-hand side of the concrete TT normal equations: pair the input edge
811perturbation with each combined generator. -/
812def periodicTTNormalEquationLoad5
813 (ε : PeriodicEdgePerturbation5) (idx : PeriodicTTNormalEquationIdx5) : ℝ :=
814 periodicEdgeInnerProduct5 ε (periodicTTNormalEquationGenerator5 idx)
815
816/-- Gram operator for the fixed combined conformal plus longitudinal generator
817family. -/
818def periodicTTNormalEquationGramApply5
819 (coeff : PeriodicTTNormalEquationIdx5 → ℝ)
820 (idx : PeriodicTTNormalEquationIdx5) : ℝ :=
821 ∑ j : PeriodicTTNormalEquationIdx5,
822 coeff j *
823 periodicEdgeInnerProduct5
824 (periodicTTNormalEquationGenerator5 idx)
825 (periodicTTNormalEquationGenerator5 j)
826
827/-- The Gram operator is exactly the inner product against the combined
828generator map. -/
829theorem periodicTTNormalEquationGramApply5_eq_inner_generatorMap
830 (coeff : PeriodicTTNormalEquationIdx5 → ℝ)
831 (idx : PeriodicTTNormalEquationIdx5) :
832 periodicTTNormalEquationGramApply5 coeff idx =
833 periodicEdgeInnerProduct5
834 (periodicTTNormalEquationGenerator5 idx)
835 (periodicTTNormalEquationGeneratorMap5 coeff) := by
836 unfold periodicTTNormalEquationGramApply5 periodicTTNormalEquationGeneratorMap5
837 periodicGaugeGeneratorMap5
838 rw [periodicEdgeInnerProduct5_linear_combo_right]
839
840/-- Residual for a combined finite normal-equation coefficient projector. -/
841def periodicTTNormalEquationResidual5
842 (coeffProjector :
843 PeriodicEdgePerturbation5 → PeriodicTTNormalEquationIdx5 → ℝ)
844 (ε : PeriodicEdgePerturbation5) : PeriodicEdgePerturbation5 :=
845 periodicLongitudinalCoefficientResidual5
846 (fun ε => periodicTTNormalEquationConformalCoeff5 (coeffProjector ε))
847 (fun ε => periodicTTNormalEquationGaugeCoeff5 (coeffProjector ε))
848 ε
849
850/-- The combined normal-equation residual is the input minus the combined
851generator-map reconstruction. -/
852theorem periodicTTNormalEquationResidual5_eq_sub_generatorMap
853 (coeffProjector :
854 PeriodicEdgePerturbation5 → PeriodicTTNormalEquationIdx5 → ℝ)
855 (ε : PeriodicEdgePerturbation5) (e : PeriodicEdge5) :
856 periodicTTNormalEquationResidual5 coeffProjector ε e =
857 ε e - periodicTTNormalEquationGeneratorMap5 (coeffProjector ε) e := by
858 unfold periodicTTNormalEquationResidual5 periodicLongitudinalCoefficientResidual5
859 rw [periodicTTNormalEquationGeneratorMap5_eq_split]
860 ring
861
862/-- Pairing the combined residual with a generator is exactly load minus Gram. -/
863theorem periodicTTNormalEquationResidual_inner_eq_load_sub_gram
864 (coeffProjector :
865 PeriodicEdgePerturbation5 → PeriodicTTNormalEquationIdx5 → ℝ)
866 (ε : PeriodicEdgePerturbation5) (idx : PeriodicTTNormalEquationIdx5) :
867 periodicEdgeInnerProduct5
868 (periodicTTNormalEquationResidual5 coeffProjector ε)
869 (periodicTTNormalEquationGenerator5 idx) =
870 periodicTTNormalEquationLoad5 ε idx -
871 periodicTTNormalEquationGramApply5 (coeffProjector ε) idx := by
872 classical
873 calc
874 periodicEdgeInnerProduct5
875 (periodicTTNormalEquationResidual5 coeffProjector ε)
876 (periodicTTNormalEquationGenerator5 idx)
877 =
878 periodicEdgeInnerProduct5
879 (fun e =>
880 ε e - periodicTTNormalEquationGeneratorMap5 (coeffProjector ε) e)
881 (periodicTTNormalEquationGenerator5 idx) := by
882 unfold periodicEdgeInnerProduct5
883 refine Finset.sum_congr rfl ?_
884 intro e _
885 rw [periodicTTNormalEquationResidual5_eq_sub_generatorMap]
886 _ =
887 periodicTTNormalEquationLoad5 ε idx -
888 periodicEdgeInnerProduct5
889 (periodicTTNormalEquationGeneratorMap5 (coeffProjector ε))
890 (periodicTTNormalEquationGenerator5 idx) := by
891 unfold periodicEdgeInnerProduct5 periodicTTNormalEquationLoad5
892 calc
893 (∑ e : PeriodicEdge5,
894 (fun e =>
895 ε e - periodicTTNormalEquationGeneratorMap5 (coeffProjector ε) e) e *
896 periodicTTNormalEquationGenerator5 idx e)
897 =
898 ∑ e : PeriodicEdge5,
899 (ε e * periodicTTNormalEquationGenerator5 idx e -
900 periodicTTNormalEquationGeneratorMap5 (coeffProjector ε) e *
901 periodicTTNormalEquationGenerator5 idx e) := by
902 refine Finset.sum_congr rfl ?_
903 intro e _
904 ring
905 _ =
906 (∑ e : PeriodicEdge5,
907 ε e * periodicTTNormalEquationGenerator5 idx e) -
908 ∑ e : PeriodicEdge5,
909 periodicTTNormalEquationGeneratorMap5 (coeffProjector ε) e *
910 periodicTTNormalEquationGenerator5 idx e := by
911 rw [Finset.sum_sub_distrib]
912 _ =
913 periodicTTNormalEquationLoad5 ε idx -
914 periodicEdgeInnerProduct5
915 (periodicTTNormalEquationGenerator5 idx)
916 (periodicTTNormalEquationGeneratorMap5 (coeffProjector ε)) := by
917 rw [periodicEdgeInnerProduct5_symm]
918 _ =
919 periodicTTNormalEquationLoad5 ε idx -
920 periodicTTNormalEquationGramApply5 (coeffProjector ε) idx := by
921 rw [← periodicTTNormalEquationGramApply5_eq_inner_generatorMap]
922
923/-- Single-system normal-equation data for the concrete finite TT split. This is
924the finite linear-algebra problem left by the decomposition track. -/
925structure PeriodicTTNormalEquationSolutionData5 where
926 coeffProjector :
927 PeriodicEdgePerturbation5 → PeriodicTTNormalEquationIdx5 → ℝ
928 normal_equations :
929 ∀ ε idx,
930 periodicEdgeInnerProduct5
931 (periodicTTNormalEquationResidual5 coeffProjector ε)
932 (periodicTTNormalEquationGenerator5 idx) = 0
933
934/-- Explicit Gram-system solution data for the concrete finite TT split. -/
935structure PeriodicTTGramSystemSolutionData5 where
936 coeffProjector :
937 PeriodicEdgePerturbation5 → PeriodicTTNormalEquationIdx5 → ℝ
938 gram_system :
939 ∀ ε idx,
940 periodicTTNormalEquationGramApply5 (coeffProjector ε) idx =
941 periodicTTNormalEquationLoad5 ε idx
942
943/-- Load-solver data for the finite TT Gram operator. This isolates the
944remaining finite linear-algebra work: solve the Gram system for every load
945vector arising from an edge perturbation. -/
946structure PeriodicTTGramLoadSolverData5 where
947 loadSolver :
948 (PeriodicTTNormalEquationIdx5 → ℝ) → PeriodicTTNormalEquationIdx5 → ℝ
949 solves_loads :
950 ∀ ε idx,
951 periodicTTNormalEquationGramApply5
952 (loadSolver (periodicTTNormalEquationLoad5 ε)) idx =
953 periodicTTNormalEquationLoad5 ε idx
954
955/-- Image/range data for the finite TT Gram operator. This is weaker and more
956geometric than choosing a solver: every load generated by an edge perturbation
957must lie in the image of the fixed Gram operator. -/
958structure PeriodicTTGramLoadImageData5 where
959 load_mem_image :
960 ∀ ε,
961 ∃ coeff : PeriodicTTNormalEquationIdx5 → ℝ,
962 ∀ idx,
963 periodicTTNormalEquationGramApply5 coeff idx =
964 periodicTTNormalEquationLoad5 ε idx
965
966/-- Coefficient-space inner product on the finite normal-equation index set. -/
967def periodicTTNormalEquationCoeffInnerProduct5
968 (a b : PeriodicTTNormalEquationIdx5 → ℝ) : ℝ :=
969 ∑ idx : PeriodicTTNormalEquationIdx5, a idx * b idx
970
971/-- Coefficient-vector space for the combined conformal plus longitudinal normal
972equations. -/
973abbrev PeriodicTTCoeffSpace5 :=
974 PeriodicTTNormalEquationIdx5 → ℝ
975
976/-- `WithLp 2` Hilbert wrapper for the finite coefficient-vector space. The raw
977coefficient type intentionally stays a function space elsewhere in the file;
978this wrapper imports Mathlib's inner-product range theorem without changing the
979public TT data surfaces. -/
980abbrev PeriodicTTCoeffHilbertSpace5 :=
981 WithLp 2 PeriodicTTCoeffSpace5
982
983/-- Linear equivalence between the Hilbert wrapper and the raw coefficient
984function space. -/
985noncomputable abbrev periodicTTCoeffHilbertEquiv5 :
986 PeriodicTTCoeffHilbertSpace5 ≃ₗ[ℝ] PeriodicTTCoeffSpace5 :=
987 WithLp.linearEquiv 2 ℝ PeriodicTTCoeffSpace5
988
989/-- Gram operator as a coefficient vector. -/
990def periodicTTNormalEquationGramVector5
991 (coeff : PeriodicTTNormalEquationIdx5 → ℝ) :
992 PeriodicTTNormalEquationIdx5 → ℝ :=
993 fun idx => periodicTTNormalEquationGramApply5 coeff idx
994
995/-- The TT Gram operator as a linear map on raw coefficient functions. -/
996noncomputable def periodicTTGramLinearMap5 :
997 PeriodicTTCoeffSpace5 →ₗ[ℝ] PeriodicTTCoeffSpace5 where
998 toFun := periodicTTNormalEquationGramVector5
999 map_add' := by
1000 intro a b
1001 funext idx
1002 unfold periodicTTNormalEquationGramVector5 periodicTTNormalEquationGramApply5
1003 simp [Pi.add_apply, add_mul, Finset.sum_add_distrib]
1004 map_smul' := by
1005 intro c a
1006 funext idx
1007 unfold periodicTTNormalEquationGramVector5 periodicTTNormalEquationGramApply5
1008 simp only [Pi.smul_apply, smul_eq_mul, RingHom.id_apply]
1009 rw [Finset.mul_sum]
1010 refine Finset.sum_congr rfl ?_
1011 intro j _
1012 ring
1013
1014/-- The TT Gram operator transported to Mathlib's finite Hilbert wrapper. -/
1015noncomputable def periodicTTGramHilbertLinearMap5 :
1016 PeriodicTTCoeffHilbertSpace5 →ₗ[ℝ] PeriodicTTCoeffHilbertSpace5 :=
1017 periodicTTCoeffHilbertEquiv5.symm.toLinearMap.comp
1018 (periodicTTGramLinearMap5.comp periodicTTCoeffHilbertEquiv5.toLinearMap)
1019
1020/-- The Hilbert-wrapper inner product is the coefficient-space dot product. -/
1021theorem periodicTTCoeffHilbert_inner_eq_coeffInnerProduct5
1022 (a b : PeriodicTTCoeffSpace5) :
1023 inner ℝ
1024 (periodicTTCoeffHilbertEquiv5.symm a)
1025 (periodicTTCoeffHilbertEquiv5.symm b) =
1026 periodicTTNormalEquationCoeffInnerProduct5 a b := by
1027 simp [periodicTTNormalEquationCoeffInnerProduct5, PiLp.inner_apply, mul_comm]
1028
1029/-- Symmetry of the coefficient-space dot product. -/
1030theorem periodicTTNormalEquationCoeffInnerProduct5_symm
1031 (a b : PeriodicTTCoeffSpace5) :
1032 periodicTTNormalEquationCoeffInnerProduct5 a b =
1033 periodicTTNormalEquationCoeffInnerProduct5 b a := by
1034 unfold periodicTTNormalEquationCoeffInnerProduct5
1035 refine Finset.sum_congr rfl ?_
1036 intro idx _
1037 ring
1038
1039/-- Symmetric Gram entry identity for the combined generator family. -/
1040theorem periodicTTNormalEquationGramEntry_symm5
1041 (i j : PeriodicTTNormalEquationIdx5) :
1042 periodicEdgeInnerProduct5
1043 (periodicTTNormalEquationGenerator5 i)
1044 (periodicTTNormalEquationGenerator5 j) =
1045 periodicEdgeInnerProduct5
1046 (periodicTTNormalEquationGenerator5 j)
1047 (periodicTTNormalEquationGenerator5 i) :=
1048 periodicEdgeInnerProduct5_symm _ _
1049
1050/-- The finite TT Gram operator is self-adjoint for the coefficient inner
1051product. -/
1052theorem periodicTTNormalEquationGram_selfAdjoint5
1053 (a b : PeriodicTTNormalEquationIdx5 → ℝ) :
1054 periodicTTNormalEquationCoeffInnerProduct5
1055 (periodicTTNormalEquationGramVector5 a) b =
1056 periodicTTNormalEquationCoeffInnerProduct5
1057 a (periodicTTNormalEquationGramVector5 b) := by
1058 classical
1059 unfold periodicTTNormalEquationCoeffInnerProduct5
1060 periodicTTNormalEquationGramVector5 periodicTTNormalEquationGramApply5
1061 calc
1062 (∑ i : PeriodicTTNormalEquationIdx5,
1063 (∑ j : PeriodicTTNormalEquationIdx5,
1064 a j *
1065 periodicEdgeInnerProduct5
1066 (periodicTTNormalEquationGenerator5 i)
1067 (periodicTTNormalEquationGenerator5 j)) * b i)
1068 =
1069 ∑ i : PeriodicTTNormalEquationIdx5,
1070 ∑ j : PeriodicTTNormalEquationIdx5,
1071 a j * b i *
1072 periodicEdgeInnerProduct5
1073 (periodicTTNormalEquationGenerator5 i)
1074 (periodicTTNormalEquationGenerator5 j) := by
1075 refine Finset.sum_congr rfl ?_
1076 intro i _
1077 rw [Finset.sum_mul]
1078 refine Finset.sum_congr rfl ?_
1079 intro j _
1080 ring
1081 _ =
1082 ∑ j : PeriodicTTNormalEquationIdx5,
1083 ∑ i : PeriodicTTNormalEquationIdx5,
1084 a j * b i *
1085 periodicEdgeInnerProduct5
1086 (periodicTTNormalEquationGenerator5 i)
1087 (periodicTTNormalEquationGenerator5 j) := by
1088 rw [Finset.sum_comm]
1089 _ =
1090 ∑ j : PeriodicTTNormalEquationIdx5,
1091 ∑ i : PeriodicTTNormalEquationIdx5,
1092 a j * b i *
1093 periodicEdgeInnerProduct5
1094 (periodicTTNormalEquationGenerator5 j)
1095 (periodicTTNormalEquationGenerator5 i) := by
1096 refine Finset.sum_congr rfl ?_
1097 intro j _
1098 refine Finset.sum_congr rfl ?_
1099 intro i _
1100 rw [periodicTTNormalEquationGramEntry_symm5 i j]
1101 _ =
1102 ∑ j : PeriodicTTNormalEquationIdx5,
1103 a j *
1104 ∑ i : PeriodicTTNormalEquationIdx5,
1105 b i *
1106 periodicEdgeInnerProduct5
1107 (periodicTTNormalEquationGenerator5 j)
1108 (periodicTTNormalEquationGenerator5 i) := by
1109 refine Finset.sum_congr rfl ?_
1110 intro j _
1111 rw [Finset.mul_sum]
1112 refine Finset.sum_congr rfl ?_
1113 intro i _
1114 ring
1115
1116set_option maxRecDepth 20000
1117
1118/-- The transported finite TT Gram operator is symmetric in Mathlib's Hilbert
1119wrapper. -/
1120theorem periodicTTGramHilbertLinearMap_isSymmetric5 :
1121 LinearMap.IsSymmetric periodicTTGramHilbertLinearMap5 := by
1122 intro x y
1123 unfold periodicTTGramHilbertLinearMap5
1124 simp only [LinearMap.comp_apply, LinearEquiv.coe_coe]
1125 rw [show
1126 inner ℝ
1127 (periodicTTCoeffHilbertEquiv5.symm
1128 (periodicTTGramLinearMap5 (periodicTTCoeffHilbertEquiv5 x))) y =
1129 periodicTTNormalEquationCoeffInnerProduct5
1130 (periodicTTGramLinearMap5 (periodicTTCoeffHilbertEquiv5 x))
1131 (periodicTTCoeffHilbertEquiv5 y) by
1132 simpa using
1133 periodicTTCoeffHilbert_inner_eq_coeffInnerProduct5
1134 (periodicTTGramLinearMap5 (periodicTTCoeffHilbertEquiv5 x))
1135 (periodicTTCoeffHilbertEquiv5 y)]
1136 rw [show
1137 inner ℝ x
1138 (periodicTTCoeffHilbertEquiv5.symm
1139 (periodicTTGramLinearMap5 (periodicTTCoeffHilbertEquiv5 y))) =
1140 periodicTTNormalEquationCoeffInnerProduct5
1141 (periodicTTCoeffHilbertEquiv5 x)
1142 (periodicTTGramLinearMap5 (periodicTTCoeffHilbertEquiv5 y)) by
1143 simpa using
1144 periodicTTCoeffHilbert_inner_eq_coeffInnerProduct5
1145 (periodicTTCoeffHilbertEquiv5 x)
1146 (periodicTTGramLinearMap5 (periodicTTCoeffHilbertEquiv5 y))]
1147 exact
1148 periodicTTNormalEquationGram_selfAdjoint5
1149 (periodicTTCoeffHilbertEquiv5 x)
1150 (periodicTTCoeffHilbertEquiv5 y)
1151
1152/-- Kernel of the finite TT Gram operator. -/
1153def periodicTTGramKernel5
1154 (coeff : PeriodicTTNormalEquationIdx5 → ℝ) : Prop :=
1155 ∀ idx, periodicTTNormalEquationGramApply5 coeff idx = 0
1156
1157/-- A Gram-kernel coefficient vector generates the zero edge perturbation. -/
1158theorem periodicTTGramKernel_generatorMap_zero5
1159 (coeff : PeriodicTTNormalEquationIdx5 → ℝ)
1160 (hkernel : periodicTTGramKernel5 coeff) :
1161 periodicTTNormalEquationGeneratorMap5 coeff = fun _ => 0 := by
1162 apply periodicEdgePerturbation5_eq_zero_of_inner_self_eq_zero
1163 calc
1164 periodicEdgeInnerProduct5
1165 (periodicTTNormalEquationGeneratorMap5 coeff)
1166 (periodicTTNormalEquationGeneratorMap5 coeff)
1167 =
1168 periodicEdgeInnerProduct5
1169 (periodicTTNormalEquationGeneratorMap5 coeff)
1170 (fun e =>
1171 ∑ idx : PeriodicTTNormalEquationIdx5,
1172 coeff idx * periodicTTNormalEquationGenerator5 idx e) := by
1173 rfl
1174 _ =
1175 ∑ idx : PeriodicTTNormalEquationIdx5,
1176 coeff idx *
1177 periodicEdgeInnerProduct5
1178 (periodicTTNormalEquationGeneratorMap5 coeff)
1179 (periodicTTNormalEquationGenerator5 idx) := by
1180 rw [periodicEdgeInnerProduct5_linear_combo_right]
1181 _ =
1182 ∑ idx : PeriodicTTNormalEquationIdx5,
1183 coeff idx *
1184 periodicEdgeInnerProduct5
1185 (periodicTTNormalEquationGenerator5 idx)
1186 (periodicTTNormalEquationGeneratorMap5 coeff) := by
1187 refine Finset.sum_congr rfl ?_
1188 intro idx _
1189 rw [periodicEdgeInnerProduct5_symm]
1190 _ =
1191 ∑ idx : PeriodicTTNormalEquationIdx5,
1192 coeff idx * periodicTTNormalEquationGramApply5 coeff idx := by
1193 refine Finset.sum_congr rfl ?_
1194 intro idx _
1195 rw [periodicTTNormalEquationGramApply5_eq_inner_generatorMap]
1196 _ = ∑ idx : PeriodicTTNormalEquationIdx5, coeff idx * 0 := by
1197 refine Finset.sum_congr rfl ?_
1198 intro idx _
1199 rw [hkernel idx, mul_zero]
1200 _ = 0 := by
1201 simp
1202
1203/-- The load induced by an edge perturbation annihilates every Gram-kernel
1204coefficient vector. -/
1205def periodicTTLoadAnnihilatesGramKernel5
1206 (ε : PeriodicEdgePerturbation5) : Prop :=
1207 ∀ kernelCoeff,
1208 periodicTTGramKernel5 kernelCoeff →
1209 periodicTTNormalEquationCoeffInnerProduct5
1210 (periodicTTNormalEquationLoad5 ε) kernelCoeff = 0
1211
1212/-- Pairing the load vector with coefficients is the edge inner product against
1213the combined generated mode. -/
1214theorem periodicTTLoadCoeffInnerProduct_eq_inner_generatorMap5
1215 (ε : PeriodicEdgePerturbation5)
1216 (coeff : PeriodicTTNormalEquationIdx5 → ℝ) :
1217 periodicTTNormalEquationCoeffInnerProduct5
1218 (periodicTTNormalEquationLoad5 ε) coeff =
1219 periodicEdgeInnerProduct5 ε (periodicTTNormalEquationGeneratorMap5 coeff) := by
1220 classical
1221 unfold periodicTTNormalEquationCoeffInnerProduct5 periodicTTNormalEquationLoad5
1222 periodicTTNormalEquationGeneratorMap5 periodicGaugeGeneratorMap5
1223 rw [periodicEdgeInnerProduct5_linear_combo_right]
1224 refine Finset.sum_congr rfl ?_
1225 intro idx _
1226 ring
1227
1228/-- A longitudinal TT perturbation is orthogonal to every combined conformal
1229plus longitudinal normal-equation generator map. -/
1230theorem periodicLongitudinalTTSubspace5_inner_generatorMap_eq_zero
1231 (ε : PeriodicEdgePerturbation5)
1232 (hε :
1233 PeriodicTTOrthogonal5
1234 (PeriodicLongitudinalGaugeIdx5 → ℝ)
1235 periodicLongitudinalGaugeMap5 ε)
1236 (coeff : PeriodicTTNormalEquationIdx5 → ℝ) :
1237 periodicEdgeInnerProduct5 ε
1238 (periodicTTNormalEquationGeneratorMap5 coeff) = 0 := by
1239 let cCoeff := periodicTTNormalEquationConformalCoeff5 coeff
1240 let gCoeff := periodicTTNormalEquationGaugeCoeff5 coeff
1241 have hmap :
1242 periodicTTNormalEquationGeneratorMap5 coeff =
1243 fun e =>
1244 periodicConformalGeneratorMap5 cCoeff e +
1245 periodicLongitudinalGaugeMap5 gCoeff e := by
1246 funext e
1247 exact periodicTTNormalEquationGeneratorMap5_eq_split coeff e
1248 rw [hmap]
1249 rw [periodicEdgeInnerProduct5_add_right]
1250 have hc :
1251 periodicEdgeInnerProduct5 ε
1252 (periodicConformalGeneratorMap5 cCoeff) = 0 :=
1253 hε.1 (periodicConformalGeneratorMap5 cCoeff)
1254 (periodicConformalGeneratorMap5_mem cCoeff)
1255 have hg :
1256 periodicEdgeInnerProduct5 ε
1257 (periodicLongitudinalGaugeMap5 gCoeff) = 0 :=
1258 hε.2 (periodicLongitudinalGaugeMap5 gCoeff) ⟨gCoeff, rfl⟩
1259 rw [hc, hg]
1260 ring
1261
1262/-- Kernel-criterion data for the finite TT Gram operator. This is the finite
1263Fredholm-alternative surface: to prove the loads are in the Gram image, it is
1264enough to prove they annihilate the Gram kernel, together with the finite
1265range criterion for this fixed Gram operator. -/
1266structure PeriodicTTGramKernelCriterionData5 where
1267 range_of_kernel_orthogonal :
1268 ∀ load : PeriodicTTNormalEquationIdx5 → ℝ,
1269 (∀ kernelCoeff,
1270 periodicTTGramKernel5 kernelCoeff →
1271 periodicTTNormalEquationCoeffInnerProduct5 load kernelCoeff = 0) →
1272 ∃ coeff : PeriodicTTNormalEquationIdx5 → ℝ,
1273 ∀ idx, periodicTTNormalEquationGramApply5 coeff idx = load idx
1274 loads_annihilate_kernel :
1275 ∀ ε, periodicTTLoadAnnihilatesGramKernel5 ε
1276
1277/-- Kernel-zero-mode data for the TT Gram operator. This leaves only the finite
1278range criterion plus the statement that every Gram-kernel coefficient vector
1279generates the zero edge perturbation. -/
1280structure PeriodicTTGramKernelGeneratorMapZeroData5 where
1281 range_of_kernel_orthogonal :
1282 ∀ load : PeriodicTTNormalEquationIdx5 → ℝ,
1283 (∀ kernelCoeff,
1284 periodicTTGramKernel5 kernelCoeff →
1285 periodicTTNormalEquationCoeffInnerProduct5 load kernelCoeff = 0) →
1286 ∃ coeff : PeriodicTTNormalEquationIdx5 → ℝ,
1287 ∀ idx, periodicTTNormalEquationGramApply5 coeff idx = load idx
1288 kernel_generatorMap_zero :
1289 ∀ coeff,
1290 periodicTTGramKernel5 coeff →
1291 periodicTTNormalEquationGeneratorMap5 coeff = fun _ => 0
1292
1293/-- Range-criterion data for the finite TT Gram operator. Since Gram-kernel
1294coefficient vectors now theorematically generate the zero edge perturbation, the
1295only remaining finite-algebra input is this range/Fredholm criterion for the
1296fixed Gram operator. -/
1297structure PeriodicTTGramRangeCriterionData5 where
1298 range_of_kernel_orthogonal :
1299 ∀ load : PeriodicTTNormalEquationIdx5 → ℝ,
1300 (∀ kernelCoeff,
1301 periodicTTGramKernel5 kernelCoeff →
1302 periodicTTNormalEquationCoeffInnerProduct5 load kernelCoeff = 0) →
1303 ∃ coeff : PeriodicTTNormalEquationIdx5 → ℝ,
1304 ∀ idx, periodicTTNormalEquationGramApply5 coeff idx = load idx
1305
1306/-- The fixed finite TT Gram range/Fredholm criterion is theorem-level. This is
1307the finite-dimensional fact that a load orthogonal to the Gram kernel lies in
1308the range of the self-adjoint Gram operator. -/
1309theorem periodicTTGramRangeCriterionData5_proved :
1310 PeriodicTTGramRangeCriterionData5 := by
1311 refine ⟨?_⟩
1312 intro load hload
1313 let loadH : PeriodicTTCoeffHilbertSpace5 :=
1314 periodicTTCoeffHilbertEquiv5.symm load
1315 have hkerOrth :
1316 loadH ∈ (LinearMap.ker periodicTTGramHilbertLinearMap5)ᗮ := by
1317 rw [Submodule.mem_orthogonal]
1318 intro u hu
1319 rw [LinearMap.mem_ker] at hu
1320 have hraw_zero :
1321 periodicTTGramLinearMap5 (periodicTTCoeffHilbertEquiv5 u) = 0 := by
1322 have hcongr := congrArg periodicTTCoeffHilbertEquiv5 hu
1323 simpa [periodicTTGramHilbertLinearMap5] using hcongr
1324 have hkernel :
1325 periodicTTGramKernel5 (periodicTTCoeffHilbertEquiv5 u) := by
1326 intro idx
1327 have hidx := congrFun hraw_zero idx
1328 simpa [periodicTTGramLinearMap5, periodicTTNormalEquationGramVector5] using hidx
1329 have hcustom :
1330 periodicTTNormalEquationCoeffInnerProduct5
1331 load (periodicTTCoeffHilbertEquiv5 u) = 0 :=
1332 hload (periodicTTCoeffHilbertEquiv5 u) hkernel
1333 calc
1334 inner ℝ u loadH =
1335 periodicTTNormalEquationCoeffInnerProduct5
1336 (periodicTTCoeffHilbertEquiv5 u) load := by
1337 simpa [loadH] using
1338 periodicTTCoeffHilbert_inner_eq_coeffInnerProduct5
1339 (periodicTTCoeffHilbertEquiv5 u) load
1340 _ =
1341 periodicTTNormalEquationCoeffInnerProduct5
1342 load (periodicTTCoeffHilbertEquiv5 u) :=
1343 periodicTTNormalEquationCoeffInnerProduct5_symm
1344 (periodicTTCoeffHilbertEquiv5 u) load
1345 _ = 0 := hcustom
1346 have horthRange :
1347 (LinearMap.range periodicTTGramHilbertLinearMap5)ᗮ =
1348 LinearMap.ker periodicTTGramHilbertLinearMap5 :=
1349 LinearMap.IsSymmetric.orthogonal_range periodicTTGramHilbertLinearMap_isSymmetric5
1350 have hmemDouble :
1351 loadH ∈ (LinearMap.range periodicTTGramHilbertLinearMap5)ᗮᗮ := by
1352 simpa [horthRange] using hkerOrth
1353 have hdouble :
1354 (LinearMap.range periodicTTGramHilbertLinearMap5)ᗮᗮ =
1355 LinearMap.range periodicTTGramHilbertLinearMap5 := by
1356 rw [Submodule.orthogonal_orthogonal_eq_closure]
1357 exact Submodule.topologicalClosure_eq_self
1358 (LinearMap.range periodicTTGramHilbertLinearMap5)
1359 have hmemRange :
1360 loadH ∈ LinearMap.range periodicTTGramHilbertLinearMap5 := by
1361 simpa [hdouble] using hmemDouble
1362 rcases LinearMap.mem_range.mp hmemRange with ⟨coeffH, hcoeffH⟩
1363 refine ⟨periodicTTCoeffHilbertEquiv5 coeffH, ?_⟩
1364 intro idx
1365 have hraw :
1366 periodicTTGramLinearMap5 (periodicTTCoeffHilbertEquiv5 coeffH) = load := by
1367 have hcongr := congrArg periodicTTCoeffHilbertEquiv5 hcoeffH
1368 simpa [periodicTTGramHilbertLinearMap5, loadH] using hcongr
1369 have hidx := congrFun hraw idx
1370 simpa [periodicTTGramLinearMap5, periodicTTNormalEquationGramVector5] using hidx
1371
1372/-- Generator-map projector data is gauge-generator projector data for the gauge
1373map induced by the same generator family. -/
1374def PeriodicTTGaugeGeneratorProjectorData5.ofGeneratorMapData
1375 {GIdx : Type} [Fintype GIdx]
1376 (D : PeriodicTTGeneratorMapProjectorData5 GIdx) :
1377 PeriodicTTGaugeGeneratorProjectorData5
1378 (GIdx → ℝ) (periodicGaugeGeneratorMap5 D.gaugeGen) GIdx where
1379 conformalProjector := D.conformalProjector
1380 gaugeProjector := fun ε => periodicGaugeGeneratorMap5 D.gaugeGen (D.gaugeCoeffProjector ε)
1381 ttProjector := D.ttProjector
1382 gaugeGen := D.gaugeGen
1383 conformal_mem := D.conformal_mem
1384 gauge_mem := by
1385 intro ε
1386 exact ⟨D.gaugeCoeffProjector ε, rfl⟩
1387 gauge_span := periodicGaugeSubspace5_spanned_by_generatorMap D.gaugeGen
1388 tt_orthogonal_conformal_gen := D.tt_orthogonal_conformal_gen
1389 tt_orthogonal_gauge_gen := D.tt_orthogonal_gauge_gen
1390 reconstruct := D.reconstruct
1391
1392/-- Concrete longitudinal projector data is generator-map projector data for the
1393longitudinal vertex-vector basis. -/
1394def PeriodicTTGeneratorMapProjectorData5.ofLongitudinalData
1395 (D : PeriodicTTLongitudinalProjectorData5) :
1396 PeriodicTTGeneratorMapProjectorData5 PeriodicLongitudinalGaugeIdx5 where
1397 conformalProjector := D.conformalProjector
1398 gaugeCoeffProjector := D.gaugeCoeffProjector
1399 ttProjector := D.ttProjector
1400 gaugeGen := periodicLongitudinalGaugeGenerator5
1401 conformal_mem := D.conformal_mem
1402 tt_orthogonal_conformal_gen := D.tt_orthogonal_conformal_gen
1403 tt_orthogonal_gauge_gen := D.tt_orthogonal_gauge_gen
1404 reconstruct := by
1405 intro ε e
1406 exact D.reconstruct ε e
1407
1408/-- Coefficient-projector data supplies the concrete longitudinal projector data
1409by generating the conformal part from encoded vertex-delta coefficients. -/
1410def PeriodicTTLongitudinalProjectorData5.ofCoefficientData
1411 (D : PeriodicTTLongitudinalCoefficientProjectorData5) :
1412 PeriodicTTLongitudinalProjectorData5 where
1413 conformalProjector := fun ε => periodicConformalGeneratorMap5 (D.conformalCoeffProjector ε)
1414 gaugeCoeffProjector := D.gaugeCoeffProjector
1415 ttProjector := D.ttProjector
1416 conformal_mem := fun ε => periodicConformalGeneratorMap5_mem (D.conformalCoeffProjector ε)
1417 tt_orthogonal_conformal_gen := D.tt_orthogonal_conformal_gen
1418 tt_orthogonal_gauge_gen := D.tt_orthogonal_gauge_gen
1419 reconstruct := D.reconstruct
1420
1421/-- Residual-defined coefficient-solution data supplies the coefficient-projector
1422data expected by the decomposition target. -/
1423def PeriodicTTLongitudinalCoefficientProjectorData5.ofSolutionData
1424 (D : PeriodicTTLongitudinalCoefficientSolutionData5) :
1425 PeriodicTTLongitudinalCoefficientProjectorData5 where
1426 conformalCoeffProjector := D.conformalCoeffProjector
1427 gaugeCoeffProjector := D.gaugeCoeffProjector
1428 ttProjector :=
1429 periodicLongitudinalCoefficientResidual5
1430 D.conformalCoeffProjector D.gaugeCoeffProjector
1431 tt_orthogonal_conformal_gen := D.residual_orthogonal_conformal_gen
1432 tt_orthogonal_gauge_gen := D.residual_orthogonal_gauge_gen
1433 reconstruct := by
1434 intro ε e
1435 unfold periodicLongitudinalCoefficientResidual5
1436 ring
1437
1438/-- A solution of the combined normal equations supplies the residual-defined
1439coefficient solution data. -/
1440def PeriodicTTLongitudinalCoefficientSolutionData5.ofNormalEquationData
1441 (D : PeriodicTTNormalEquationSolutionData5) :
1442 PeriodicTTLongitudinalCoefficientSolutionData5 where
1443 conformalCoeffProjector :=
1444 fun ε => periodicTTNormalEquationConformalCoeff5 (D.coeffProjector ε)
1445 gaugeCoeffProjector :=
1446 fun ε => periodicTTNormalEquationGaugeCoeff5 (D.coeffProjector ε)
1447 residual_orthogonal_conformal_gen := by
1448 intro ε v
1449 simpa [periodicTTNormalEquationResidual5, periodicTTNormalEquationGenerator5]
1450 using D.normal_equations ε (Sum.inl v)
1451 residual_orthogonal_gauge_gen := by
1452 intro ε i
1453 simpa [periodicTTNormalEquationResidual5, periodicTTNormalEquationGenerator5]
1454 using D.normal_equations ε (Sum.inr i)
1455
1456/-- Solving the explicit Gram system supplies the combined normal equations. -/
1457def PeriodicTTNormalEquationSolutionData5.ofGramSystemData
1458 (D : PeriodicTTGramSystemSolutionData5) :
1459 PeriodicTTNormalEquationSolutionData5 where
1460 coeffProjector := D.coeffProjector
1461 normal_equations := by
1462 intro ε idx
1463 rw [periodicTTNormalEquationResidual_inner_eq_load_sub_gram]
1464 rw [D.gram_system ε idx]
1465 ring
1466
1467/-- A load solver supplies the explicit Gram-system solution data. -/
1468def PeriodicTTGramSystemSolutionData5.ofLoadSolverData
1469 (D : PeriodicTTGramLoadSolverData5) :
1470 PeriodicTTGramSystemSolutionData5 where
1471 coeffProjector := fun ε => D.loadSolver (periodicTTNormalEquationLoad5 ε)
1472 gram_system := D.solves_loads
1473
1474/-- Load-image data supplies a solver on the physical load subspace by choosing a
1475preimage for each load that actually occurs. -/
1476noncomputable def PeriodicTTGramLoadSolverData5.ofLoadImageData
1477 (D : PeriodicTTGramLoadImageData5) :
1478 PeriodicTTGramLoadSolverData5 where
1479 loadSolver := by
1480 classical
1481 exact fun load =>
1482 if h : ∃ ε, load = periodicTTNormalEquationLoad5 ε then
1483 Classical.choose (D.load_mem_image (Classical.choose h))
1484 else
1485 fun _ => 0
1486 solves_loads := by
1487 intro ε idx
1488 classical
1489 let h : ∃ η, periodicTTNormalEquationLoad5 ε = periodicTTNormalEquationLoad5 η :=
1490 ⟨ε, rfl⟩
1491 rw [dif_pos h]
1492 have hload :
1493 periodicTTNormalEquationLoad5 ε =
1494 periodicTTNormalEquationLoad5 (Classical.choose h) :=
1495 Classical.choose_spec h
1496 exact
1497 (Classical.choose_spec (D.load_mem_image (Classical.choose h)) idx).trans
1498 ((congrFun hload idx).symm)
1499
1500/-- The kernel criterion supplies the load-image data required by the finite TT
1501decomposition target. -/
1502def PeriodicTTGramLoadImageData5.ofKernelCriterionData
1503 (D : PeriodicTTGramKernelCriterionData5) :
1504 PeriodicTTGramLoadImageData5 where
1505 load_mem_image := by
1506 intro ε
1507 exact D.range_of_kernel_orthogonal
1508 (periodicTTNormalEquationLoad5 ε)
1509 (D.loads_annihilate_kernel ε)
1510
1511/-- Kernel-generator-zero data supplies the finite Gram-kernel criterion. -/
1512def PeriodicTTGramKernelCriterionData5.ofKernelGeneratorMapZeroData
1513 (D : PeriodicTTGramKernelGeneratorMapZeroData5) :
1514 PeriodicTTGramKernelCriterionData5 where
1515 range_of_kernel_orthogonal := D.range_of_kernel_orthogonal
1516 loads_annihilate_kernel := by
1517 intro ε kernelCoeff hkernel
1518 rw [periodicTTLoadCoeffInnerProduct_eq_inner_generatorMap5]
1519 rw [D.kernel_generatorMap_zero kernelCoeff hkernel]
1520 exact periodicEdgeInnerProduct5_zero_right ε
1521
1522/-- The finite Gram range criterion alone now supplies the Gram-kernel criterion,
1523because Gram-kernel coefficients are proved to generate zero edge perturbations. -/
1524def PeriodicTTGramKernelCriterionData5.ofRangeCriterionData
1525 (D : PeriodicTTGramRangeCriterionData5) :
1526 PeriodicTTGramKernelCriterionData5 where
1527 range_of_kernel_orthogonal := D.range_of_kernel_orthogonal
1528 loads_annihilate_kernel := by
1529 intro ε kernelCoeff hkernel
1530 rw [periodicTTLoadCoeffInnerProduct_eq_inner_generatorMap5]
1531 rw [periodicTTGramKernel_generatorMap_zero5 kernelCoeff hkernel]
1532 exact periodicEdgeInnerProduct5_zero_right ε
1533
1534/-- Gauge-generator data is full finite-generator data, using encoded vertex
1535delta generators for the conformal slice. -/
1536def PeriodicTTFiniteGeneratorProjectorData5.ofGaugeGeneratorData
1537 {GaugePotential GIdx : Type} [Fintype GIdx]
1538 {gaugeMap : GaugePotential → PeriodicEdgePerturbation5}
1539 (D : PeriodicTTGaugeGeneratorProjectorData5 GaugePotential gaugeMap GIdx) :
1540 PeriodicTTFiniteGeneratorProjectorData5
1541 GaugePotential gaugeMap (Fin PeriodicTorus5.K.nV) GIdx where
1542 conformalProjector := D.conformalProjector
1543 gaugeProjector := D.gaugeProjector
1544 ttProjector := D.ttProjector
1545 conformalGen := periodicConformalGenerator5
1546 gaugeGen := D.gaugeGen
1547 conformal_mem := D.conformal_mem
1548 gauge_mem := D.gauge_mem
1549 conformal_span := periodicConformalLogSubspace5_spanned_by_encodedVertexGenerators
1550 gauge_span := D.gauge_span
1551 tt_orthogonal_conformal_gen := D.tt_orthogonal_conformal_gen
1552 tt_orthogonal_gauge_gen := D.tt_orthogonal_gauge_gen
1553 reconstruct := D.reconstruct
1554
1555/-- Orthogonality to finite spanning generators gives full TT orthogonality. -/
1556theorem periodicTTOrthogonal5_of_generator_orthogonality
1557 {GaugePotential CIdx GIdx : Type} [Fintype CIdx] [Fintype GIdx]
1558 {gaugeMap : GaugePotential → PeriodicEdgePerturbation5}
1559 (D : PeriodicTTFiniteGeneratorProjectorData5 GaugePotential gaugeMap CIdx GIdx)
1560 (ε : PeriodicEdgePerturbation5) :
1561 PeriodicTTOrthogonal5 GaugePotential gaugeMap (D.ttProjector ε) := by
1562 constructor
1563 · intro c hc
1564 rcases D.conformal_span c hc with ⟨coeff, hcoeff⟩
1565 have hc_eq : c = fun e => ∑ i : CIdx, coeff i * D.conformalGen i e := by
1566 funext e
1567 exact hcoeff e
1568 rw [hc_eq, periodicEdgeInnerProduct5_linear_combo_right]
1569 simp [D.tt_orthogonal_conformal_gen ε]
1570 · intro g hg
1571 rcases D.gauge_span g hg with ⟨coeff, hcoeff⟩
1572 have hg_eq : g = fun e => ∑ i : GIdx, coeff i * D.gaugeGen i e := by
1573 funext e
1574 exact hcoeff e
1575 rw [hg_eq, periodicEdgeInnerProduct5_linear_combo_right]
1576 simp [D.tt_orthogonal_gauge_gen ε]
1577
1578/-- Finite-generator projector data supplies the projector data consumed by the
1579orthogonal decomposition theorem. -/
1580def PeriodicTTProjectorData5.ofFiniteGeneratorData
1581 {GaugePotential CIdx GIdx : Type} [Fintype CIdx] [Fintype GIdx]
1582 {gaugeMap : GaugePotential → PeriodicEdgePerturbation5}
1583 (D : PeriodicTTFiniteGeneratorProjectorData5 GaugePotential gaugeMap CIdx GIdx) :
1584 PeriodicTTProjectorData5 GaugePotential gaugeMap where
1585 conformalProjector := D.conformalProjector
1586 gaugeProjector := D.gaugeProjector
1587 ttProjector := D.ttProjector
1588 conformal_mem := D.conformal_mem
1589 gauge_mem := D.gauge_mem
1590 tt_mem := periodicTTOrthogonal5_of_generator_orthogonality D
1591 reconstruct := D.reconstruct
1592
1593/-- Projector data induces the raw additive splitting expected by the earlier
1594Track 1.D decomposition target. -/
1595def PeriodicTTProjectorData5.toRawSplitting
1596 {GaugePotential : Type} {gaugeMap : GaugePotential → PeriodicEdgePerturbation5}
1597 (D : PeriodicTTProjectorData5 GaugePotential gaugeMap) :
1598 RawEdgePerturbationSplitting PeriodicEdge5 where
1599 conformalPart := D.conformalProjector
1600 gaugePart := D.gaugeProjector
1601 ttPart := D.ttProjector
1602 reconstruct := D.reconstruct
1603
1604/-- Projector data closes the finite orthogonal conformal/gauge/TT decomposition
1605target. This is the intended next consumption theorem for a concrete periodic
1606Freudenthal projector construction. -/
1607theorem periodicFreudenthalTTOrthogonalDecompositionTargetAtN5_of_projectorData
1608 {GaugePotential : Type} {gaugeMap : GaugePotential → PeriodicEdgePerturbation5}
1609 (D : PeriodicTTProjectorData5 GaugePotential gaugeMap) :
1610 PeriodicFreudenthalTTOrthogonalDecompositionTargetAtN5 GaugePotential gaugeMap := by
1611 refine ⟨D.toRawSplitting, ?_, ?_, ?_⟩
1612 · exact D.conformal_mem
1613 · exact D.gauge_mem
1614 · exact D.tt_mem
1615
1616/-- Finite-generator projector data closes the finite orthogonal decomposition
1617target. The remaining tensor-lane task is now concrete: produce the generators,
1618solve the projector system, and prove reconstruction. -/
1619theorem periodicFreudenthalTTOrthogonalDecompositionTargetAtN5_of_finiteGeneratorData
1620 {GaugePotential CIdx GIdx : Type} [Fintype CIdx] [Fintype GIdx]
1621 {gaugeMap : GaugePotential → PeriodicEdgePerturbation5}
1622 (D : PeriodicTTFiniteGeneratorProjectorData5 GaugePotential gaugeMap CIdx GIdx) :
1623 PeriodicFreudenthalTTOrthogonalDecompositionTargetAtN5 GaugePotential gaugeMap :=
1624 periodicFreudenthalTTOrthogonalDecompositionTargetAtN5_of_projectorData
1625 (PeriodicTTProjectorData5.ofFiniteGeneratorData D)
1626
1627/-- Gauge-generator projector data closes the finite orthogonal decomposition
1628target, because the conformal generators are fixed and already span. -/
1629theorem periodicFreudenthalTTOrthogonalDecompositionTargetAtN5_of_gaugeGeneratorData
1630 {GaugePotential GIdx : Type} [Fintype GIdx]
1631 {gaugeMap : GaugePotential → PeriodicEdgePerturbation5}
1632 (D : PeriodicTTGaugeGeneratorProjectorData5 GaugePotential gaugeMap GIdx) :
1633 PeriodicFreudenthalTTOrthogonalDecompositionTargetAtN5 GaugePotential gaugeMap :=
1634 periodicFreudenthalTTOrthogonalDecompositionTargetAtN5_of_finiteGeneratorData
1635 (PeriodicTTFiniteGeneratorProjectorData5.ofGaugeGeneratorData D)
1636
1637/-- Generator-map projector data closes the finite orthogonal decomposition
1638target for the gauge map generated by its own finite basis. -/
1639theorem periodicFreudenthalTTOrthogonalDecompositionTargetAtN5_of_generatorMapData
1640 {GIdx : Type} [Fintype GIdx]
1641 (D : PeriodicTTGeneratorMapProjectorData5 GIdx) :
1642 PeriodicFreudenthalTTOrthogonalDecompositionTargetAtN5
1643 (GIdx → ℝ) (periodicGaugeGeneratorMap5 D.gaugeGen) :=
1644 periodicFreudenthalTTOrthogonalDecompositionTargetAtN5_of_gaugeGeneratorData
1645 (PeriodicTTGaugeGeneratorProjectorData5.ofGeneratorMapData D)
1646
1647/-- Concrete longitudinal projector data closes the finite TT decomposition
1648target for the vertex-vector longitudinal gauge map. -/
1649theorem periodicFreudenthalTTOrthogonalDecompositionTargetAtN5_of_longitudinalData
1650 (D : PeriodicTTLongitudinalProjectorData5) :
1651 PeriodicFreudenthalTTOrthogonalDecompositionTargetAtN5
1652 (PeriodicLongitudinalGaugeIdx5 → ℝ) periodicLongitudinalGaugeMap5 := by
1653 exact periodicFreudenthalTTOrthogonalDecompositionTargetAtN5_of_generatorMapData
1654 (PeriodicTTGeneratorMapProjectorData5.ofLongitudinalData D)
1655
1656/-- Pure coefficient-projector data closes the concrete longitudinal TT
1657decomposition target. -/
1658theorem periodicFreudenthalTTOrthogonalDecompositionTargetAtN5_of_longitudinalCoefficientData
1659 (D : PeriodicTTLongitudinalCoefficientProjectorData5) :
1660 PeriodicFreudenthalTTOrthogonalDecompositionTargetAtN5
1661 (PeriodicLongitudinalGaugeIdx5 → ℝ) periodicLongitudinalGaugeMap5 :=
1662 periodicFreudenthalTTOrthogonalDecompositionTargetAtN5_of_longitudinalData
1663 (PeriodicTTLongitudinalProjectorData5.ofCoefficientData D)
1664
1665/-- Residual-defined coefficient-solution data closes the concrete longitudinal
1666TT decomposition target. -/
1667theorem periodicFreudenthalTTOrthogonalDecompositionTargetAtN5_of_longitudinalCoefficientSolutionData
1668 (D : PeriodicTTLongitudinalCoefficientSolutionData5) :
1669 PeriodicFreudenthalTTOrthogonalDecompositionTargetAtN5
1670 (PeriodicLongitudinalGaugeIdx5 → ℝ) periodicLongitudinalGaugeMap5 :=
1671 periodicFreudenthalTTOrthogonalDecompositionTargetAtN5_of_longitudinalCoefficientData
1672 (PeriodicTTLongitudinalCoefficientProjectorData5.ofSolutionData D)
1673
1674/-- A solution of the combined finite normal equations closes the concrete
1675longitudinal TT decomposition target. -/
1676theorem periodicFreudenthalTTOrthogonalDecompositionTargetAtN5_of_normalEquationData
1677 (D : PeriodicTTNormalEquationSolutionData5) :
1678 PeriodicFreudenthalTTOrthogonalDecompositionTargetAtN5
1679 (PeriodicLongitudinalGaugeIdx5 → ℝ) periodicLongitudinalGaugeMap5 :=
1680 periodicFreudenthalTTOrthogonalDecompositionTargetAtN5_of_longitudinalCoefficientSolutionData
1681 (PeriodicTTLongitudinalCoefficientSolutionData5.ofNormalEquationData D)
1682
1683/-- A solution of the explicit finite Gram system closes the concrete
1684longitudinal TT decomposition target. -/
1685theorem periodicFreudenthalTTOrthogonalDecompositionTargetAtN5_of_gramSystemData
1686 (D : PeriodicTTGramSystemSolutionData5) :
1687 PeriodicFreudenthalTTOrthogonalDecompositionTargetAtN5
1688 (PeriodicLongitudinalGaugeIdx5 → ℝ) periodicLongitudinalGaugeMap5 :=
1689 periodicFreudenthalTTOrthogonalDecompositionTargetAtN5_of_normalEquationData
1690 (PeriodicTTNormalEquationSolutionData5.ofGramSystemData D)
1691
1692/-- A finite load solver for the TT Gram operator closes the concrete
1693longitudinal TT decomposition target. -/
1694theorem periodicFreudenthalTTOrthogonalDecompositionTargetAtN5_of_gramLoadSolverData
1695 (D : PeriodicTTGramLoadSolverData5) :
1696 PeriodicFreudenthalTTOrthogonalDecompositionTargetAtN5
1697 (PeriodicLongitudinalGaugeIdx5 → ℝ) periodicLongitudinalGaugeMap5 :=
1698 periodicFreudenthalTTOrthogonalDecompositionTargetAtN5_of_gramSystemData
1699 (PeriodicTTGramSystemSolutionData5.ofLoadSolverData D)
1700
1701/-- If every physical load lies in the Gram image, the concrete longitudinal TT
1702decomposition target closes. -/
1703theorem periodicFreudenthalTTOrthogonalDecompositionTargetAtN5_of_gramLoadImageData
1704 (D : PeriodicTTGramLoadImageData5) :
1705 PeriodicFreudenthalTTOrthogonalDecompositionTargetAtN5
1706 (PeriodicLongitudinalGaugeIdx5 → ℝ) periodicLongitudinalGaugeMap5 :=
1707 periodicFreudenthalTTOrthogonalDecompositionTargetAtN5_of_gramLoadSolverData
1708 (PeriodicTTGramLoadSolverData5.ofLoadImageData D)
1709
1710/-- The finite Gram-kernel criterion closes the concrete longitudinal TT
1711decomposition target. -/
1712theorem periodicFreudenthalTTOrthogonalDecompositionTargetAtN5_of_gramKernelCriterionData
1713 (D : PeriodicTTGramKernelCriterionData5) :
1714 PeriodicFreudenthalTTOrthogonalDecompositionTargetAtN5
1715 (PeriodicLongitudinalGaugeIdx5 → ℝ) periodicLongitudinalGaugeMap5 :=
1716 periodicFreudenthalTTOrthogonalDecompositionTargetAtN5_of_gramLoadImageData
1717 (PeriodicTTGramLoadImageData5.ofKernelCriterionData D)
1718
1719/-- If Gram-kernel coefficient vectors generate zero edge perturbations, then the
1720finite Gram-kernel criterion closes the concrete longitudinal TT decomposition
1721target. -/
1722theorem periodicFreudenthalTTOrthogonalDecompositionTargetAtN5_of_gramKernelGeneratorMapZeroData
1723 (D : PeriodicTTGramKernelGeneratorMapZeroData5) :
1724 PeriodicFreudenthalTTOrthogonalDecompositionTargetAtN5
1725 (PeriodicLongitudinalGaugeIdx5 → ℝ) periodicLongitudinalGaugeMap5 :=
1726 periodicFreudenthalTTOrthogonalDecompositionTargetAtN5_of_gramKernelCriterionData
1727 (PeriodicTTGramKernelCriterionData5.ofKernelGeneratorMapZeroData D)
1728
1729/-- The finite Gram range criterion is enough to close the concrete longitudinal
1730TT decomposition target. -/
1731theorem periodicFreudenthalTTOrthogonalDecompositionTargetAtN5_of_gramRangeCriterionData
1732 (D : PeriodicTTGramRangeCriterionData5) :
1733 PeriodicFreudenthalTTOrthogonalDecompositionTargetAtN5
1734 (PeriodicLongitudinalGaugeIdx5 → ℝ) periodicLongitudinalGaugeMap5 :=
1735 periodicFreudenthalTTOrthogonalDecompositionTargetAtN5_of_gramKernelCriterionData
1736 (PeriodicTTGramKernelCriterionData5.ofRangeCriterionData D)
1737
1738/-- The concrete longitudinal TT decomposition target is closed by the proved
1739finite Gram range theorem. -/
1740theorem periodicFreudenthalTTOrthogonalDecompositionTargetAtN5_of_provedGramRangeCriterion :
1741 PeriodicFreudenthalTTOrthogonalDecompositionTargetAtN5
1742 (PeriodicLongitudinalGaugeIdx5 → ℝ) periodicLongitudinalGaugeMap5 :=
1743 periodicFreudenthalTTOrthogonalDecompositionTargetAtN5_of_gramRangeCriterionData
1744 periodicTTGramRangeCriterionData5_proved
1745
1746/-! ## TT Hessian-to-Lichnerowicz matching surface -/
1747
1748/-- Bilinear form induced by an edge-space operator and the finite periodic-edge
1749inner product. -/
1750def periodicTTOperatorBilinear5
1751 (op : PeriodicEdgePerturbation5 → PeriodicEdgePerturbation5)
1752 (ε η : PeriodicEdgePerturbation5) : ℝ :=
1753 periodicEdgeInnerProduct5 ε (op η)
1754
1755/-- Finite edge-kernel representation of an operator on periodic edge
1756perturbations. This is the concrete matrix surface where the Regge TT Hessian
1757stencil and the lattice Lichnerowicz stencil should be compared. -/
1758abbrev PeriodicEdgeOperatorKernel5 :=
1759 PeriodicEdge5 → PeriodicEdge5 → ℝ
1760
1761/-- Encoded finite-triangulation version of an edge-kernel matrix. This is the
1762native `Fin K.nE` index surface for kernels extracted from the encoded
1763Freudenthal triangulation. -/
1764abbrev EncodedEdgeOperatorKernel5 :=
1765 Fin PeriodicTorus5.K.nE → Fin PeriodicTorus5.K.nE → ℝ
1766
1767/-- Pull an encoded `Fin K.nE` edge kernel back to typed periodic-edge indices. -/
1768def encodedToPeriodicEdgeKernel5
1769 (kernel : EncodedEdgeOperatorKernel5) : PeriodicEdgeOperatorKernel5 :=
1770 fun e f => kernel (PeriodicTorus5.edgeEquiv.symm e) (PeriodicTorus5.edgeEquiv.symm f)
1771
1772theorem encodedToPeriodicEdgeKernel5_apply
1773 (kernel : EncodedEdgeOperatorKernel5) (e f : PeriodicEdge5) :
1774 encodedToPeriodicEdgeKernel5 kernel e f =
1775 kernel (PeriodicTorus5.edgeEquiv.symm e) (PeriodicTorus5.edgeEquiv.symm f) :=
1776 rfl
1777
1778/-- Difference kernel on the encoded finite edge-index surface. -/
1779def encodedEdgeKernelResidual5
1780 (reggeKernel lichnerowiczKernel : EncodedEdgeOperatorKernel5) :
1781 EncodedEdgeOperatorKernel5 :=
1782 fun e f => reggeKernel e f - lichnerowiczKernel e f
1783
1784theorem encodedEdgeKernelResidual5_apply
1785 (reggeKernel lichnerowiczKernel : EncodedEdgeOperatorKernel5)
1786 (e f : Fin PeriodicTorus5.K.nE) :
1787 encodedEdgeKernelResidual5 reggeKernel lichnerowiczKernel e f =
1788 reggeKernel e f - lichnerowiczKernel e f :=
1789 rfl
1790
1791/-- The origin vertex of the concrete `5 × 5 × 5` periodic torus. -/
1792def periodicOriginVertex5 : PeriodicVertex5 :=
1793 (0, 0, 0)
1794
1795/-- Coordinate subtraction on the concrete `N = 5` torus. -/
1796def periodicSubFin5 (base v : Fin 5) : Fin 5 :=
1797 ⟨(v.1 + (5 - base.1)) % 5, by omega⟩
1798
1799/-- Vertex coordinates of `v` in the frame whose origin is `base`. -/
1800def periodicRelativeVertex5 (base v : PeriodicVertex5) : PeriodicVertex5 :=
1801 (periodicSubFin5 base.1 v.1,
1802 periodicSubFin5 base.2.1 v.2.1,
1803 periodicSubFin5 base.2.2 v.2.2)
1804
1805theorem periodicRelativeVertex5_origin_eq_self (v : PeriodicVertex5) :
1806 periodicRelativeVertex5 periodicOriginVertex5 v = v := by
1807 rcases v with ⟨x, y, z⟩
1808 ext <;> simp [periodicRelativeVertex5, periodicSubFin5, periodicOriginVertex5]
1809
1810/-- Translating a relative-frame vertex back by its frame origin recovers the
1811original global vertex. -/
1812theorem periodicTranslateVertex5_relative_eq_self
1813 (base v : PeriodicVertex5) :
1814 periodicTranslateVertex5 base (periodicRelativeVertex5 base v) = v := by
1815 rcases base with ⟨bx, byz⟩
1816 rcases byz with ⟨byc, bz⟩
1817 rcases v with ⟨x, yz⟩
1818 rcases yz with ⟨y, z⟩
1819 ext <;> simp [periodicTranslateVertex5, periodicRelativeVertex5,
1820 periodicAddFin5, periodicSubFin5] <;> omega
1821
1822/-- Re-basing a translated vertex at the same origin recovers the original
1823relative vertex. -/
1824theorem periodicRelativeVertex5_translate_eq_self
1825 (base v : PeriodicVertex5) :
1826 periodicRelativeVertex5 base (periodicTranslateVertex5 base v) = v := by
1827 rcases base with ⟨bx, byz⟩
1828 rcases byz with ⟨byc, bz⟩
1829 rcases v with ⟨x, yz⟩
1830 rcases yz with ⟨y, z⟩
1831 ext <;> simp [periodicTranslateVertex5, periodicRelativeVertex5,
1832 periodicAddFin5, periodicSubFin5] <;> omega
1833
1834/-- Translation by a fixed periodic vertex is injective on the concrete torus. -/
1835theorem periodicTranslateVertex5_injective
1836 (base : PeriodicVertex5) :
1837 Function.Injective (periodicTranslateVertex5 base) := by
1838 intro v w h
1839 have hrel := congrArg (periodicRelativeVertex5 base) h
1840 simpa [periodicRelativeVertex5_translate_eq_self] using hrel
1841
1842/-- The origin-row representative for a periodic edge displacement. -/
1843def periodicOriginEdgeOfDisp5 (disp : Fin 7) : PeriodicEdge5 :=
1844 { base := periodicOriginVertex5, disp := disp }
1845
1846/-- Column edge written in the coordinate frame of a row edge. -/
1847def periodicRelativeColumnOfRow5
1848 (row col : PeriodicEdge5) : PeriodicEdge5 :=
1849 { base := periodicRelativeVertex5 row.base col.base, disp := col.disp }
1850
1851theorem periodicRelativeColumnOfOriginDisp5
1852 (rowDisp colDisp : Fin 7) (colBase : PeriodicVertex5) :
1853 periodicRelativeColumnOfRow5
1854 (periodicOriginEdgeOfDisp5 rowDisp)
1855 ({ base := colBase, disp := colDisp } : PeriodicEdge5) =
1856 ({ base := colBase, disp := colDisp } : PeriodicEdge5) := by
1857 simp [periodicRelativeColumnOfRow5, periodicOriginEdgeOfDisp5,
1858 periodicRelativeVertex5_origin_eq_self]
1859
1860/-- Endpoints of a relative-frame column are the relative-frame endpoints of the
1861global column. -/
1862theorem periodicRelativeColumnOfRow5_endpoints
1863 (row col : PeriodicEdge5) :
1864 (periodicRelativeColumnOfRow5 row col).endpoints =
1865 (periodicRelativeVertex5 row.base col.endpoints.1,
1866 periodicRelativeVertex5 row.base col.endpoints.2) := by
1867 rcases row with ⟨rowBase, rowDisp⟩
1868 rcases col with ⟨colBase, colDisp⟩
1869 rcases rowBase with ⟨rx, ryz⟩
1870 rcases ryz with ⟨ry, rz⟩
1871 rcases colBase with ⟨cx, cyz⟩
1872 rcases cyz with ⟨cy, cz⟩
1873 fin_cases colDisp <;>
1874 ext <;>
1875 simp [periodicRelativeColumnOfRow5, PeriodicEdge.endpoints,
1876 periodicRelativeVertex5, periodicSubFin5, addBits, dispBits, addBit, bit] <;>
1877 omega
1878
1879/-- Translating the endpoints of a relative-frame column back by the row base
1880recovers the endpoints of the original global column. -/
1881theorem periodicTranslateVertex5_relativeColumn_endpoints
1882 (row col : PeriodicEdge5) :
1883 (periodicTranslateVertex5 row.base
1884 (periodicRelativeColumnOfRow5 row col).endpoints.1,
1885 periodicTranslateVertex5 row.base
1886 (periodicRelativeColumnOfRow5 row col).endpoints.2) =
1887 col.endpoints := by
1888 rw [periodicRelativeColumnOfRow5_endpoints]
1889 simp [periodicTranslateVertex5_relative_eq_self]
1890
1891/-- First endpoint equality in a row-relative frame is equivalent to translated
1892global endpoint equality. -/
1893theorem periodicRelativeColumnOfRow5_endpoint_fst_eq_iff
1894 (row col : PeriodicEdge5) (v : PeriodicVertex5) :
1895 (periodicRelativeColumnOfRow5 row col).endpoints.1 = v ↔
1896 col.endpoints.1 = periodicTranslateVertex5 row.base v := by
1897 have hends := periodicTranslateVertex5_relativeColumn_endpoints row col
1898 have hfst :
1899 periodicTranslateVertex5 row.base
1900 (periodicRelativeColumnOfRow5 row col).endpoints.1 =
1901 col.endpoints.1 := congrArg Prod.fst hends
1902 constructor
1903 · intro h
1904 rw [← hfst, h]
1905 · intro h
1906 exact periodicTranslateVertex5_injective row.base (hfst.trans h)
1907
1908/-- Second endpoint equality in a row-relative frame is equivalent to translated
1909global endpoint equality. -/
1910theorem periodicRelativeColumnOfRow5_endpoint_snd_eq_iff
1911 (row col : PeriodicEdge5) (v : PeriodicVertex5) :
1912 (periodicRelativeColumnOfRow5 row col).endpoints.2 = v ↔
1913 col.endpoints.2 = periodicTranslateVertex5 row.base v := by
1914 have hends := periodicTranslateVertex5_relativeColumn_endpoints row col
1915 have hsnd :
1916 periodicTranslateVertex5 row.base
1917 (periodicRelativeColumnOfRow5 row col).endpoints.2 =
1918 col.endpoints.2 := congrArg Prod.snd hends
1919 constructor
1920 · intro h
1921 rw [← hsnd, h]
1922 · intro h
1923 exact periodicTranslateVertex5_injective row.base (hsnd.trans h)
1924
1925/-- Encoded first-endpoint equality in a row-relative frame is equivalent to
1926encoded shifted first-endpoint equality in the global frame. -/
1927theorem periodicRelativeColumnOfRow5_encoded_endpoint_fst_eq_iff
1928 (row col : PeriodicEdge5) (v : Fin PeriodicTorus5.K.nV) :
1929 periodicVertexEquiv5.symm
1930 (periodicRelativeColumnOfRow5 row col).endpoints.1 = v ↔
1931 periodicVertexEquiv5.symm col.endpoints.1 =
1932 periodicTranslateEncodedVertexIdx5 row.base v := by
1933 constructor
1934 · intro h
1935 apply periodicVertexEquiv5.injective
1936 simpa [periodicTranslateEncodedVertexIdx5] using
1937 (periodicRelativeColumnOfRow5_endpoint_fst_eq_iff row col
1938 (periodicVertexEquiv5 v)).1 (by
1939 simpa using congrArg periodicVertexEquiv5 h)
1940 · intro h
1941 have hglobal :
1942 col.endpoints.1 =
1943 periodicTranslateVertex5 row.base (periodicVertexEquiv5 v) := by
1944 simpa [periodicTranslateEncodedVertexIdx5] using
1945 congrArg periodicVertexEquiv5 h
1946 have hrel :=
1947 (periodicRelativeColumnOfRow5_endpoint_fst_eq_iff row col
1948 (periodicVertexEquiv5 v)).2 hglobal
1949 simpa using congrArg periodicVertexEquiv5.symm hrel
1950
1951/-- Encoded second-endpoint equality in a row-relative frame is equivalent to
1952encoded shifted second-endpoint equality in the global frame. -/
1953theorem periodicRelativeColumnOfRow5_encoded_endpoint_snd_eq_iff
1954 (row col : PeriodicEdge5) (v : Fin PeriodicTorus5.K.nV) :
1955 periodicVertexEquiv5.symm
1956 (periodicRelativeColumnOfRow5 row col).endpoints.2 = v ↔
1957 periodicVertexEquiv5.symm col.endpoints.2 =
1958 periodicTranslateEncodedVertexIdx5 row.base v := by
1959 constructor
1960 · intro h
1961 apply periodicVertexEquiv5.injective
1962 simpa [periodicTranslateEncodedVertexIdx5] using
1963 (periodicRelativeColumnOfRow5_endpoint_snd_eq_iff row col
1964 (periodicVertexEquiv5 v)).1 (by
1965 simpa using congrArg periodicVertexEquiv5 h)
1966 · intro h
1967 have hglobal :
1968 col.endpoints.2 =
1969 periodicTranslateVertex5 row.base (periodicVertexEquiv5 v) := by
1970 simpa [periodicTranslateEncodedVertexIdx5] using
1971 congrArg periodicVertexEquiv5 h
1972 have hrel :=
1973 (periodicRelativeColumnOfRow5_endpoint_snd_eq_iff row col
1974 (periodicVertexEquiv5 v)).2 hglobal
1975 simpa using congrArg periodicVertexEquiv5.symm hrel
1976
1977/-- A row-frame translate of one conformal generator column is exactly the
1978globally shifted conformal generator column. -/
1979theorem periodicConformalGenerator5_relativeColumn_eq_shift
1980 (row col : PeriodicEdge5) (v : Fin PeriodicTorus5.K.nV) :
1981 periodicConformalGenerator5 v
1982 (periodicRelativeColumnOfRow5 row col) =
1983 periodicConformalGenerator5
1984 (periodicTranslateEncodedVertexIdx5 row.base v) col := by
1985 rw [periodicConformalGenerator5_apply_endpoint,
1986 periodicConformalGenerator5_apply_endpoint]
1987 simp [periodicRelativeColumnOfRow5_encoded_endpoint_fst_eq_iff,
1988 periodicRelativeColumnOfRow5_encoded_endpoint_snd_eq_iff]
1989
1990/-- A row-frame translate of one longitudinal gauge generator column is exactly
1991the globally shifted longitudinal gauge generator column. -/
1992theorem periodicLongitudinalGaugeGenerator5_relativeColumn_eq_shift
1993 (row col : PeriodicEdge5) (idx : PeriodicLongitudinalGaugeIdx5) :
1994 periodicLongitudinalGaugeGenerator5 idx
1995 (periodicRelativeColumnOfRow5 row col) =
1996 periodicLongitudinalGaugeGenerator5
1997 (periodicTranslateLongitudinalGaugeIdx5 row.base idx) col := by
1998 rcases idx with ⟨idxVertex, idxComponent⟩
1999 have hdisp : (periodicRelativeColumnOfRow5 row col).disp = col.disp := rfl
2000 simp [periodicLongitudinalGaugeGenerator5,
2001 periodicTranslateLongitudinalGaugeIdx5,
2002 hdisp,
2003 periodicRelativeColumnOfRow5_endpoint_fst_eq_iff,
2004 periodicRelativeColumnOfRow5_endpoint_snd_eq_iff]
2005
2006/-- A row-frame translate of any combined normal-equation generator column is
2007exactly the globally shifted combined generator column. -/
2008theorem periodicTTNormalEquationGenerator5_relativeColumn_eq_shift
2009 (row col : PeriodicEdge5) (idx : PeriodicTTNormalEquationIdx5) :
2010 periodicTTNormalEquationGenerator5 idx
2011 (periodicRelativeColumnOfRow5 row col) =
2012 periodicTTNormalEquationGenerator5
2013 (periodicTranslateTTNormalEquationIdx5 row.base idx) col := by
2014 cases idx with
2015 | inl v =>
2016 exact periodicConformalGenerator5_relativeColumn_eq_shift row col v
2017 | inr i =>
2018 exact periodicLongitudinalGaugeGenerator5_relativeColumn_eq_shift row col i
2019
2020/-- Encoded vertex-index translation by a row base, packaged as an equivalence. -/
2021noncomputable def periodicTranslateEncodedVertexIdxEquiv5
2022 (base : PeriodicVertex5) :
2023 Fin PeriodicTorus5.K.nV ≃ Fin PeriodicTorus5.K.nV where
2024 toFun := periodicTranslateEncodedVertexIdx5 base
2025 invFun := fun v =>
2026 periodicVertexEquiv5.symm
2027 (periodicRelativeVertex5 base (periodicVertexEquiv5 v))
2028 left_inv := by
2029 intro v
2030 apply periodicVertexEquiv5.injective
2031 simp [periodicTranslateEncodedVertexIdx5,
2032 periodicRelativeVertex5_translate_eq_self]
2033 right_inv := by
2034 intro v
2035 apply periodicVertexEquiv5.injective
2036 simp [periodicTranslateEncodedVertexIdx5,
2037 periodicTranslateVertex5_relative_eq_self]
2038
2039/-- Longitudinal gauge-index translation by a row base, packaged as an equivalence. -/
2040def periodicTranslateLongitudinalGaugeIdxEquiv5
2041 (base : PeriodicVertex5) :
2042 PeriodicLongitudinalGaugeIdx5 ≃ PeriodicLongitudinalGaugeIdx5 where
2043 toFun := periodicTranslateLongitudinalGaugeIdx5 base
2044 invFun := fun idx => (periodicRelativeVertex5 base idx.1, idx.2)
2045 left_inv := by
2046 intro idx
2047 rcases idx with ⟨v, j⟩
2048 simp [periodicTranslateLongitudinalGaugeIdx5,
2049 periodicRelativeVertex5_translate_eq_self]
2050 right_inv := by
2051 intro idx
2052 rcases idx with ⟨v, j⟩
2053 simp [periodicTranslateLongitudinalGaugeIdx5,
2054 periodicTranslateVertex5_relative_eq_self]
2055
2056/-- Combined normal-equation index translation by a row base, packaged as an
2057equivalence. -/
2058noncomputable def periodicTranslateTTNormalEquationIdxEquiv5
2059 (base : PeriodicVertex5) :
2060 PeriodicTTNormalEquationIdx5 ≃ PeriodicTTNormalEquationIdx5 where
2061 toFun := periodicTranslateTTNormalEquationIdx5 base
2062 invFun
2063 | Sum.inl v => Sum.inl ((periodicTranslateEncodedVertexIdxEquiv5 base).symm v)
2064 | Sum.inr i => Sum.inr ((periodicTranslateLongitudinalGaugeIdxEquiv5 base).symm i)
2065 left_inv := by
2066 intro idx
2067 cases idx with
2068 | inl v =>
2069 simp only [periodicTranslateTTNormalEquationIdx5]
2070 exact congrArg Sum.inl
2071 ((periodicTranslateEncodedVertexIdxEquiv5 base).left_inv v)
2072 | inr i =>
2073 simp only [periodicTranslateTTNormalEquationIdx5]
2074 exact congrArg Sum.inr
2075 ((periodicTranslateLongitudinalGaugeIdxEquiv5 base).left_inv i)
2076 right_inv := by
2077 intro idx
2078 cases idx with
2079 | inl v =>
2080 simp only [periodicTranslateTTNormalEquationIdx5]
2081 exact congrArg Sum.inl
2082 ((periodicTranslateEncodedVertexIdxEquiv5 base).right_inv v)
2083 | inr i =>
2084 simp only [periodicTranslateTTNormalEquationIdx5]
2085 exact congrArg Sum.inr
2086 ((periodicTranslateLongitudinalGaugeIdxEquiv5 base).right_inv i)
2087
2088/-- Combined generator map viewed in the coordinate frame of a row edge. -/
2089def periodicRelativeTTNormalEquationGeneratorMap5
2090 (row : PeriodicEdge5) (coeff : PeriodicTTNormalEquationIdx5 → ℝ) :
2091 PeriodicEdgePerturbation5 :=
2092 fun col => periodicTTNormalEquationGeneratorMap5 coeff
2093 (periodicRelativeColumnOfRow5 row col)
2094
2095/-- Relative-frame combined generator maps are global generator maps with the
2096coefficient vector reindexed by the row-base translation equivalence. -/
2097theorem periodicRelativeTTNormalEquationGeneratorMap5_eq_shiftedMap
2098 (row : PeriodicEdge5) (coeff : PeriodicTTNormalEquationIdx5 → ℝ)
2099 (col : PeriodicEdge5) :
2100 periodicRelativeTTNormalEquationGeneratorMap5 row coeff col =
2101 periodicTTNormalEquationGeneratorMap5
2102 (fun idx => coeff ((periodicTranslateTTNormalEquationIdxEquiv5 row.base).symm idx))
2103 col := by
2104 classical
2105 let σ := periodicTranslateTTNormalEquationIdxEquiv5 row.base
2106 unfold periodicRelativeTTNormalEquationGeneratorMap5
2107 periodicTTNormalEquationGeneratorMap5 periodicGaugeGeneratorMap5
2108 calc
2109 (∑ idx : PeriodicTTNormalEquationIdx5,
2110 coeff idx *
2111 periodicTTNormalEquationGenerator5 idx
2112 (periodicRelativeColumnOfRow5 row col)) =
2113 ∑ idx : PeriodicTTNormalEquationIdx5,
2114 coeff idx *
2115 periodicTTNormalEquationGenerator5 (σ idx) col := by
2116 refine Finset.sum_congr rfl ?_
2117 intro idx _
2118 rw [periodicTTNormalEquationGenerator5_relativeColumn_eq_shift]
2119 rfl
2120 _ =
2121 ∑ idx : PeriodicTTNormalEquationIdx5,
2122 coeff (σ.symm idx) *
2123 periodicTTNormalEquationGenerator5 idx col := by
2124 exact Fintype.sum_equiv σ
2125 (fun idx : PeriodicTTNormalEquationIdx5 =>
2126 coeff idx * periodicTTNormalEquationGenerator5 (σ idx) col)
2127 (fun idx : PeriodicTTNormalEquationIdx5 =>
2128 coeff (σ.symm idx) * periodicTTNormalEquationGenerator5 idx col)
2129 (fun idx => by simp [σ])
2130
2131/-- Missing shifted-generator lemma for the relative-frame route: every TT
2132perturbation is orthogonal to every row-frame translate of the combined
2133conformal/longitudinal generator map. -/
2134def PeriodicRelativeTTGeneratorOrthogonalOnTT5 : Prop :=
2135 ∀ ε,
2136 PeriodicLongitudinalTTSubspace5 ε →
2137 ∀ (row : PeriodicEdge5) (coeff : PeriodicTTNormalEquationIdx5 → ℝ),
2138 periodicEdgeInnerProduct5 ε
2139 (periodicRelativeTTNormalEquationGeneratorMap5 row coeff) = 0
2140
2141/-- Closure target behind shifted-generator orthogonality: every row-frame
2142translate of a combined normal-equation generator must split back into the
2143fixed conformal and longitudinal-gauge images. -/
2144def PeriodicRelativeTTGeneratorClosure5 : Prop :=
2145 ∀ (row : PeriodicEdge5) (coeff : PeriodicTTNormalEquationIdx5 → ℝ),
2146 ∃ (conformalCoeff : Fin PeriodicTorus5.K.nV → ℝ)
2147 (gaugeCoeff : PeriodicLongitudinalGaugeIdx5 → ℝ),
2148 ∀ col,
2149 periodicRelativeTTNormalEquationGeneratorMap5 row coeff col =
2150 periodicConformalGeneratorMap5 conformalCoeff col +
2151 periodicLongitudinalGaugeMap5 gaugeCoeff col
2152
2153/-- The row-frame translated combined generator space is exactly closed inside
2154the fixed conformal plus longitudinal-gauge image. -/
2155theorem periodicRelativeTTGeneratorClosure5_holds :
2156 PeriodicRelativeTTGeneratorClosure5 := by
2157 classical
2158 intro row coeff
2159 let shiftedCoeff : PeriodicTTNormalEquationIdx5 → ℝ :=
2160 fun idx => coeff ((periodicTranslateTTNormalEquationIdxEquiv5 row.base).symm idx)
2161 refine ⟨
2162 periodicTTNormalEquationConformalCoeff5 shiftedCoeff,
2163 periodicTTNormalEquationGaugeCoeff5 shiftedCoeff,
2164 ?_⟩
2165 intro col
2166 rw [periodicRelativeTTNormalEquationGeneratorMap5_eq_shiftedMap]
2167 exact periodicTTNormalEquationGeneratorMap5_eq_split shiftedCoeff col
2168
2169/-- Closure of row-frame generator translates into the fixed conformal/gauge
2170images proves the shifted-generator orthogonality lemma. -/
2171theorem PeriodicRelativeTTGeneratorOrthogonalOnTT5.ofClosure
2172 (hclosure : PeriodicRelativeTTGeneratorClosure5) :
2173 PeriodicRelativeTTGeneratorOrthogonalOnTT5 := by
2174 intro ε hε row coeff
2175 rcases hclosure row coeff with ⟨conformalCoeff, gaugeCoeff, hsplit⟩
2176 have hfun :
2177 periodicRelativeTTNormalEquationGeneratorMap5 row coeff =
2178 fun col =>
2179 periodicConformalGeneratorMap5 conformalCoeff col +
2180 periodicLongitudinalGaugeMap5 gaugeCoeff col := by
2181 funext col
2182 exact hsplit col
2183 have hc :
2184 periodicEdgeInnerProduct5 ε
2185 (periodicConformalGeneratorMap5 conformalCoeff) = 0 :=
2186 hε.1 (periodicConformalGeneratorMap5 conformalCoeff)
2187 (periodicConformalGeneratorMap5_mem conformalCoeff)
2188 have hg :
2189 periodicEdgeInnerProduct5 ε
2190 (periodicLongitudinalGaugeMap5 gaugeCoeff) = 0 :=
2191 hε.2 (periodicLongitudinalGaugeMap5 gaugeCoeff) ⟨gaugeCoeff, rfl⟩
2192 rw [hfun, periodicEdgeInnerProduct5_add_right, hc, hg, add_zero]
2193
2194/-- Encoded edge index for the origin-row representative of a displacement. -/
2195def encodedOriginEdgeOfDisp5 (disp : Fin 7) : Fin PeriodicTorus5.K.nE :=
2196 PeriodicTorus5.edgeEquiv.symm (periodicOriginEdgeOfDisp5 disp)
2197
2198theorem encodedOriginEdgeOfDisp5_equiv
2199 (disp : Fin 7) :
2200 PeriodicTorus5.edgeEquiv (encodedOriginEdgeOfDisp5 disp) =
2201 periodicOriginEdgeOfDisp5 disp := by
2202 simp [encodedOriginEdgeOfDisp5]
2203
2204/-- Apply a finite edge-kernel operator to an edge perturbation. -/
2205def periodicEdgeKernelOperator5
2206 (kernel : PeriodicEdgeOperatorKernel5)
2207 (ε : PeriodicEdgePerturbation5) : PeriodicEdgePerturbation5 :=
2208 fun e => ∑ f : PeriodicEdge5, kernel e f * ε f
2209
2210/-- Row of a finite edge-kernel operator as an edge perturbation. -/
2211def periodicEdgeKernelRowVector5
2212 (kernel : PeriodicEdgeOperatorKernel5)
2213 (e : PeriodicEdge5) : PeriodicEdgePerturbation5 :=
2214 fun f => kernel e f
2215
2216/-- Kernel-operator evaluation is pairing against the corresponding row vector,
2217up to the symmetry of real multiplication. -/
2218theorem periodicEdgeKernelOperator5_eq_inner_row
2219 (kernel : PeriodicEdgeOperatorKernel5)
2220 (ε : PeriodicEdgePerturbation5)
2221 (e : PeriodicEdge5) :
2222 periodicEdgeKernelOperator5 kernel ε e =
2223 periodicEdgeInnerProduct5 ε (periodicEdgeKernelRowVector5 kernel e) := by
2224 unfold periodicEdgeKernelOperator5 periodicEdgeInnerProduct5 periodicEdgeKernelRowVector5
2225 refine Finset.sum_congr rfl ?_
2226 intro f _
2227 ring
2228
2229/-- Rowwise agreement of edge-kernel operators on a TT perturbation gives
2230pointwise agreement of the resulting edge perturbations. -/
2231theorem periodicEdgeKernelOperator5_eq_of_row_eq
2232 (reggeKernel lichnerowiczKernel : PeriodicEdgeOperatorKernel5)
2233 (ε : PeriodicEdgePerturbation5)
2234 (hrow :
2235 ∀ e : PeriodicEdge5,
2236 periodicEdgeKernelOperator5 reggeKernel ε e =
2237 periodicEdgeKernelOperator5 lichnerowiczKernel ε e) :
2238 periodicEdgeKernelOperator5 reggeKernel ε =
2239 periodicEdgeKernelOperator5 lichnerowiczKernel ε := by
2240 funext e
2241 exact hrow e
2242
2243/-- Entrywise equality of two finite edge kernels gives equality of their
2244operators on every edge perturbation. -/
2245theorem periodicEdgeKernelOperator5_eq_of_kernel_eq
2246 (reggeKernel lichnerowiczKernel : PeriodicEdgeOperatorKernel5)
2247 (hkernel : ∀ e f : PeriodicEdge5, reggeKernel e f = lichnerowiczKernel e f)
2248 (ε : PeriodicEdgePerturbation5) :
2249 periodicEdgeKernelOperator5 reggeKernel ε =
2250 periodicEdgeKernelOperator5 lichnerowiczKernel ε := by
2251 apply periodicEdgeKernelOperator5_eq_of_row_eq
2252 intro e
2253 unfold periodicEdgeKernelOperator5
2254 refine Finset.sum_congr rfl ?_
2255 intro f _
2256 rw [hkernel e f]
2257
2258/-- Difference kernel between the Regge TT Hessian stencil and the lattice
2259Lichnerowicz stencil. -/
2260def periodicEdgeKernelResidual5
2261 (reggeKernel lichnerowiczKernel : PeriodicEdgeOperatorKernel5) :
2262 PeriodicEdgeOperatorKernel5 :=
2263 fun e f => reggeKernel e f - lichnerowiczKernel e f
2264
2265/-- Applying the residual kernel is the difference of the two kernel operators. -/
2266theorem periodicEdgeKernelOperator5_residual_eq_sub
2267 (reggeKernel lichnerowiczKernel : PeriodicEdgeOperatorKernel5)
2268 (ε : PeriodicEdgePerturbation5)
2269 (e : PeriodicEdge5) :
2270 periodicEdgeKernelOperator5
2271 (periodicEdgeKernelResidual5 reggeKernel lichnerowiczKernel) ε e =
2272 periodicEdgeKernelOperator5 reggeKernel ε e -
2273 periodicEdgeKernelOperator5 lichnerowiczKernel ε e := by
2274 unfold periodicEdgeKernelOperator5 periodicEdgeKernelResidual5
2275 calc
2276 (∑ f : PeriodicEdge5, (reggeKernel e f - lichnerowiczKernel e f) * ε f)
2277 =
2278 ∑ f : PeriodicEdge5,
2279 (reggeKernel e f * ε f - lichnerowiczKernel e f * ε f) := by
2280 refine Finset.sum_congr rfl ?_
2281 intro f _
2282 ring
2283 _ =
2284 (∑ f : PeriodicEdge5, reggeKernel e f * ε f) -
2285 ∑ f : PeriodicEdge5, lichnerowiczKernel e f * ε f := by
2286 rw [Finset.sum_sub_distrib]
2287
2288/-- The exact forward Track 1.D Hessian/Lichnerowicz target at `N = 5`: on TT
2289edge perturbations, the Regge Hessian operator agrees with the lattice
2290Lichnerowicz operator. -/
2291def PeriodicTTHessianMatchesLichnerowiczAtN5
2292 (reggeHessianTT latticeLichnerowiczTT :
2293 PeriodicEdgePerturbation5 → PeriodicEdgePerturbation5) : Prop :=
2294 ∀ ε,
2295 PeriodicLongitudinalTTSubspace5 ε →
2296 reggeHessianTT ε = latticeLichnerowiczTT ε
2297
2298/-- Data object for the TT Hessian-to-Lichnerowicz operator match. The actual
2299analytic work is to instantiate the two operators from the Regge Hessian and the
2300discrete spin-2 Lichnerowicz stencil, then prove `matches_on_tt`. -/
2301structure PeriodicTTHessianLichnerowiczMatchData5 where
2302 reggeHessianTT :
2303 PeriodicEdgePerturbation5 → PeriodicEdgePerturbation5
2304 latticeLichnerowiczTT :
2305 PeriodicEdgePerturbation5 → PeriodicEdgePerturbation5
2306 matches_on_tt :
2307 PeriodicTTHessianMatchesLichnerowiczAtN5
2308 reggeHessianTT latticeLichnerowiczTT
2309
2310/-- Rowwise kernel data for proving the TT Hessian-to-Lichnerowicz operator
2311match. The intended physical closure is to instantiate `reggeHessianKernel`
2312from the Regge second-variation edge Hessian and `latticeLichnerowiczKernel`
2313from the spin-2 lattice stencil, then prove `kernel_rows_match_on_tt`. -/
2314structure PeriodicTTHessianLichnerowiczKernelRowData5 where
2315 reggeHessianKernel : PeriodicEdgeOperatorKernel5
2316 latticeLichnerowiczKernel : PeriodicEdgeOperatorKernel5
2317 kernel_rows_match_on_tt :
2318 ∀ ε,
2319 PeriodicLongitudinalTTSubspace5 ε →
2320 ∀ e : PeriodicEdge5,
2321 periodicEdgeKernelOperator5 reggeHessianKernel ε e =
2322 periodicEdgeKernelOperator5 latticeLichnerowiczKernel ε e
2323
2324/-- Entrywise kernel data is a stronger, stencil-level route to the same TT
2325Hessian-to-Lichnerowicz operator match. -/
2326structure PeriodicTTHessianLichnerowiczKernelEntryData5 where
2327 reggeHessianKernel : PeriodicEdgeOperatorKernel5
2328 latticeLichnerowiczKernel : PeriodicEdgeOperatorKernel5
2329 kernel_entries_match :
2330 ∀ e f : PeriodicEdge5,
2331 reggeHessianKernel e f = latticeLichnerowiczKernel e f
2332
2333/-- Residual-kernel vanishing on TT perturbations is the most compact finite
2334calculation target for the TT Hessian-to-Lichnerowicz comparison. -/
2335structure PeriodicTTHessianLichnerowiczKernelResidualTTZeroData5 where
2336 reggeHessianKernel : PeriodicEdgeOperatorKernel5
2337 latticeLichnerowiczKernel : PeriodicEdgeOperatorKernel5
2338 residual_zero_on_tt :
2339 ∀ ε,
2340 PeriodicLongitudinalTTSubspace5 ε →
2341 periodicEdgeKernelOperator5
2342 (periodicEdgeKernelResidual5 reggeHessianKernel latticeLichnerowiczKernel)
2343 ε = fun _ => 0
2344
2345/-- Row-span data for the residual kernel: every residual row belongs to the
2346combined conformal plus longitudinal generator span. This is the sharp finite
2347stencil target for the TT Hessian/Lichnerowicz comparison. -/
2348structure PeriodicTTHessianLichnerowiczResidualRowSpanData5 where
2349 reggeHessianKernel : PeriodicEdgeOperatorKernel5
2350 latticeLichnerowiczKernel : PeriodicEdgeOperatorKernel5
2351 residual_row_mem_generator_span :
2352 ∀ e : PeriodicEdge5,
2353 ∃ coeff : PeriodicTTNormalEquationIdx5 → ℝ,
2354 periodicEdgeKernelRowVector5
2355 (periodicEdgeKernelResidual5 reggeHessianKernel latticeLichnerowiczKernel) e =
2356 periodicTTNormalEquationGeneratorMap5 coeff
2357
2358/-- Explicit coefficient form of the residual-row span target. This is the
2359finite table the remaining TT stencil calculation should produce: for each
2360edge-row, a combined conformal/longitudinal coefficient vector whose generator
2361map is exactly the residual row. -/
2362structure PeriodicTTHessianLichnerowiczResidualRowCoeffData5 where
2363 reggeHessianKernel : PeriodicEdgeOperatorKernel5
2364 latticeLichnerowiczKernel : PeriodicEdgeOperatorKernel5
2365 residualRowCoeff :
2366 PeriodicEdge5 → PeriodicTTNormalEquationIdx5 → ℝ
2367 residual_row_eq_generatorMap :
2368 ∀ e : PeriodicEdge5,
2369 periodicEdgeKernelRowVector5
2370 (periodicEdgeKernelResidual5 reggeHessianKernel latticeLichnerowiczKernel) e =
2371 periodicTTNormalEquationGeneratorMap5 (residualRowCoeff e)
2372
2373/-- Entrywise version of the explicit residual-row coefficient target. This is
2374the certificate-friendly scalar form: every residual kernel entry equals the
2375corresponding entry of the row's generator-map reconstruction. -/
2376structure PeriodicTTHessianLichnerowiczResidualRowCoeffEntryData5 where
2377 reggeHessianKernel : PeriodicEdgeOperatorKernel5
2378 latticeLichnerowiczKernel : PeriodicEdgeOperatorKernel5
2379 residualRowCoeff :
2380 PeriodicEdge5 → PeriodicTTNormalEquationIdx5 → ℝ
2381 residual_entry_eq_generatorMap :
2382 ∀ e f : PeriodicEdge5,
2383 periodicEdgeKernelResidual5 reggeHessianKernel latticeLichnerowiczKernel e f =
2384 periodicTTNormalEquationGeneratorMap5 (residualRowCoeff e) f
2385
2386/-- Raw scalar formula form of the residual-row coefficient target. This is the
2387unwrapped finite identity: Regge kernel entry minus Lichnerowicz kernel entry
2388equals the generator-map reconstruction entry. -/
2389structure PeriodicTTHessianLichnerowiczResidualEntryFormulaData5 where
2390 reggeHessianKernel : PeriodicEdgeOperatorKernel5
2391 latticeLichnerowiczKernel : PeriodicEdgeOperatorKernel5
2392 residualRowCoeff :
2393 PeriodicEdge5 → PeriodicTTNormalEquationIdx5 → ℝ
2394 residual_entry_formula :
2395 ∀ e f : PeriodicEdge5,
2396 reggeHessianKernel e f - latticeLichnerowiczKernel e f =
2397 periodicTTNormalEquationGeneratorMap5 (residualRowCoeff e) f
2398
2399/-- Encoded finite-index form of the raw scalar TT residual formula. This is
2400the certificate surface for kernels produced over the encoded `Fin K.nE` edge
2401indexing of the canonical `N = 5` periodic Freudenthal torus. -/
2402structure EncodedTTHessianLichnerowiczResidualEntryFormulaData5 where
2403 reggeHessianKernel : EncodedEdgeOperatorKernel5
2404 latticeLichnerowiczKernel : EncodedEdgeOperatorKernel5
2405 residualRowCoeff :
2406 PeriodicEdge5 → PeriodicTTNormalEquationIdx5 → ℝ
2407 encoded_residual_entry_formula :
2408 ∀ e f : Fin PeriodicTorus5.K.nE,
2409 reggeHessianKernel e f - latticeLichnerowiczKernel e f =
2410 periodicTTNormalEquationGeneratorMap5
2411 (residualRowCoeff (PeriodicTorus5.edgeEquiv e))
2412 (PeriodicTorus5.edgeEquiv f)
2413
2414/-- Encoded residual-kernel certificate form. This lets the finite calculation
2415emit the already-subtracted residual matrix, prove it is `Regge - Lichnerowicz`,
2416and then compare that residual directly to the generator-map reconstruction. -/
2417structure EncodedTTHessianLichnerowiczResidualKernelFormulaData5 where
2418 reggeHessianKernel : EncodedEdgeOperatorKernel5
2419 latticeLichnerowiczKernel : EncodedEdgeOperatorKernel5
2420 residualKernel : EncodedEdgeOperatorKernel5
2421 residualRowCoeff :
2422 PeriodicEdge5 → PeriodicTTNormalEquationIdx5 → ℝ
2423 residualKernel_eq_sub :
2424 ∀ e f : Fin PeriodicTorus5.K.nE,
2425 residualKernel e f =
2426 encodedEdgeKernelResidual5 reggeHessianKernel latticeLichnerowiczKernel e f
2427 residualKernel_entry_formula :
2428 ∀ e f : Fin PeriodicTorus5.K.nE,
2429 residualKernel e f =
2430 periodicTTNormalEquationGeneratorMap5
2431 (residualRowCoeff (PeriodicTorus5.edgeEquiv e))
2432 (PeriodicTorus5.edgeEquiv f)
2433
2434/-- Displacement-row form of the encoded residual-kernel certificate. Translation
2435normalizes every encoded row to the origin edge with the same displacement, so
2436the finite table only has seven row families. -/
2437structure EncodedTTHessianLichnerowiczResidualDispRowFormulaData5 where
2438 reggeHessianKernel : EncodedEdgeOperatorKernel5
2439 latticeLichnerowiczKernel : EncodedEdgeOperatorKernel5
2440 residualKernel : EncodedEdgeOperatorKernel5
2441 residualDispCoeff :
2442 Fin 7 → PeriodicTTNormalEquationIdx5 → ℝ
2443 residualKernel_eq_sub :
2444 ∀ e f : Fin PeriodicTorus5.K.nE,
2445 residualKernel e f =
2446 encodedEdgeKernelResidual5 reggeHessianKernel latticeLichnerowiczKernel e f
2447 residualKernel_row_translation :
2448 ∀ e f : Fin PeriodicTorus5.K.nE,
2449 residualKernel e f =
2450 residualKernel
2451 (encodedOriginEdgeOfDisp5 (PeriodicTorus5.edgeEquiv e).disp) f
2452 residual_origin_row_formula :
2453 ∀ (disp : Fin 7) (f : Fin PeriodicTorus5.K.nE),
2454 residualKernel (encodedOriginEdgeOfDisp5 disp) f =
2455 periodicTTNormalEquationGeneratorMap5
2456 (residualDispCoeff disp)
2457 (PeriodicTorus5.edgeEquiv f)
2458
2459/-- Seven-row table form of the encoded residual certificate. The generator can
2460emit only the origin residual rows, then separately prove that every matrix row
2461translates to the appropriate row of this table. -/
2462structure EncodedTTHessianLichnerowiczResidualOriginRowTableFormulaData5 where
2463 reggeHessianKernel : EncodedEdgeOperatorKernel5
2464 latticeLichnerowiczKernel : EncodedEdgeOperatorKernel5
2465 residualKernel : EncodedEdgeOperatorKernel5
2466 residualOriginRow :
2467 Fin 7 → Fin PeriodicTorus5.K.nE → ℝ
2468 residualDispCoeff :
2469 Fin 7 → PeriodicTTNormalEquationIdx5 → ℝ
2470 residualKernel_eq_sub :
2471 ∀ e f : Fin PeriodicTorus5.K.nE,
2472 residualKernel e f =
2473 encodedEdgeKernelResidual5 reggeHessianKernel latticeLichnerowiczKernel e f
2474 residualOriginRow_eq_origin :
2475 ∀ (disp : Fin 7) (f : Fin PeriodicTorus5.K.nE),
2476 residualOriginRow disp f =
2477 residualKernel (encodedOriginEdgeOfDisp5 disp) f
2478 residualKernel_row_translation :
2479 ∀ e f : Fin PeriodicTorus5.K.nE,
2480 residualKernel e f =
2481 residualOriginRow (PeriodicTorus5.edgeEquiv e).disp f
2482 residualOriginRow_entry_formula :
2483 ∀ (disp : Fin 7) (f : Fin PeriodicTorus5.K.nE),
2484 residualOriginRow disp f =
2485 periodicTTNormalEquationGeneratorMap5
2486 (residualDispCoeff disp)
2487 (PeriodicTorus5.edgeEquiv f)
2488
2489/-- Typed-column table form of the seven origin-row residual certificate. This
2490is the generator-facing surface: each table entry is indexed by the origin-row
2491displacement, the column base vertex, and the column displacement. -/
2492structure EncodedTTHessianLichnerowiczResidualOriginColumnTableFormulaData5 where
2493 reggeHessianKernel : EncodedEdgeOperatorKernel5
2494 latticeLichnerowiczKernel : EncodedEdgeOperatorKernel5
2495 residualKernel : EncodedEdgeOperatorKernel5
2496 residualOriginColumn :
2497 Fin 7 → PeriodicVertex5 → Fin 7 → ℝ
2498 residualDispCoeff :
2499 Fin 7 → PeriodicTTNormalEquationIdx5 → ℝ
2500 residualKernel_eq_sub :
2501 ∀ e f : Fin PeriodicTorus5.K.nE,
2502 residualKernel e f =
2503 encodedEdgeKernelResidual5 reggeHessianKernel latticeLichnerowiczKernel e f
2504 residualOriginColumn_eq_origin :
2505 ∀ (rowDisp : Fin 7) (colBase : PeriodicVertex5) (colDisp : Fin 7),
2506 residualOriginColumn rowDisp colBase colDisp =
2507 residualKernel
2508 (encodedOriginEdgeOfDisp5 rowDisp)
2509 (PeriodicTorus5.edgeEquiv.symm
2510 ({ base := colBase, disp := colDisp } : PeriodicEdge5))
2511 residualKernel_row_translation :
2512 ∀ e f : Fin PeriodicTorus5.K.nE,
2513 residualKernel e f =
2514 residualOriginColumn
2515 (PeriodicTorus5.edgeEquiv e).disp
2516 (PeriodicTorus5.edgeEquiv f).base
2517 (PeriodicTorus5.edgeEquiv f).disp
2518 residualOriginColumn_entry_formula :
2519 ∀ (rowDisp : Fin 7) (colBase : PeriodicVertex5) (colDisp : Fin 7),
2520 residualOriginColumn rowDisp colBase colDisp =
2521 periodicTTNormalEquationGeneratorMap5
2522 (residualDispCoeff rowDisp)
2523 ({ base := colBase, disp := colDisp } : PeriodicEdge5)
2524
2525/-- Raw typed-column residual certificate. This removes the explicit residual
2526matrix from the generator-facing input: the finite calculation supplies only the
2527origin-column residual table and a translation law for the encoded
2528`Regge - Lichnerowicz` residual. -/
2529structure EncodedTTHessianLichnerowiczRawOriginColumnFormulaData5 where
2530 reggeHessianKernel : EncodedEdgeOperatorKernel5
2531 latticeLichnerowiczKernel : EncodedEdgeOperatorKernel5
2532 residualOriginColumn :
2533 Fin 7 → PeriodicVertex5 → Fin 7 → ℝ
2534 residualDispCoeff :
2535 Fin 7 → PeriodicTTNormalEquationIdx5 → ℝ
2536 residualOriginColumn_eq_sub :
2537 ∀ (rowDisp : Fin 7) (colBase : PeriodicVertex5) (colDisp : Fin 7),
2538 residualOriginColumn rowDisp colBase colDisp =
2539 reggeHessianKernel
2540 (encodedOriginEdgeOfDisp5 rowDisp)
2541 (PeriodicTorus5.edgeEquiv.symm
2542 ({ base := colBase, disp := colDisp } : PeriodicEdge5)) -
2543 latticeLichnerowiczKernel
2544 (encodedOriginEdgeOfDisp5 rowDisp)
2545 (PeriodicTorus5.edgeEquiv.symm
2546 ({ base := colBase, disp := colDisp } : PeriodicEdge5))
2547 encodedResidual_row_translation :
2548 ∀ e f : Fin PeriodicTorus5.K.nE,
2549 encodedEdgeKernelResidual5 reggeHessianKernel latticeLichnerowiczKernel e f =
2550 residualOriginColumn
2551 (PeriodicTorus5.edgeEquiv e).disp
2552 (PeriodicTorus5.edgeEquiv f).base
2553 (PeriodicTorus5.edgeEquiv f).disp
2554 residualOriginColumn_entry_formula :
2555 ∀ (rowDisp : Fin 7) (colBase : PeriodicVertex5) (colDisp : Fin 7),
2556 residualOriginColumn rowDisp colBase colDisp =
2557 periodicTTNormalEquationGeneratorMap5
2558 (residualDispCoeff rowDisp)
2559 ({ base := colBase, disp := colDisp } : PeriodicEdge5)
2560
2561/-- Coefficient-only origin-column formula data for the TT
2562Hessian/Lichnerowicz residual. This is the smallest generator-facing surface:
2563it stores the two kernels and the seven residual-generator coefficient rows,
2564then proves the origin-row scalar formulas and the translated residual formula
2565directly against the generator map. -/
2566structure EncodedTTHessianLichnerowiczCoeffOriginColumnFormulaData5 where
2567 reggeHessianKernel : EncodedEdgeOperatorKernel5
2568 latticeLichnerowiczKernel : EncodedEdgeOperatorKernel5
2569 residualDispCoeff :
2570 Fin 7 → PeriodicTTNormalEquationIdx5 → ℝ
2571 originColumn_entry_formula :
2572 ∀ (rowDisp : Fin 7) (colBase : PeriodicVertex5) (colDisp : Fin 7),
2573 reggeHessianKernel
2574 (encodedOriginEdgeOfDisp5 rowDisp)
2575 (PeriodicTorus5.edgeEquiv.symm
2576 ({ base := colBase, disp := colDisp } : PeriodicEdge5)) -
2577 latticeLichnerowiczKernel
2578 (encodedOriginEdgeOfDisp5 rowDisp)
2579 (PeriodicTorus5.edgeEquiv.symm
2580 ({ base := colBase, disp := colDisp } : PeriodicEdge5)) =
2581 periodicTTNormalEquationGeneratorMap5
2582 (residualDispCoeff rowDisp)
2583 ({ base := colBase, disp := colDisp } : PeriodicEdge5)
2584 encodedResidual_entry_formula :
2585 ∀ e f : Fin PeriodicTorus5.K.nE,
2586 encodedEdgeKernelResidual5 reggeHessianKernel latticeLichnerowiczKernel e f =
2587 periodicTTNormalEquationGeneratorMap5
2588 (residualDispCoeff (PeriodicTorus5.edgeEquiv e).disp)
2589 (PeriodicTorus5.edgeEquiv f)
2590
2591/-- Coefficient-only translated residual formula data for the TT
2592Hessian/Lichnerowicz residual. This is a smaller certificate surface than
2593`EncodedTTHessianLichnerowiczCoeffOriginColumnFormulaData5`: once the translated
2594residual formula is known, the origin-column scalar formula follows by
2595specializing the row to the origin edge. -/
2596structure EncodedTTHessianLichnerowiczCoeffTranslatedFormulaData5 where
2597 reggeHessianKernel : EncodedEdgeOperatorKernel5
2598 latticeLichnerowiczKernel : EncodedEdgeOperatorKernel5
2599 residualDispCoeff :
2600 Fin 7 → PeriodicTTNormalEquationIdx5 → ℝ
2601 encodedResidual_entry_formula :
2602 ∀ e f : Fin PeriodicTorus5.K.nE,
2603 encodedEdgeKernelResidual5 reggeHessianKernel latticeLichnerowiczKernel e f =
2604 periodicTTNormalEquationGeneratorMap5
2605 (residualDispCoeff (PeriodicTorus5.edgeEquiv e).disp)
2606 (PeriodicTorus5.edgeEquiv f)
2607
2608/-- Origin-column formula data for a relative-frame translated residual
2609certificate. This records the part of the relative certificate that agrees with
2610the existing origin-row generator map, without asserting the absolute translated
2611formula for every row. -/
2612structure EncodedTTHessianLichnerowiczCoeffRelativeOriginColumnFormulaData5 where
2613 reggeHessianKernel : EncodedEdgeOperatorKernel5
2614 latticeLichnerowiczKernel : EncodedEdgeOperatorKernel5
2615 residualDispCoeff :
2616 Fin 7 → PeriodicTTNormalEquationIdx5 → ℝ
2617 originColumn_entry_formula :
2618 ∀ (rowDisp : Fin 7) (colBase : PeriodicVertex5) (colDisp : Fin 7),
2619 reggeHessianKernel
2620 (encodedOriginEdgeOfDisp5 rowDisp)
2621 (PeriodicTorus5.edgeEquiv.symm
2622 ({ base := colBase, disp := colDisp } : PeriodicEdge5)) -
2623 latticeLichnerowiczKernel
2624 (encodedOriginEdgeOfDisp5 rowDisp)
2625 (PeriodicTorus5.edgeEquiv.symm
2626 ({ base := colBase, disp := colDisp } : PeriodicEdge5)) =
2627 periodicTTNormalEquationGeneratorMap5
2628 (residualDispCoeff rowDisp)
2629 ({ base := colBase, disp := colDisp } : PeriodicEdge5)
2630
2631/-- Relative-frame coefficient-only translated residual formula data. Generated
2632physical stencils are translation-covariant after each row is re-based at its
2633own edge base. This diagnostic surface records that fact separately from the
2634stronger absolute translated certificate above. -/
2635structure EncodedTTHessianLichnerowiczCoeffRelativeTranslatedFormulaData5 where
2636 reggeHessianKernel : EncodedEdgeOperatorKernel5
2637 latticeLichnerowiczKernel : EncodedEdgeOperatorKernel5
2638 residualDispCoeff :
2639 Fin 7 → PeriodicTTNormalEquationIdx5 → ℝ
2640 encodedResidual_relative_entry_formula :
2641 ∀ e f : Fin PeriodicTorus5.K.nE,
2642 encodedEdgeKernelResidual5 reggeHessianKernel latticeLichnerowiczKernel e f =
2643 periodicTTNormalEquationGeneratorMap5
2644 (residualDispCoeff (PeriodicTorus5.edgeEquiv e).disp)
2645 (periodicRelativeColumnOfRow5
2646 (PeriodicTorus5.edgeEquiv e)
2647 (PeriodicTorus5.edgeEquiv f))
2648
2649/-- Relative-frame translated data plus the shifted-generator orthogonality
2650lemma is enough to prove the residual kernel vanishes on TT perturbations.
2651The separate orthogonality field is the exact mathematical gap left by the
2652Regge Schläfli candidate diagnostics. -/
2653structure EncodedTTHessianLichnerowiczCoeffRelativeTranslatedTTZeroData5 where
2654 relativeData : EncodedTTHessianLichnerowiczCoeffRelativeTranslatedFormulaData5
2655 relativeGeneratorOrthogonalOnTT : PeriodicRelativeTTGeneratorOrthogonalOnTT5
2656
2657/-- Relative-frame translated data plus the sharper generator-closure bridge.
2658This is the preferred mathematical target: prove closure once, then
2659orthogonality follows from the existing TT definition. -/
2660structure EncodedTTHessianLichnerowiczCoeffRelativeTranslatedClosureData5 where
2661 relativeData : EncodedTTHessianLichnerowiczCoeffRelativeTranslatedFormulaData5
2662 relativeGeneratorClosure : PeriodicRelativeTTGeneratorClosure5
2663
2664/-- Generator closure supplies the orthogonality package required by the
2665conditional relative-frame TT-zero route. -/
2666def EncodedTTHessianLichnerowiczCoeffRelativeTranslatedTTZeroData5.ofClosureData
2667 (D : EncodedTTHessianLichnerowiczCoeffRelativeTranslatedClosureData5) :
2668 EncodedTTHessianLichnerowiczCoeffRelativeTranslatedTTZeroData5 where
2669 relativeData := D.relativeData
2670 relativeGeneratorOrthogonalOnTT :=
2671 PeriodicRelativeTTGeneratorOrthogonalOnTT5.ofClosure D.relativeGeneratorClosure
2672
2673/-- The shifted-generator closure theorem is now proved, so a relative-frame
2674translated certificate alone supplies the TT-zero package. -/
2675def EncodedTTHessianLichnerowiczCoeffRelativeTranslatedTTZeroData5.ofRelativeTranslatedData
2676 (D : EncodedTTHessianLichnerowiczCoeffRelativeTranslatedFormulaData5) :
2677 EncodedTTHessianLichnerowiczCoeffRelativeTranslatedTTZeroData5 where
2678 relativeData := D
2679 relativeGeneratorOrthogonalOnTT :=
2680 PeriodicRelativeTTGeneratorOrthogonalOnTT5.ofClosure
2681 periodicRelativeTTGeneratorClosure5_holds
2682
2683/-- Rowwise kernel data supplies the TT Hessian/Lichnerowicz operator-match
2684data. -/
2685def PeriodicTTHessianLichnerowiczMatchData5.ofKernelRowData
2686 (D : PeriodicTTHessianLichnerowiczKernelRowData5) :
2687 PeriodicTTHessianLichnerowiczMatchData5 where
2688 reggeHessianTT := periodicEdgeKernelOperator5 D.reggeHessianKernel
2689 latticeLichnerowiczTT := periodicEdgeKernelOperator5 D.latticeLichnerowiczKernel
2690 matches_on_tt := by
2691 intro ε hε
2692 exact periodicEdgeKernelOperator5_eq_of_row_eq
2693 D.reggeHessianKernel D.latticeLichnerowiczKernel ε
2694 (D.kernel_rows_match_on_tt ε hε)
2695
2696/-- Entrywise kernel data supplies rowwise kernel data. -/
2697def PeriodicTTHessianLichnerowiczKernelRowData5.ofEntryData
2698 (D : PeriodicTTHessianLichnerowiczKernelEntryData5) :
2699 PeriodicTTHessianLichnerowiczKernelRowData5 where
2700 reggeHessianKernel := D.reggeHessianKernel
2701 latticeLichnerowiczKernel := D.latticeLichnerowiczKernel
2702 kernel_rows_match_on_tt := by
2703 intro ε _hε e
2704 have h :=
2705 periodicEdgeKernelOperator5_eq_of_kernel_eq
2706 D.reggeHessianKernel D.latticeLichnerowiczKernel
2707 D.kernel_entries_match ε
2708 exact congrFun h e
2709
2710/-- Residual-kernel vanishing on TT perturbations supplies rowwise kernel
2711matching on TT perturbations. -/
2712def PeriodicTTHessianLichnerowiczKernelRowData5.ofResidualTTZeroData
2713 (D : PeriodicTTHessianLichnerowiczKernelResidualTTZeroData5) :
2714 PeriodicTTHessianLichnerowiczKernelRowData5 where
2715 reggeHessianKernel := D.reggeHessianKernel
2716 latticeLichnerowiczKernel := D.latticeLichnerowiczKernel
2717 kernel_rows_match_on_tt := by
2718 intro ε hε e
2719 have hzero := congrFun (D.residual_zero_on_tt ε hε) e
2720 rw [periodicEdgeKernelOperator5_residual_eq_sub] at hzero
2721 exact sub_eq_zero.mp hzero
2722
2723/-- Residual-row generator-span data proves that the residual kernel annihilates
2724every TT perturbation. -/
2725def PeriodicTTHessianLichnerowiczKernelResidualTTZeroData5.ofResidualRowSpanData
2726 (D : PeriodicTTHessianLichnerowiczResidualRowSpanData5) :
2727 PeriodicTTHessianLichnerowiczKernelResidualTTZeroData5 where
2728 reggeHessianKernel := D.reggeHessianKernel
2729 latticeLichnerowiczKernel := D.latticeLichnerowiczKernel
2730 residual_zero_on_tt := by
2731 intro ε hε
2732 funext e
2733 rcases D.residual_row_mem_generator_span e with ⟨coeff, hrow⟩
2734 rw [periodicEdgeKernelOperator5_eq_inner_row]
2735 rw [hrow]
2736 exact periodicLongitudinalTTSubspace5_inner_generatorMap_eq_zero ε hε coeff
2737
2738/-- Explicit residual-row coefficients supply residual-row span data. -/
2739def PeriodicTTHessianLichnerowiczResidualRowSpanData5.ofRowCoeffData
2740 (D : PeriodicTTHessianLichnerowiczResidualRowCoeffData5) :
2741 PeriodicTTHessianLichnerowiczResidualRowSpanData5 where
2742 reggeHessianKernel := D.reggeHessianKernel
2743 latticeLichnerowiczKernel := D.latticeLichnerowiczKernel
2744 residual_row_mem_generator_span := by
2745 intro e
2746 exact ⟨D.residualRowCoeff e, D.residual_row_eq_generatorMap e⟩
2747
2748/-- Entrywise residual-row coefficients supply row-coefficient data. -/
2749def PeriodicTTHessianLichnerowiczResidualRowCoeffData5.ofEntryData
2750 (D : PeriodicTTHessianLichnerowiczResidualRowCoeffEntryData5) :
2751 PeriodicTTHessianLichnerowiczResidualRowCoeffData5 where
2752 reggeHessianKernel := D.reggeHessianKernel
2753 latticeLichnerowiczKernel := D.latticeLichnerowiczKernel
2754 residualRowCoeff := D.residualRowCoeff
2755 residual_row_eq_generatorMap := by
2756 intro e
2757 funext f
2758 exact D.residual_entry_eq_generatorMap e f
2759
2760/-- Raw scalar residual formulas supply entrywise residual-row coefficients. -/
2761def PeriodicTTHessianLichnerowiczResidualRowCoeffEntryData5.ofFormulaData
2762 (D : PeriodicTTHessianLichnerowiczResidualEntryFormulaData5) :
2763 PeriodicTTHessianLichnerowiczResidualRowCoeffEntryData5 where
2764 reggeHessianKernel := D.reggeHessianKernel
2765 latticeLichnerowiczKernel := D.latticeLichnerowiczKernel
2766 residualRowCoeff := D.residualRowCoeff
2767 residual_entry_eq_generatorMap := by
2768 intro e f
2769 unfold periodicEdgeKernelResidual5
2770 exact D.residual_entry_formula e f
2771
2772/-- Encoded finite-index formulas supply the typed periodic raw scalar formula
2773data by transporting both kernels through `PeriodicTorus5.edgeEquiv`. -/
2774def PeriodicTTHessianLichnerowiczResidualEntryFormulaData5.ofEncodedData
2775 (D : EncodedTTHessianLichnerowiczResidualEntryFormulaData5) :
2776 PeriodicTTHessianLichnerowiczResidualEntryFormulaData5 where
2777 reggeHessianKernel := encodedToPeriodicEdgeKernel5 D.reggeHessianKernel
2778 latticeLichnerowiczKernel := encodedToPeriodicEdgeKernel5 D.latticeLichnerowiczKernel
2779 residualRowCoeff := D.residualRowCoeff
2780 residual_entry_formula := by
2781 intro e f
2782 have h :=
2783 D.encoded_residual_entry_formula
2784 (PeriodicTorus5.edgeEquiv.symm e)
2785 (PeriodicTorus5.edgeEquiv.symm f)
2786 simpa [encodedToPeriodicEdgeKernel5] using h
2787
2788/-- Encoded residual-kernel certificates supply encoded raw scalar formula
2789data. -/
2790def EncodedTTHessianLichnerowiczResidualEntryFormulaData5.ofResidualKernelData
2791 (D : EncodedTTHessianLichnerowiczResidualKernelFormulaData5) :
2792 EncodedTTHessianLichnerowiczResidualEntryFormulaData5 where
2793 reggeHessianKernel := D.reggeHessianKernel
2794 latticeLichnerowiczKernel := D.latticeLichnerowiczKernel
2795 residualRowCoeff := D.residualRowCoeff
2796 encoded_residual_entry_formula := by
2797 intro e f
2798 rw [← encodedEdgeKernelResidual5_apply D.reggeHessianKernel D.latticeLichnerowiczKernel e f]
2799 rw [← D.residualKernel_eq_sub e f]
2800 exact D.residualKernel_entry_formula e f
2801
2802/-- Displacement-row certificates supply encoded residual-kernel certificates by
2803using the edge displacement as the row coefficient index. -/
2804def EncodedTTHessianLichnerowiczResidualKernelFormulaData5.ofDispRowData
2805 (D : EncodedTTHessianLichnerowiczResidualDispRowFormulaData5) :
2806 EncodedTTHessianLichnerowiczResidualKernelFormulaData5 where
2807 reggeHessianKernel := D.reggeHessianKernel
2808 latticeLichnerowiczKernel := D.latticeLichnerowiczKernel
2809 residualKernel := D.residualKernel
2810 residualRowCoeff := fun edge => D.residualDispCoeff edge.disp
2811 residualKernel_eq_sub := D.residualKernel_eq_sub
2812 residualKernel_entry_formula := by
2813 intro e f
2814 rw [D.residualKernel_row_translation e f]
2815 exact D.residual_origin_row_formula (PeriodicTorus5.edgeEquiv e).disp f
2816
2817/-- Seven-row origin-table certificates supply displacement-row certificates. -/
2818def EncodedTTHessianLichnerowiczResidualDispRowFormulaData5.ofOriginRowTableData
2819 (D : EncodedTTHessianLichnerowiczResidualOriginRowTableFormulaData5) :
2820 EncodedTTHessianLichnerowiczResidualDispRowFormulaData5 where
2821 reggeHessianKernel := D.reggeHessianKernel
2822 latticeLichnerowiczKernel := D.latticeLichnerowiczKernel
2823 residualKernel := D.residualKernel
2824 residualDispCoeff := D.residualDispCoeff
2825 residualKernel_eq_sub := D.residualKernel_eq_sub
2826 residualKernel_row_translation := by
2827 intro e f
2828 rw [D.residualKernel_row_translation e f]
2829 rw [D.residualOriginRow_eq_origin]
2830 residual_origin_row_formula := by
2831 intro disp f
2832 rw [← D.residualOriginRow_eq_origin disp f]
2833 exact D.residualOriginRow_entry_formula disp f
2834
2835/-- Typed-column origin-table certificates supply seven-row origin-table
2836certificates. -/
2837def EncodedTTHessianLichnerowiczResidualOriginRowTableFormulaData5.ofOriginColumnTableData
2838 (D : EncodedTTHessianLichnerowiczResidualOriginColumnTableFormulaData5) :
2839 EncodedTTHessianLichnerowiczResidualOriginRowTableFormulaData5 where
2840 reggeHessianKernel := D.reggeHessianKernel
2841 latticeLichnerowiczKernel := D.latticeLichnerowiczKernel
2842 residualKernel := D.residualKernel
2843 residualOriginRow := fun rowDisp f =>
2844 D.residualOriginColumn
2845 rowDisp
2846 (PeriodicTorus5.edgeEquiv f).base
2847 (PeriodicTorus5.edgeEquiv f).disp
2848 residualDispCoeff := D.residualDispCoeff
2849 residualKernel_eq_sub := D.residualKernel_eq_sub
2850 residualOriginRow_eq_origin := by
2851 intro rowDisp f
2852 have hcol :
2853 ({ base := (PeriodicTorus5.edgeEquiv f).base,
2854 disp := (PeriodicTorus5.edgeEquiv f).disp } : PeriodicEdge5) =
2855 PeriodicTorus5.edgeEquiv f := by
2856 cases PeriodicTorus5.edgeEquiv f
2857 rfl
2858 have hidx :
2859 PeriodicTorus5.edgeEquiv.symm
2860 ({ base := (PeriodicTorus5.edgeEquiv f).base,
2861 disp := (PeriodicTorus5.edgeEquiv f).disp } : PeriodicEdge5) = f := by
2862 rw [hcol]
2863 simp
2864 rw [D.residualOriginColumn_eq_origin]
2865 rw [hidx]
2866 residualKernel_row_translation := D.residualKernel_row_translation
2867 residualOriginRow_entry_formula := by
2868 intro rowDisp f
2869 simpa using
2870 D.residualOriginColumn_entry_formula
2871 rowDisp
2872 (PeriodicTorus5.edgeEquiv f).base
2873 (PeriodicTorus5.edgeEquiv f).disp
2874
2875/-- Raw typed-column certificates supply typed-column origin-table certificates
2876by using `encodedEdgeKernelResidual5` as the residual matrix. -/
2877def EncodedTTHessianLichnerowiczResidualOriginColumnTableFormulaData5.ofRawOriginColumnData
2878 (D : EncodedTTHessianLichnerowiczRawOriginColumnFormulaData5) :
2879 EncodedTTHessianLichnerowiczResidualOriginColumnTableFormulaData5 where
2880 reggeHessianKernel := D.reggeHessianKernel
2881 latticeLichnerowiczKernel := D.latticeLichnerowiczKernel
2882 residualKernel :=
2883 encodedEdgeKernelResidual5 D.reggeHessianKernel D.latticeLichnerowiczKernel
2884 residualOriginColumn := D.residualOriginColumn
2885 residualDispCoeff := D.residualDispCoeff
2886 residualKernel_eq_sub := by
2887 intro e f
2888 rfl
2889 residualOriginColumn_eq_origin := by
2890 intro rowDisp colBase colDisp
2891 rw [D.residualOriginColumn_eq_sub]
2892 rfl
2893 residualKernel_row_translation := D.encodedResidual_row_translation
2894 residualOriginColumn_entry_formula := D.residualOriginColumn_entry_formula
2895
2896/-- Coefficient-only origin-column formulas supply raw typed-column
2897certificates by reconstructing the origin residual table from the generator
2898map. -/
2899def EncodedTTHessianLichnerowiczRawOriginColumnFormulaData5.ofCoeffOriginColumnData
2900 (D : EncodedTTHessianLichnerowiczCoeffOriginColumnFormulaData5) :
2901 EncodedTTHessianLichnerowiczRawOriginColumnFormulaData5 where
2902 reggeHessianKernel := D.reggeHessianKernel
2903 latticeLichnerowiczKernel := D.latticeLichnerowiczKernel
2904 residualOriginColumn :=
2905 fun rowDisp colBase colDisp =>
2906 periodicTTNormalEquationGeneratorMap5
2907 (D.residualDispCoeff rowDisp)
2908 ({ base := colBase, disp := colDisp } : PeriodicEdge5)
2909 residualDispCoeff := D.residualDispCoeff
2910 residualOriginColumn_eq_sub := by
2911 intro rowDisp colBase colDisp
2912 exact (D.originColumn_entry_formula rowDisp colBase colDisp).symm
2913 encodedResidual_row_translation := by
2914 intro e f
2915 exact D.encodedResidual_entry_formula e f
2916 residualOriginColumn_entry_formula := by
2917 intro rowDisp colBase colDisp
2918 rfl
2919
2920/-- Translated coefficient-only formulas supply the previous coefficient-only
2921origin-column certificate by specializing the translated formula to the origin
2922edge. -/
2923def EncodedTTHessianLichnerowiczCoeffOriginColumnFormulaData5.ofCoeffTranslatedData
2924 (D : EncodedTTHessianLichnerowiczCoeffTranslatedFormulaData5) :
2925 EncodedTTHessianLichnerowiczCoeffOriginColumnFormulaData5 where
2926 reggeHessianKernel := D.reggeHessianKernel
2927 latticeLichnerowiczKernel := D.latticeLichnerowiczKernel
2928 residualDispCoeff := D.residualDispCoeff
2929 originColumn_entry_formula := by
2930 intro rowDisp colBase colDisp
2931 have h :=
2932 D.encodedResidual_entry_formula
2933 (encodedOriginEdgeOfDisp5 rowDisp)
2934 (PeriodicTorus5.edgeEquiv.symm
2935 ({ base := colBase, disp := colDisp } : PeriodicEdge5))
2936 simpa [encodedEdgeKernelResidual5, encodedOriginEdgeOfDisp5_equiv] using h
2937 encodedResidual_entry_formula := D.encodedResidual_entry_formula
2938
2939/-- Relative translated coefficient-only formulas specialize to the same
2940origin-column formulas as the absolute translated surface. This is only an
2941origin-row consequence: it does not assert the stronger absolute row formula. -/
2942def EncodedTTHessianLichnerowiczCoeffRelativeOriginColumnFormulaData5.ofCoeffRelativeTranslatedData
2943 (D : EncodedTTHessianLichnerowiczCoeffRelativeTranslatedFormulaData5) :
2944 EncodedTTHessianLichnerowiczCoeffRelativeOriginColumnFormulaData5 where
2945 reggeHessianKernel := D.reggeHessianKernel
2946 latticeLichnerowiczKernel := D.latticeLichnerowiczKernel
2947 residualDispCoeff := D.residualDispCoeff
2948 originColumn_entry_formula := by
2949 intro rowDisp colBase colDisp
2950 have h :=
2951 D.encodedResidual_relative_entry_formula
2952 (encodedOriginEdgeOfDisp5 rowDisp)
2953 (PeriodicTorus5.edgeEquiv.symm
2954 ({ base := colBase, disp := colDisp } : PeriodicEdge5))
2955 simpa [encodedEdgeKernelResidual5, encodedOriginEdgeOfDisp5_equiv,
2956 periodicRelativeColumnOfOriginDisp5] using h
2957
2958/-- Raw typed-column certificates supply seven-row origin-table certificates. -/
2959def EncodedTTHessianLichnerowiczResidualOriginRowTableFormulaData5.ofRawOriginColumnData
2960 (D : EncodedTTHessianLichnerowiczRawOriginColumnFormulaData5) :
2961 EncodedTTHessianLichnerowiczResidualOriginRowTableFormulaData5 :=
2962 EncodedTTHessianLichnerowiczResidualOriginRowTableFormulaData5.ofOriginColumnTableData
2963 (EncodedTTHessianLichnerowiczResidualOriginColumnTableFormulaData5.ofRawOriginColumnData D)
2964
2965/-- Seven-row origin-table certificates supply encoded residual-kernel
2966certificates. -/
2967def EncodedTTHessianLichnerowiczResidualKernelFormulaData5.ofOriginRowTableData
2968 (D : EncodedTTHessianLichnerowiczResidualOriginRowTableFormulaData5) :
2969 EncodedTTHessianLichnerowiczResidualKernelFormulaData5 :=
2970 EncodedTTHessianLichnerowiczResidualKernelFormulaData5.ofDispRowData
2971 (EncodedTTHessianLichnerowiczResidualDispRowFormulaData5.ofOriginRowTableData D)
2972
2973/-- Typed-column origin-table certificates supply encoded residual-kernel
2974certificates. -/
2975def EncodedTTHessianLichnerowiczResidualKernelFormulaData5.ofOriginColumnTableData
2976 (D : EncodedTTHessianLichnerowiczResidualOriginColumnTableFormulaData5) :
2977 EncodedTTHessianLichnerowiczResidualKernelFormulaData5 :=
2978 EncodedTTHessianLichnerowiczResidualKernelFormulaData5.ofOriginRowTableData
2979 (EncodedTTHessianLichnerowiczResidualOriginRowTableFormulaData5.ofOriginColumnTableData D)
2980
2981/-- Raw typed-column certificates supply encoded residual-kernel certificates. -/
2982def EncodedTTHessianLichnerowiczResidualKernelFormulaData5.ofRawOriginColumnData
2983 (D : EncodedTTHessianLichnerowiczRawOriginColumnFormulaData5) :
2984 EncodedTTHessianLichnerowiczResidualKernelFormulaData5 :=
2985 EncodedTTHessianLichnerowiczResidualKernelFormulaData5.ofOriginColumnTableData
2986 (EncodedTTHessianLichnerowiczResidualOriginColumnTableFormulaData5.ofRawOriginColumnData D)
2987
2988/-- Displacement-row certificates supply encoded raw scalar formula data. -/
2989def EncodedTTHessianLichnerowiczResidualEntryFormulaData5.ofDispRowData
2990 (D : EncodedTTHessianLichnerowiczResidualDispRowFormulaData5) :
2991 EncodedTTHessianLichnerowiczResidualEntryFormulaData5 :=
2992 EncodedTTHessianLichnerowiczResidualEntryFormulaData5.ofResidualKernelData
2993 (EncodedTTHessianLichnerowiczResidualKernelFormulaData5.ofDispRowData D)
2994
2995/-- Seven-row origin-table certificates supply encoded raw scalar formula data. -/
2996def EncodedTTHessianLichnerowiczResidualEntryFormulaData5.ofOriginRowTableData
2997 (D : EncodedTTHessianLichnerowiczResidualOriginRowTableFormulaData5) :
2998 EncodedTTHessianLichnerowiczResidualEntryFormulaData5 :=
2999 EncodedTTHessianLichnerowiczResidualEntryFormulaData5.ofDispRowData
3000 (EncodedTTHessianLichnerowiczResidualDispRowFormulaData5.ofOriginRowTableData D)
3001
3002/-- Typed-column origin-table certificates supply encoded raw scalar formula
3003data. -/
3004def EncodedTTHessianLichnerowiczResidualEntryFormulaData5.ofOriginColumnTableData
3005 (D : EncodedTTHessianLichnerowiczResidualOriginColumnTableFormulaData5) :
3006 EncodedTTHessianLichnerowiczResidualEntryFormulaData5 :=
3007 EncodedTTHessianLichnerowiczResidualEntryFormulaData5.ofOriginRowTableData
3008 (EncodedTTHessianLichnerowiczResidualOriginRowTableFormulaData5.ofOriginColumnTableData D)
3009
3010/-- Raw typed-column certificates supply encoded raw scalar formula data. -/
3011def EncodedTTHessianLichnerowiczResidualEntryFormulaData5.ofRawOriginColumnData
3012 (D : EncodedTTHessianLichnerowiczRawOriginColumnFormulaData5) :
3013 EncodedTTHessianLichnerowiczResidualEntryFormulaData5 :=
3014 EncodedTTHessianLichnerowiczResidualEntryFormulaData5.ofOriginColumnTableData
3015 (EncodedTTHessianLichnerowiczResidualOriginColumnTableFormulaData5.ofRawOriginColumnData D)
3016
3017
3018/-- Encoded residual-kernel certificates supply the typed periodic raw scalar
3019formula data. -/
3020def PeriodicTTHessianLichnerowiczResidualEntryFormulaData5.ofEncodedResidualKernelData
3021 (D : EncodedTTHessianLichnerowiczResidualKernelFormulaData5) :
3022 PeriodicTTHessianLichnerowiczResidualEntryFormulaData5 :=
3023 PeriodicTTHessianLichnerowiczResidualEntryFormulaData5.ofEncodedData
3024 (EncodedTTHessianLichnerowiczResidualEntryFormulaData5.ofResidualKernelData D)
3025
3026/-- Displacement-row certificates supply the typed periodic raw scalar formula
3027data. -/
3028def PeriodicTTHessianLichnerowiczResidualEntryFormulaData5.ofDispRowData
3029 (D : EncodedTTHessianLichnerowiczResidualDispRowFormulaData5) :
3030 PeriodicTTHessianLichnerowiczResidualEntryFormulaData5 :=
3031 PeriodicTTHessianLichnerowiczResidualEntryFormulaData5.ofEncodedResidualKernelData
3032 (EncodedTTHessianLichnerowiczResidualKernelFormulaData5.ofDispRowData D)
3033
3034/-- Seven-row origin-table certificates supply the typed periodic raw scalar
3035formula data. -/
3036def PeriodicTTHessianLichnerowiczResidualEntryFormulaData5.ofOriginRowTableData
3037 (D : EncodedTTHessianLichnerowiczResidualOriginRowTableFormulaData5) :
3038 PeriodicTTHessianLichnerowiczResidualEntryFormulaData5 :=
3039 PeriodicTTHessianLichnerowiczResidualEntryFormulaData5.ofDispRowData
3040 (EncodedTTHessianLichnerowiczResidualDispRowFormulaData5.ofOriginRowTableData D)
3041
3042/-- Typed-column origin-table certificates supply the typed periodic raw scalar
3043formula data. -/
3044def PeriodicTTHessianLichnerowiczResidualEntryFormulaData5.ofOriginColumnTableData
3045 (D : EncodedTTHessianLichnerowiczResidualOriginColumnTableFormulaData5) :
3046 PeriodicTTHessianLichnerowiczResidualEntryFormulaData5 :=
3047 PeriodicTTHessianLichnerowiczResidualEntryFormulaData5.ofOriginRowTableData
3048 (EncodedTTHessianLichnerowiczResidualOriginRowTableFormulaData5.ofOriginColumnTableData D)
3049
3050/-- Raw typed-column certificates supply the typed periodic raw scalar formula
3051data. -/
3052def PeriodicTTHessianLichnerowiczResidualEntryFormulaData5.ofRawOriginColumnData
3053 (D : EncodedTTHessianLichnerowiczRawOriginColumnFormulaData5) :
3054 PeriodicTTHessianLichnerowiczResidualEntryFormulaData5 :=
3055 PeriodicTTHessianLichnerowiczResidualEntryFormulaData5.ofOriginColumnTableData
3056 (EncodedTTHessianLichnerowiczResidualOriginColumnTableFormulaData5.ofRawOriginColumnData D)
3057
3058
3059
3060/-- Encoded finite-index formulas supply entrywise residual-row coefficients. -/
3061def PeriodicTTHessianLichnerowiczResidualRowCoeffEntryData5.ofEncodedData
3062 (D : EncodedTTHessianLichnerowiczResidualEntryFormulaData5) :
3063 PeriodicTTHessianLichnerowiczResidualRowCoeffEntryData5 :=
3064 PeriodicTTHessianLichnerowiczResidualRowCoeffEntryData5.ofFormulaData
3065 (PeriodicTTHessianLichnerowiczResidualEntryFormulaData5.ofEncodedData D)
3066
3067/-- Encoded residual-kernel certificates supply entrywise residual-row
3068coefficients. -/
3069def PeriodicTTHessianLichnerowiczResidualRowCoeffEntryData5.ofEncodedResidualKernelData
3070 (D : EncodedTTHessianLichnerowiczResidualKernelFormulaData5) :
3071 PeriodicTTHessianLichnerowiczResidualRowCoeffEntryData5 :=
3072 PeriodicTTHessianLichnerowiczResidualRowCoeffEntryData5.ofEncodedData
3073 (EncodedTTHessianLichnerowiczResidualEntryFormulaData5.ofResidualKernelData D)
3074
3075/-- Raw scalar residual formulas supply row-coefficient data. -/
3076def PeriodicTTHessianLichnerowiczResidualRowCoeffData5.ofFormulaData
3077 (D : PeriodicTTHessianLichnerowiczResidualEntryFormulaData5) :
3078 PeriodicTTHessianLichnerowiczResidualRowCoeffData5 :=
3079 PeriodicTTHessianLichnerowiczResidualRowCoeffData5.ofEntryData
3080 (PeriodicTTHessianLichnerowiczResidualRowCoeffEntryData5.ofFormulaData D)
3081
3082/-- Encoded finite-index formulas supply row-coefficient data. -/
3083def PeriodicTTHessianLichnerowiczResidualRowCoeffData5.ofEncodedData
3084 (D : EncodedTTHessianLichnerowiczResidualEntryFormulaData5) :
3085 PeriodicTTHessianLichnerowiczResidualRowCoeffData5 :=
3086 PeriodicTTHessianLichnerowiczResidualRowCoeffData5.ofFormulaData
3087 (PeriodicTTHessianLichnerowiczResidualEntryFormulaData5.ofEncodedData D)
3088
3089/-- Entrywise residual-row coefficients supply residual-row span data. -/
3090def PeriodicTTHessianLichnerowiczResidualRowSpanData5.ofEntryCoeffData
3091 (D : PeriodicTTHessianLichnerowiczResidualRowCoeffEntryData5) :
3092 PeriodicTTHessianLichnerowiczResidualRowSpanData5 :=
3093 PeriodicTTHessianLichnerowiczResidualRowSpanData5.ofRowCoeffData
3094 (PeriodicTTHessianLichnerowiczResidualRowCoeffData5.ofEntryData D)
3095
3096/-- Raw scalar residual formulas supply residual-row span data. -/
3097def PeriodicTTHessianLichnerowiczResidualRowSpanData5.ofFormulaData
3098 (D : PeriodicTTHessianLichnerowiczResidualEntryFormulaData5) :
3099 PeriodicTTHessianLichnerowiczResidualRowSpanData5 :=
3100 PeriodicTTHessianLichnerowiczResidualRowSpanData5.ofEntryCoeffData
3101 (PeriodicTTHessianLichnerowiczResidualRowCoeffEntryData5.ofFormulaData D)
3102
3103/-- Encoded finite-index formulas supply residual-row span data. -/
3104def PeriodicTTHessianLichnerowiczResidualRowSpanData5.ofEncodedData
3105 (D : EncodedTTHessianLichnerowiczResidualEntryFormulaData5) :
3106 PeriodicTTHessianLichnerowiczResidualRowSpanData5 :=
3107 PeriodicTTHessianLichnerowiczResidualRowSpanData5.ofFormulaData
3108 (PeriodicTTHessianLichnerowiczResidualEntryFormulaData5.ofEncodedData D)
3109
3110/-- Explicit residual-row coefficients supply residual-kernel zero-on-TT data. -/
3111def PeriodicTTHessianLichnerowiczKernelResidualTTZeroData5.ofRowCoeffData
3112 (D : PeriodicTTHessianLichnerowiczResidualRowCoeffData5) :
3113 PeriodicTTHessianLichnerowiczKernelResidualTTZeroData5 :=
3114 PeriodicTTHessianLichnerowiczKernelResidualTTZeroData5.ofResidualRowSpanData
3115 (PeriodicTTHessianLichnerowiczResidualRowSpanData5.ofRowCoeffData D)
3116
3117/-- Entrywise residual-row coefficients supply residual-kernel zero-on-TT data. -/
3118def PeriodicTTHessianLichnerowiczKernelResidualTTZeroData5.ofEntryCoeffData
3119 (D : PeriodicTTHessianLichnerowiczResidualRowCoeffEntryData5) :
3120 PeriodicTTHessianLichnerowiczKernelResidualTTZeroData5 :=
3121 PeriodicTTHessianLichnerowiczKernelResidualTTZeroData5.ofRowCoeffData
3122 (PeriodicTTHessianLichnerowiczResidualRowCoeffData5.ofEntryData D)
3123
3124/-- Raw scalar residual formulas supply residual-kernel zero-on-TT data. -/
3125def PeriodicTTHessianLichnerowiczKernelResidualTTZeroData5.ofFormulaData
3126 (D : PeriodicTTHessianLichnerowiczResidualEntryFormulaData5) :
3127 PeriodicTTHessianLichnerowiczKernelResidualTTZeroData5 :=
3128 PeriodicTTHessianLichnerowiczKernelResidualTTZeroData5.ofEntryCoeffData
3129 (PeriodicTTHessianLichnerowiczResidualRowCoeffEntryData5.ofFormulaData D)
3130
3131/-- Encoded finite-index formulas supply residual-kernel zero-on-TT data. -/
3132def PeriodicTTHessianLichnerowiczKernelResidualTTZeroData5.ofEncodedData
3133 (D : EncodedTTHessianLichnerowiczResidualEntryFormulaData5) :
3134 PeriodicTTHessianLichnerowiczKernelResidualTTZeroData5 :=
3135 PeriodicTTHessianLichnerowiczKernelResidualTTZeroData5.ofFormulaData
3136 (PeriodicTTHessianLichnerowiczResidualEntryFormulaData5.ofEncodedData D)
3137
3138/-- Relative-frame translated certificates prove residual-kernel zero on TT once
3139the shifted-generator orthogonality lemma is supplied. -/
3140def PeriodicTTHessianLichnerowiczKernelResidualTTZeroData5.ofCoeffRelativeTranslatedTTZeroData
3141 (D : EncodedTTHessianLichnerowiczCoeffRelativeTranslatedTTZeroData5) :
3142 PeriodicTTHessianLichnerowiczKernelResidualTTZeroData5 where
3143 reggeHessianKernel := encodedToPeriodicEdgeKernel5 D.relativeData.reggeHessianKernel
3144 latticeLichnerowiczKernel := encodedToPeriodicEdgeKernel5 D.relativeData.latticeLichnerowiczKernel
3145 residual_zero_on_tt := by
3146 intro ε hε
3147 funext row
3148 rw [periodicEdgeKernelOperator5_eq_inner_row]
3149 have hrow :
3150 periodicEdgeKernelRowVector5
3151 (periodicEdgeKernelResidual5
3152 (encodedToPeriodicEdgeKernel5 D.relativeData.reggeHessianKernel)
3153 (encodedToPeriodicEdgeKernel5 D.relativeData.latticeLichnerowiczKernel))
3154 row =
3155 periodicRelativeTTNormalEquationGeneratorMap5 row
3156 (D.relativeData.residualDispCoeff row.disp) := by
3157 funext col
3158 unfold periodicEdgeKernelRowVector5 periodicEdgeKernelResidual5
3159 encodedToPeriodicEdgeKernel5 periodicRelativeTTNormalEquationGeneratorMap5
3160 simpa [encodedEdgeKernelResidual5] using
3161 D.relativeData.encodedResidual_relative_entry_formula
3162 (PeriodicTorus5.edgeEquiv.symm row)
3163 (PeriodicTorus5.edgeEquiv.symm col)
3164 rw [hrow]
3165 exact D.relativeGeneratorOrthogonalOnTT ε hε row
3166 (D.relativeData.residualDispCoeff row.disp)
3167
3168/-- Relative-frame translated closure data proves residual-kernel zero on TT. -/
3169def PeriodicTTHessianLichnerowiczKernelResidualTTZeroData5.ofCoeffRelativeTranslatedClosureData
3170 (D : EncodedTTHessianLichnerowiczCoeffRelativeTranslatedClosureData5) :
3171 PeriodicTTHessianLichnerowiczKernelResidualTTZeroData5 :=
3172 PeriodicTTHessianLichnerowiczKernelResidualTTZeroData5.ofCoeffRelativeTranslatedTTZeroData
3173 (EncodedTTHessianLichnerowiczCoeffRelativeTranslatedTTZeroData5.ofClosureData D)
3174
3175/-- Relative-frame translated certificates prove residual-kernel zero on TT
3176unconditionally, because the shifted-generator closure theorem is proved above. -/
3177def PeriodicTTHessianLichnerowiczKernelResidualTTZeroData5.ofCoeffRelativeTranslatedData
3178 (D : EncodedTTHessianLichnerowiczCoeffRelativeTranslatedFormulaData5) :
3179 PeriodicTTHessianLichnerowiczKernelResidualTTZeroData5 :=
3180 PeriodicTTHessianLichnerowiczKernelResidualTTZeroData5.ofCoeffRelativeTranslatedTTZeroData
3181 (EncodedTTHessianLichnerowiczCoeffRelativeTranslatedTTZeroData5.ofRelativeTranslatedData D)
3182
3183/-- Entrywise kernel data supplies the TT Hessian/Lichnerowicz operator-match
3184data. -/
3185def PeriodicTTHessianLichnerowiczMatchData5.ofKernelEntryData
3186 (D : PeriodicTTHessianLichnerowiczKernelEntryData5) :
3187 PeriodicTTHessianLichnerowiczMatchData5 :=
3188 PeriodicTTHessianLichnerowiczMatchData5.ofKernelRowData
3189 (PeriodicTTHessianLichnerowiczKernelRowData5.ofEntryData D)
3190
3191/-- Residual-kernel vanishing on TT perturbations supplies the TT
3192Hessian/Lichnerowicz operator-match data. -/
3193def PeriodicTTHessianLichnerowiczMatchData5.ofResidualTTZeroData
3194 (D : PeriodicTTHessianLichnerowiczKernelResidualTTZeroData5) :
3195 PeriodicTTHessianLichnerowiczMatchData5 :=
3196 PeriodicTTHessianLichnerowiczMatchData5.ofKernelRowData
3197 (PeriodicTTHessianLichnerowiczKernelRowData5.ofResidualTTZeroData D)
3198
3199/-- Relative-frame translated coefficient certificates supply TT
3200Hessian/Lichnerowicz operator-match data through the proved shifted-generator
3201closure theorem. -/
3202def PeriodicTTHessianLichnerowiczMatchData5.ofCoeffRelativeTranslatedData
3203 (D : EncodedTTHessianLichnerowiczCoeffRelativeTranslatedFormulaData5) :
3204 PeriodicTTHessianLichnerowiczMatchData5 :=
3205 PeriodicTTHessianLichnerowiczMatchData5.ofResidualTTZeroData
3206 (PeriodicTTHessianLichnerowiczKernelResidualTTZeroData5.ofCoeffRelativeTranslatedData D)
3207
3208/-- Residual-row generator-span data supplies the TT Hessian/Lichnerowicz
3209operator-match data. -/
3210def PeriodicTTHessianLichnerowiczMatchData5.ofResidualRowSpanData
3211 (D : PeriodicTTHessianLichnerowiczResidualRowSpanData5) :
3212 PeriodicTTHessianLichnerowiczMatchData5 :=
3213 PeriodicTTHessianLichnerowiczMatchData5.ofResidualTTZeroData
3214 (PeriodicTTHessianLichnerowiczKernelResidualTTZeroData5.ofResidualRowSpanData D)
3215
3216/-- Explicit residual-row coefficients supply TT Hessian/Lichnerowicz
3217operator-match data. -/
3218def PeriodicTTHessianLichnerowiczMatchData5.ofRowCoeffData
3219 (D : PeriodicTTHessianLichnerowiczResidualRowCoeffData5) :
3220 PeriodicTTHessianLichnerowiczMatchData5 :=
3221 PeriodicTTHessianLichnerowiczMatchData5.ofResidualRowSpanData
3222 (PeriodicTTHessianLichnerowiczResidualRowSpanData5.ofRowCoeffData D)
3223
3224/-- Entrywise residual-row coefficients supply TT Hessian/Lichnerowicz
3225operator-match data. -/
3226def PeriodicTTHessianLichnerowiczMatchData5.ofEntryCoeffData
3227 (D : PeriodicTTHessianLichnerowiczResidualRowCoeffEntryData5) :
3228 PeriodicTTHessianLichnerowiczMatchData5 :=
3229 PeriodicTTHessianLichnerowiczMatchData5.ofRowCoeffData
3230 (PeriodicTTHessianLichnerowiczResidualRowCoeffData5.ofEntryData D)
3231
3232/-- Raw scalar residual formulas supply TT Hessian/Lichnerowicz operator-match
3233data. -/
3234def PeriodicTTHessianLichnerowiczMatchData5.ofFormulaData
3235 (D : PeriodicTTHessianLichnerowiczResidualEntryFormulaData5) :
3236 PeriodicTTHessianLichnerowiczMatchData5 :=
3237 PeriodicTTHessianLichnerowiczMatchData5.ofEntryCoeffData
3238 (PeriodicTTHessianLichnerowiczResidualRowCoeffEntryData5.ofFormulaData D)
3239
3240/-- Encoded finite-index formulas supply TT Hessian/Lichnerowicz operator-match
3241data. -/
3242def PeriodicTTHessianLichnerowiczMatchData5.ofEncodedData
3243 (D : EncodedTTHessianLichnerowiczResidualEntryFormulaData5) :
3244 PeriodicTTHessianLichnerowiczMatchData5 :=
3245 PeriodicTTHessianLichnerowiczMatchData5.ofFormulaData
3246 (PeriodicTTHessianLichnerowiczResidualEntryFormulaData5.ofEncodedData D)
3247
3248/-- Encoded residual-kernel certificates supply TT Hessian/Lichnerowicz
3249operator-match data. -/
3250def PeriodicTTHessianLichnerowiczMatchData5.ofEncodedResidualKernelData
3251 (D : EncodedTTHessianLichnerowiczResidualKernelFormulaData5) :
3252 PeriodicTTHessianLichnerowiczMatchData5 :=
3253 PeriodicTTHessianLichnerowiczMatchData5.ofEncodedData
3254 (EncodedTTHessianLichnerowiczResidualEntryFormulaData5.ofResidualKernelData D)
3255
3256/-- Displacement-row certificates supply TT Hessian/Lichnerowicz operator-match
3257data. -/
3258def PeriodicTTHessianLichnerowiczMatchData5.ofDispRowData
3259 (D : EncodedTTHessianLichnerowiczResidualDispRowFormulaData5) :
3260 PeriodicTTHessianLichnerowiczMatchData5 :=
3261 PeriodicTTHessianLichnerowiczMatchData5.ofEncodedResidualKernelData
3262 (EncodedTTHessianLichnerowiczResidualKernelFormulaData5.ofDispRowData D)
3263
3264/-- Seven-row origin-table certificates supply TT Hessian/Lichnerowicz
3265operator-match data. -/
3266def PeriodicTTHessianLichnerowiczMatchData5.ofOriginRowTableData
3267 (D : EncodedTTHessianLichnerowiczResidualOriginRowTableFormulaData5) :
3268 PeriodicTTHessianLichnerowiczMatchData5 :=
3269 PeriodicTTHessianLichnerowiczMatchData5.ofDispRowData
3270 (EncodedTTHessianLichnerowiczResidualDispRowFormulaData5.ofOriginRowTableData D)
3271
3272/-- Typed-column origin-table certificates supply TT Hessian/Lichnerowicz
3273operator-match data. -/
3274def PeriodicTTHessianLichnerowiczMatchData5.ofOriginColumnTableData
3275 (D : EncodedTTHessianLichnerowiczResidualOriginColumnTableFormulaData5) :
3276 PeriodicTTHessianLichnerowiczMatchData5 :=
3277 PeriodicTTHessianLichnerowiczMatchData5.ofOriginRowTableData
3278 (EncodedTTHessianLichnerowiczResidualOriginRowTableFormulaData5.ofOriginColumnTableData D)
3279
3280/-- Raw typed-column certificates supply TT Hessian/Lichnerowicz operator-match
3281data. -/
3282def PeriodicTTHessianLichnerowiczMatchData5.ofRawOriginColumnData
3283 (D : EncodedTTHessianLichnerowiczRawOriginColumnFormulaData5) :
3284 PeriodicTTHessianLichnerowiczMatchData5 :=
3285 PeriodicTTHessianLichnerowiczMatchData5.ofOriginColumnTableData
3286 (EncodedTTHessianLichnerowiczResidualOriginColumnTableFormulaData5.ofRawOriginColumnData D)
3287
3288/-- Coefficient-only origin-column certificates supply TT Hessian/Lichnerowicz
3289operator-match data by reconstructing the raw typed-column certificate. -/
3290def PeriodicTTHessianLichnerowiczMatchData5.ofCoeffOriginColumnData
3291 (D : EncodedTTHessianLichnerowiczCoeffOriginColumnFormulaData5) :
3292 PeriodicTTHessianLichnerowiczMatchData5 :=
3293 PeriodicTTHessianLichnerowiczMatchData5.ofRawOriginColumnData
3294 (EncodedTTHessianLichnerowiczRawOriginColumnFormulaData5.ofCoeffOriginColumnData D)
3295
3296/-- Translated coefficient-only certificates supply TT Hessian/Lichnerowicz
3297operator-match data through the derived coefficient origin-column certificate. -/
3298def PeriodicTTHessianLichnerowiczMatchData5.ofCoeffTranslatedData
3299 (D : EncodedTTHessianLichnerowiczCoeffTranslatedFormulaData5) :
3300 PeriodicTTHessianLichnerowiczMatchData5 :=
3301 PeriodicTTHessianLichnerowiczMatchData5.ofCoeffOriginColumnData
3302 (EncodedTTHessianLichnerowiczCoeffOriginColumnFormulaData5.ofCoeffTranslatedData D)
3303
3304/-- Operator equality on TT modes gives equality of the associated bilinear
3305forms whenever the right input is TT. -/
3306theorem periodicTTHessianLichnerowicz_bilinear_eq_of_matchData5
3307 (D : PeriodicTTHessianLichnerowiczMatchData5)
3308 (ε η : PeriodicEdgePerturbation5)
3309 (hη : PeriodicLongitudinalTTSubspace5 η) :
3310 periodicTTOperatorBilinear5 D.reggeHessianTT ε η =
3311 periodicTTOperatorBilinear5 D.latticeLichnerowiczTT ε η := by
3312 unfold periodicTTOperatorBilinear5
3313 rw [D.matches_on_tt η hη]
3314
3315/-- Operator equality on TT modes gives equality of the quadratic TT energy. -/
3316theorem periodicTTHessianLichnerowicz_quadratic_eq_of_matchData5
3317 (D : PeriodicTTHessianLichnerowiczMatchData5)
3318 (ε : PeriodicEdgePerturbation5)
3319 (hε : PeriodicLongitudinalTTSubspace5 ε) :
3320 periodicTTOperatorBilinear5 D.reggeHessianTT ε ε =
3321 periodicTTOperatorBilinear5 D.latticeLichnerowiczTT ε ε :=
3322 periodicTTHessianLichnerowicz_bilinear_eq_of_matchData5 D ε ε hε
3323
3324/-- Coefficient-only origin-column certificates give equality of the associated
3325bilinear forms whenever the right input is TT. -/
3326theorem periodicTTHessianLichnerowicz_bilinear_eq_of_coeffOriginColumnData5
3327 (D : EncodedTTHessianLichnerowiczCoeffOriginColumnFormulaData5)
3328 (ε η : PeriodicEdgePerturbation5)
3329 (hη : PeriodicLongitudinalTTSubspace5 η) :
3330 periodicTTOperatorBilinear5
3331 (PeriodicTTHessianLichnerowiczMatchData5.ofCoeffOriginColumnData D).reggeHessianTT ε η =
3332 periodicTTOperatorBilinear5
3333 (PeriodicTTHessianLichnerowiczMatchData5.ofCoeffOriginColumnData D).latticeLichnerowiczTT ε η :=
3334 periodicTTHessianLichnerowicz_bilinear_eq_of_matchData5
3335 (PeriodicTTHessianLichnerowiczMatchData5.ofCoeffOriginColumnData D) ε η hη
3336
3337/-- Coefficient-only origin-column certificates give equality of the quadratic
3338TT energy. -/
3339theorem periodicTTHessianLichnerowicz_quadratic_eq_of_coeffOriginColumnData5
3340 (D : EncodedTTHessianLichnerowiczCoeffOriginColumnFormulaData5)
3341 (ε : PeriodicEdgePerturbation5)
3342 (hε : PeriodicLongitudinalTTSubspace5 ε) :
3343 periodicTTOperatorBilinear5
3344 (PeriodicTTHessianLichnerowiczMatchData5.ofCoeffOriginColumnData D).reggeHessianTT ε ε =
3345 periodicTTOperatorBilinear5
3346 (PeriodicTTHessianLichnerowiczMatchData5.ofCoeffOriginColumnData D).latticeLichnerowiczTT ε ε :=
3347 periodicTTHessianLichnerowicz_quadratic_eq_of_matchData5
3348 (PeriodicTTHessianLichnerowiczMatchData5.ofCoeffOriginColumnData D) ε hε
3349
3350/-- Translated coefficient-only certificates give equality of the associated
3351bilinear forms whenever the right input is TT. -/
3352theorem periodicTTHessianLichnerowicz_bilinear_eq_of_coeffTranslatedData5
3353 (D : EncodedTTHessianLichnerowiczCoeffTranslatedFormulaData5)
3354 (ε η : PeriodicEdgePerturbation5)
3355 (hη : PeriodicLongitudinalTTSubspace5 η) :
3356 periodicTTOperatorBilinear5
3357 (PeriodicTTHessianLichnerowiczMatchData5.ofCoeffTranslatedData D).reggeHessianTT ε η =
3358 periodicTTOperatorBilinear5
3359 (PeriodicTTHessianLichnerowiczMatchData5.ofCoeffTranslatedData D).latticeLichnerowiczTT ε η :=
3360 periodicTTHessianLichnerowicz_bilinear_eq_of_matchData5
3361 (PeriodicTTHessianLichnerowiczMatchData5.ofCoeffTranslatedData D) ε η hη
3362
3363/-- Translated coefficient-only certificates give equality of the quadratic TT
3364energy. -/
3365theorem periodicTTHessianLichnerowicz_quadratic_eq_of_coeffTranslatedData5
3366 (D : EncodedTTHessianLichnerowiczCoeffTranslatedFormulaData5)
3367 (ε : PeriodicEdgePerturbation5)
3368 (hε : PeriodicLongitudinalTTSubspace5 ε) :
3369 periodicTTOperatorBilinear5
3370 (PeriodicTTHessianLichnerowiczMatchData5.ofCoeffTranslatedData D).reggeHessianTT ε ε =
3371 periodicTTOperatorBilinear5
3372 (PeriodicTTHessianLichnerowiczMatchData5.ofCoeffTranslatedData D).latticeLichnerowiczTT ε ε :=
3373 periodicTTHessianLichnerowicz_quadratic_eq_of_matchData5
3374 (PeriodicTTHessianLichnerowiczMatchData5.ofCoeffTranslatedData D) ε hε
3375
3376/-- Relative-frame translated coefficient-only certificates give equality of the
3377associated bilinear forms whenever the right input is TT. -/
3378theorem periodicTTHessianLichnerowicz_bilinear_eq_of_coeffRelativeTranslatedData5
3379 (D : EncodedTTHessianLichnerowiczCoeffRelativeTranslatedFormulaData5)
3380 (ε η : PeriodicEdgePerturbation5)
3381 (hη : PeriodicLongitudinalTTSubspace5 η) :
3382 periodicTTOperatorBilinear5
3383 (PeriodicTTHessianLichnerowiczMatchData5.ofCoeffRelativeTranslatedData D).reggeHessianTT ε η =
3384 periodicTTOperatorBilinear5
3385 (PeriodicTTHessianLichnerowiczMatchData5.ofCoeffRelativeTranslatedData D).latticeLichnerowiczTT ε η :=
3386 periodicTTHessianLichnerowicz_bilinear_eq_of_matchData5
3387 (PeriodicTTHessianLichnerowiczMatchData5.ofCoeffRelativeTranslatedData D) ε η hη
3388
3389/-- Relative-frame translated coefficient-only certificates give equality of the
3390quadratic TT energy. -/
3391theorem periodicTTHessianLichnerowicz_quadratic_eq_of_coeffRelativeTranslatedData5
3392 (D : EncodedTTHessianLichnerowiczCoeffRelativeTranslatedFormulaData5)
3393 (ε : PeriodicEdgePerturbation5)
3394 (hε : PeriodicLongitudinalTTSubspace5 ε) :
3395 periodicTTOperatorBilinear5
3396 (PeriodicTTHessianLichnerowiczMatchData5.ofCoeffRelativeTranslatedData D).reggeHessianTT ε ε =
3397 periodicTTOperatorBilinear5
3398 (PeriodicTTHessianLichnerowiczMatchData5.ofCoeffRelativeTranslatedData D).latticeLichnerowiczTT ε ε :=
3399 periodicTTHessianLichnerowicz_quadratic_eq_of_matchData5
3400 (PeriodicTTHessianLichnerowiczMatchData5.ofCoeffRelativeTranslatedData D) ε hε
3401
3402theorem periodicFreudenthalTTOrthogonalDecompositionTargetAtN5_to_target
3403 (GaugePotential : Type) (gaugeMap : GaugePotential → PeriodicEdgePerturbation5) :
3404 PeriodicFreudenthalTTOrthogonalDecompositionTargetAtN5 GaugePotential gaugeMap →
3405 PeriodicFreudenthalTTDecompositionTargetAtN5
3406 PeriodicConformalLogSubspace5
3407 (PeriodicGaugeSubspace5 GaugePotential gaugeMap)
3408 (PeriodicTTOrthogonal5 GaugePotential gaugeMap) := by
3409 intro h
3410 exact h
3411
3412/-- Session 215 scaffold endpoint for Track 1.D. -/
3413def Track1DTensorShearScaffoldEndpoint : Prop :=
3414 Nonempty (∀ K : Triangulation3D, VertexPotential K → EdgePerturbation K) ∧
3415 Nonempty (EncodedEdgePerturbation5 ≃ PeriodicEdgePerturbation5) ∧
3416 (∀ h v : ℝ, h ≠ v →
3417 ¬ ∃ ξa ξb ξc ξd : ℝ,
3418 (ξa + ξb) / 2 = h ∧
3419 (ξc + ξd) / 2 = h ∧
3420 (ξb + ξc) / 2 = v ∧
3421 (ξd + ξa) / 2 = v)
3422
3423theorem track1D_tensorShearScaffoldEndpoint_holds :
3424 Track1DTensorShearScaffoldEndpoint := by
3425 constructor
3426 · exact ⟨fun K => conformalEdgeLogStrain K⟩
3427 · constructor
3428 · exact ⟨periodicEdgePerturbationEquiv5⟩
3429 · intro h v hne
3430 exact nontrivial_rectangle_shear_not_vertexConformal h v hne
3431
3432end
3433
3434end TensorShearSector
3435end Gravity
3436end IndisputableMonolith
3437