Pith. sign in

IndisputableMonolith.Gravity.ReggeCubicLatticeLimit

IndisputableMonolith/Gravity/ReggeCubicLatticeLimit.lean · 151 lines · 10 declarations

show as:
view math explainer →

open module explainer GitHub source

Explainer status: pending

   1import Mathlib
   2import IndisputableMonolith.Geometry.ReggeActionSecondVariation
   3import IndisputableMonolith.Gravity.CubicReggeConvergence
   4
   5/-!
   6# Cubic-Lattice Limit for the Second-Order Regge Action
   7
   8The general CMS theorem gives a weak curvature-measure convergence statement,
   9not a plain `O(a^2)` action estimate.  The `O(a^2)` statement belongs to the
  10regular weak-field cubic-lattice case.  This module isolates that special
  11case for the canonical second-order Regge action.
  12-/
  13
  14namespace IndisputableMonolith
  15namespace Gravity
  16namespace ReggeCubicLatticeLimit
  17
  18open Geometry.ReggeTriangulation3D
  19open Geometry.ReggeHessian3D
  20open Geometry.Triangulation3DConsistency
  21open Geometry.ReggeActionConcrete
  22
  23noncomputable section
  24
  25/-- A regular cubic-lattice comparison model for the canonical second-order
  26Regge action. -/
  27structure RegularCubicLatticeModel
  28    (K : Triangulation3D) (hK : IncidenceConsistent K) where
  29  latticeSpacing : ℝ
  30  spacing_pos : 0 < latticeSpacing
  31  continuumAction : VertexPotential K → ℝ
  32  errorConstant : ℝ
  33  errorConstant_nonneg : 0 ≤ errorConstant
  34  secondOrder_action_error :
  35    ∀ ξ : VertexPotential K,
  36      |reggeActionSecondOrder K hK (canonicalReggeHessian K hK) ξ -
  37        continuumAction ξ| ≤ errorConstant * latticeSpacing ^ (2 : ℕ)
  38
  39/-- The second-order Regge action has an `O(a^2)` cubic-lattice continuum
  40limit in the supplied regular lattice model. -/
  41def ReggeSecondOrderCubicLatticeLimit
  42    (K : Triangulation3D) (hK : IncidenceConsistent K)
  43    (M : RegularCubicLatticeModel K hK) : Prop :=
  44  ∀ ξ : VertexPotential K,
  45    |reggeActionSecondOrder K hK (canonicalReggeHessian K hK) ξ -
  46      M.continuumAction ξ| ≤ M.errorConstant * M.latticeSpacing ^ (2 : ℕ)
  47
  48/-- Named input connecting a concrete regular triangulation model to the
  49canonical second-order Regge action. -/
  50structure ReggeCubicLatticeLimitInput
  51    (K : Triangulation3D) (hK : IncidenceConsistent K) where
  52  model : RegularCubicLatticeModel K hK
  53  limit_estimate : ReggeSecondOrderCubicLatticeLimit K hK model
  54
  55/-- Physical six-tet cubic Dirichlet model data.  This is the target class
  56for the real cubic-lattice instance: prove that the canonical second-order
  57Regge action on the six-tetrahedra-per-cube triangulation is the finite-
  58difference Dirichlet action, then supply the O(a^2) estimate. -/
  59structure PhysicalSixTetCubicDirichletModel
  60    (K : Triangulation3D) (hK : IncidenceConsistent K) where
  61  regularModel : RegularCubicLatticeModel K hK
  62  sixTetCubicDecomposition : Prop
  63  canonicalHessian_is_dirichlet : Prop
  64  finiteDifferenceEstimate :
  65    ReggeSecondOrderCubicLatticeLimit K hK regularModel
  66
  67def cubicLatticeLimitInput_of_physicalSixTetModel
  68    (K : Triangulation3D) (hK : IncidenceConsistent K)
  69    (M : PhysicalSixTetCubicDirichletModel K hK) :
  70    ReggeCubicLatticeLimitInput K hK where
  71  model := M.regularModel
  72  limit_estimate := M.finiteDifferenceEstimate
  73
  74/-- Phase-G cubic-lattice `O(a^2)` continuum-limit theorem for the canonical
  75second-order Regge action. -/
  76theorem reggeActionSecondOrder_cubic_lattice_limit
  77    (K : Triangulation3D) (hK : IncidenceConsistent K)
  78    (h_limit : ReggeCubicLatticeLimitInput K hK) :
  79    ReggeSecondOrderCubicLatticeLimit K hK h_limit.model :=
  80  h_limit.limit_estimate
  81
  82/-- A family of cubic-lattice comparison models converges pointwise whenever
  83its certified `O(a^2)` error envelope tends to zero along the refinement
  84parameter. -/
  85theorem reggeSecondOrderCubicLatticeLimit_error_vanishes_along_models
  86    {α : Type*} {l : Filter α}
  87    (K : Triangulation3D) (hK : IncidenceConsistent K)
  88    (M : α → RegularCubicLatticeModel K hK)
  89    (hLimit : ∀ t : α, ReggeSecondOrderCubicLatticeLimit K hK (M t))
  90    (hEnvelope :
  91      Filter.Tendsto
  92        (fun t : α => (M t).errorConstant * (M t).latticeSpacing ^ (2 : ℕ))
  93        l (nhds 0))
  94    (ξ : VertexPotential K) :
  95    Filter.Tendsto
  96      (fun t : α =>
  97        |reggeActionSecondOrder K hK (canonicalReggeHessian K hK) ξ -
  98          (M t).continuumAction ξ|)
  99      l (nhds 0) := by
 100  apply squeeze_zero
 101  · intro t
 102    exact abs_nonneg _
 103  · intro t
 104    exact hLimit t ξ
 105  · exact hEnvelope
 106
 107/-- The existing one-dimensional finite-difference theorem is the analytic
 108ingredient used in the cubic-lattice model. -/
 109theorem finite_difference_second_order_estimate
 110    (f : ℝ → ℝ) (x a : ℝ) (ha : a ≠ 0) (hf : ContDiff ℝ 4 f) :
 111    ∃ C : ℝ, 0 ≤ C ∧
 112      |(f (x + a) + f (x - a) - 2 * f x) / a ^ 2 -
 113        deriv (deriv f) x| ≤ C * a ^ 2 :=
 114  CubicReggeConvergence.weak_field_error_estimate f x a ha hf
 115
 116/-- Exact comparison model: the continuum action is chosen to be the
 117canonical second-order Regge action itself, so the error constant is zero.
 118
 119This is not the physical regular cubic-lattice continuum model.  It is a
 120sanity-check instance showing that `RegularCubicLatticeModel` and
 121`ReggeCubicLatticeLimitInput` are constructible without further caller data.
 122The real cubic-lattice instance still has to identify this action with the
 123finite-difference Dirichlet action. -/
 124def exactSecondOrderComparisonModel
 125    (K : Triangulation3D) (hK : IncidenceConsistent K)
 126    (a : ℝ) (ha : 0 < a) :
 127    RegularCubicLatticeModel K hK where
 128  latticeSpacing := a
 129  spacing_pos := ha
 130  continuumAction := reggeActionSecondOrder K hK (canonicalReggeHessian K hK)
 131  errorConstant := 0
 132  errorConstant_nonneg := le_rfl
 133  secondOrder_action_error := by
 134    intro ξ
 135    simp
 136
 137def exactSecondOrderCubicLatticeLimitInput
 138    (K : Triangulation3D) (hK : IncidenceConsistent K)
 139    (a : ℝ) (ha : 0 < a) :
 140    ReggeCubicLatticeLimitInput K hK where
 141  model := exactSecondOrderComparisonModel K hK a ha
 142  limit_estimate := by
 143    intro ξ
 144    simp [exactSecondOrderComparisonModel]
 145
 146end
 147
 148end ReggeCubicLatticeLimit
 149end Gravity
 150end IndisputableMonolith
 151

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