Pith. sign in

IndisputableMonolith.Gravity.RestrictedIncidenceRecovery

IndisputableMonolith/Gravity/RestrictedIncidenceRecovery.lean · 179 lines · 11 declarations

show as:
view math explainer →

open module explainer GitHub source

Explainer status: pending

   1import IndisputableMonolith.Gravity.DiscreteVacuumEinstein
   2
   3/-!
   4# Restricted Incidence Recovery
   5
   6The unrestricted recovery predicate in `DiscreteVacuumEinstein` asks vertex
   7probes to recover an arbitrary edge-deficit vector.  That is too strong for
   8bulk 3D lattices, where there are generally more edge variables than vertex
   9probes.
  10
  11This module states and proves the mathematically valid version: recovery and
  12separation on an explicitly declared geometric deficit subspace.
  13-/
  14
  15namespace IndisputableMonolith
  16namespace Gravity
  17namespace RestrictedIncidenceRecovery
  18
  19open Geometry.ReggeTriangulation3D
  20open Geometry.ReggeHessian3D
  21open Geometry.Triangulation3DConsistency
  22open Geometry.ReggeActionConcrete
  23open Geometry.ReggeActionSmoothness
  24open Geometry.ReggeActionFirstVariation
  25open DiscreteVacuumEinstein
  26
  27noncomputable section
  28
  29abbrev DeficitSubspace (K : Triangulation3D) := (Fin K.nE → ℝ) → Prop
  30
  31def RestrictedIncidenceDeficitSeparating
  32    (K : Triangulation3D) (S : DeficitSubspace K) : Prop :=
  33  ∀ δ : Fin K.nE → ℝ,
  34    S δ →
  35    (∀ η : VertexPotential K,
  36      ∑ e : Fin K.nE, δ e * directionalLengthCoefficient K η e = 0) →
  37    δ = 0
  38
  39def RestrictedIncidenceDeficitRecovering
  40    (K : Triangulation3D) (S : DeficitSubspace K) : Prop :=
  41  ∃ recover : Fin K.nE → Fin K.nV → ℝ,
  42    ∀ δ : Fin K.nE → ℝ, S δ →
  43      ∀ e : Fin K.nE,
  44        δ e =
  45          ∑ i : Fin K.nV,
  46            recover e i *
  47              (∑ e' : Fin K.nE,
  48                δ e' * directionalLengthCoefficient K
  49                  (fun j : Fin K.nV => if j = i then (1 : ℝ) else 0) e')
  50
  51theorem restrictedIncidenceDeficitSeparating_of_recovering
  52    (K : Triangulation3D) (S : DeficitSubspace K)
  53    (hRecover : RestrictedIncidenceDeficitRecovering K S) :
  54    RestrictedIncidenceDeficitSeparating K S := by
  55  rcases hRecover with ⟨recover, hrecover⟩
  56  intro δ hS hpair
  57  funext e
  58  rw [hrecover δ hS e]
  59  apply Finset.sum_eq_zero
  60  intro i _
  61  rw [hpair (fun j : Fin K.nV => if j = i then (1 : ℝ) else 0)]
  62  ring
  63
  64/-- The subspace generated by a chosen recovery matrix: by definition, its
  65elements are exactly those recovered from vertex-basis probes by that matrix. -/
  66def RecoverableDeficitSubspace
  67    (K : Triangulation3D) (recover : Fin K.nE → Fin K.nV → ℝ) :
  68    DeficitSubspace K :=
  69  fun δ =>
  70    ∀ e : Fin K.nE,
  71      δ e =
  72        ∑ i : Fin K.nV,
  73          recover e i *
  74            (∑ e' : Fin K.nE,
  75              δ e' * directionalLengthCoefficient K
  76                (fun j : Fin K.nV => if j = i then (1 : ℝ) else 0) e')
  77
  78theorem restrictedRecovering_recoverableSubspace
  79    (K : Triangulation3D) (recover : Fin K.nE → Fin K.nV → ℝ) :
  80    RestrictedIncidenceDeficitRecovering K
  81      (RecoverableDeficitSubspace K recover) := by
  82  refine ⟨recover, ?_⟩
  83  intro δ hS e
  84  exact hS e
  85
  86theorem restrictedSeparating_recoverableSubspace
  87    (K : Triangulation3D) (recover : Fin K.nE → Fin K.nV → ℝ) :
  88    RestrictedIncidenceDeficitSeparating K
  89      (RecoverableDeficitSubspace K recover) :=
  90  restrictedIncidenceDeficitSeparating_of_recovering K
  91    (RecoverableDeficitSubspace K recover)
  92    (restrictedRecovering_recoverableSubspace K recover)
  93
  94/-- The geometric deficit subspace generated by conformal vertex-potential
  95edge-length directions.  This is the natural image of the incidence operator
  96`η ↦ directionalLengthCoefficient K η`. -/
  97def DirectionalLengthImageSubspace (K : Triangulation3D) : DeficitSubspace K :=
  98  fun δ => ∃ η : VertexPotential K,
  99    ∀ e : Fin K.nE, δ e = directionalLengthCoefficient K η e
 100
 101theorem directionalLengthImageSubspace_separating
 102    (K : Triangulation3D) :
 103    RestrictedIncidenceDeficitSeparating K
 104      (DirectionalLengthImageSubspace K) := by
 105  intro δ hS hpair
 106  rcases hS with ⟨η, hη⟩
 107  have hsum :
 108      (∑ e : Fin K.nE,
 109        directionalLengthCoefficient K η e *
 110          directionalLengthCoefficient K η e) = 0 := by
 111    simpa [hη] using hpair η
 112  have hzero_all :
 113      ∀ e ∈ (Finset.univ : Finset (Fin K.nE)),
 114        directionalLengthCoefficient K η e *
 115          directionalLengthCoefficient K η e = 0 := by
 116    have hnonneg :
 117        ∀ x ∈ (Finset.univ : Finset (Fin K.nE)),
 118          0 ≤ directionalLengthCoefficient K η x *
 119            directionalLengthCoefficient K η x := by
 120      intro x _
 121      exact mul_self_nonneg _
 122    exact (Finset.sum_eq_zero_iff_of_nonneg hnonneg).mp hsum
 123  funext e
 124  have hsq := hzero_all e (Finset.mem_univ e)
 125  have hcoeff : directionalLengthCoefficient K η e = 0 := by
 126    exact mul_self_eq_zero.mp hsq
 127  change δ e = 0
 128  rw [hη e, hcoeff]
 129
 130/-- Reverse vacuum implication restricted to a declared geometric deficit
 131subspace.  The actual deficit vector must be shown to belong to the subspace. -/
 132theorem zero_deficit_of_critical_of_restrictedVariationFormula
 133    (K : Triangulation3D) (hK : IncidenceConsistent K)
 134    (S : DeficitSubspace K)
 135    (hDeficitInS : S (fun e : Fin K.nE => deficitAngle K (zeroPotential K) e))
 136    (hFormula : ReggeFirstVariationFormula K hK)
 137    (hSep : RestrictedIncidenceDeficitSeparating K S)
 138    (hCrit : CriticalAtFlat K hK) :
 139    ZeroDeficitAtFlat K := by
 140  unfold CriticalAtFlat ReggeActionCriticalAtZero at hCrit
 141  unfold ZeroDeficitAtFlat
 142  have hdelta :
 143      (fun e : Fin K.nE => deficitAngle K (zeroPotential K) e) = 0 := by
 144    apply hSep
 145    · exact hDeficitInS
 146    · intro η
 147      have happly := congrArg (fun L : VertexPotential K →L[ℝ] ℝ => L η) hCrit
 148      have hzero :
 149          (fderiv ℝ (reggeAction K hK) (zeroPotential K)) η = 0 := by
 150        simpa using happly
 151      have hformula := hFormula.variation_formula η
 152      rw [hformula] at hzero
 153      simpa using hzero
 154  intro e
 155  exact congrFun hdelta e
 156
 157def discreteVacuumEinsteinInput_of_restrictedRecovery
 158    (K : Triangulation3D) (hK : IncidenceConsistent K)
 159    (h_flat : FlatConfiguration K hK)
 160    (hFirst : ReggeActionFirstVariationInput K hK h_flat)
 161    (S : DeficitSubspace K)
 162    (hDeficitInS : S (fun e : Fin K.nE => deficitAngle K (zeroPotential K) e))
 163    (hFormula : ReggeFirstVariationFormula K hK)
 164    (hSep : RestrictedIncidenceDeficitSeparating K S) :
 165    DiscreteVacuumEinsteinInput K hK h_flat where
 166  critical_iff_zero_deficit := by
 167    constructor
 168    · intro hCrit
 169      exact zero_deficit_of_critical_of_restrictedVariationFormula
 170        K hK S hDeficitInS hFormula hSep hCrit
 171    · intro _hZero
 172      exact hFirst.firstVariation_zero
 173
 174end
 175
 176end RestrictedIncidenceRecovery
 177end Gravity
 178end IndisputableMonolith
 179

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