Documentation

LeanPool.Superdiffusion.Algsuperdiff.Section3.Provider.Diffusivity.ApproximateRecurrence.Closure.ClosureAssembly

ClosureAssembly #

Ported from scottnarmstrong/Superdiffusion at 7f20476385d4af418f110303085ad0740c9eba46. Module imports, support namespace and local option directives adapted for Lean Pool.

The closure assembly: the two displays at one explicit pair of correctors #

Closure.Junctions names the four junctions of the closure node and proves two private assembly skeletons from them. This module carries the assembly as far as the proved producers allow: it chooses the corrector families, discharges Junction 4 at them for every large localization cube, reduces the drift limit to two typing binders, and states the two printed displays conditionally on what is genuinely still in flight.

Two shape deltas against Closure.Junctions' skeletons, and what replaces #

them

The skeletons upperDisplay_of_junctions / lowerDisplay_of_junctions of Closure.Junctions cannot be used here, for two independent reasons.

  1. They are private. A private declaration is visible only inside its own module, so no other file can instantiate them. They are therefore re-proved here, from the public Closure.StepSixClosure.upperDisplay_of_annealedBlockBound and ..._lowerDisplay_of_annealedBlockBound, with the same proof.

  2. Their quantification over the localization cube does not match the producers. The skeletons consume the junctions as

      {j : ℕ}   and   (hswitch : ∀ K : ℕ, PrincipalSwitchEndpoint M n h (K : ℤ) j ...)
    

    i.e. at one fixed descendant depth j and at every cube scale K. Both producers of hswitch and hsplit --- the proved principal-response terminal exists_const_descendantsAverage_integral_principalEnergy_le_annealedLimit and the proved structural split LocalizationRecurrenceMesh.exists_localizationRecurrenceMeshSplit_le_descendantsAverage_expanded --- carry the depth-naming identity

      ((originCube d Kc).scale : ℤ) - (j : ℤ)
        = recurrenceMesoScale recurrenceGapMultiplier M.gamma m (hgap : ℤ)
    

    and (originCube d Kc).scale = Kc, so at a fixed j that identity pins Kc to the single value j + recurrenceMesoScale .... Both producers also carry the localization gap 10^10 cgamma^{-1} <= Kc - m, which fails for small Kc. A ∀ K premise at fixed j is therefore not obtainable from them. Exactly two changes are needed, both harmless for the limit passage: the depth becomes a family jf : ℕ → ℕ (one depth per cube scale), and the junctions are consumed eventually in K rather than for all K (ge_of_tendsto in place of ge_of_tendsto'). upperDisplay_of_junctionFamilies and lowerDisplay_of_junctionFamilies below are the skeletons in that shape; closureMeshDepth is the depth family the producers name.

What is supplied #

The premises that remain, and their producers #

Neither conditional assembly assumes any estimate of the manuscript beyond the following, each of which is a named producer's output:

premisecontentproducer
hsplitJunction 3, e.lower.bound.basic.split + e.lower.bound.localization.terms at the
cgamma^10 endpointIN, lane gamma10-fold; reduce to one finite grid first with
Closure.AnnealedLimitJunction.annealedSplitEndpoint_of_integral_ch02CoarseBlockMatrix_le
hstep4Junction 1 at the chosen families
Closure.JunctionDischargeStepFour.step4GaugeEndpoint_of_correctors, whose hD binder is
isZeroTraceDirichletRhsWeakSolution_alongIncrementPath below and whose four remaining binders are
the analytic side conditions its own docstring table charges to
Corrector.CorrectorMeasurableGradient and Corrector.CorrectorLimitNode
hstep5Junction 2 at the chosen families
Closure.JunctionDischargeStepFiveDisplay.step5GaugeEndpoint_of_correctors_gauge (per-cube gauge),
whose hosc binder is supplied by Closure.Step5DefectGauge's re-sited full-mesh producer and
whose remaining binders are that module's own table
hDm, hNmAEStronglyMeasurable of the two cube energies along the increment paththe
path-carrier analogue of Corrector.CorrectorMeasurableForcing.continuous_contMatrixFieldL2
composed with Corrector.MeasurablePrereqSolutionOperator's continuous solution operators; not
built here

hgamma, hcap, hsmall are the parameter-regime facts the manuscript grants (e.cgamma.constraints, Closure.shellDrift_le_cap); they are carried as binders, not assumed away.

References #

theorem Algsuperdiff.Section3.Provider.Diffusivity.ApproximateRecurrence.Closure.lowerDisplay_of_junctionFamilies {d : ℕ} (M : ABKModel d) {n : ℤ} {h : ℕ} {jf : ℕ → ℕ} {Ec : { E : ℝ // 1 ≤ E }} {e : HCPolySupport.Vec d} {Fend : ℝ} {wD : (K : ℕ) → C(HCPolySupport.Vec d, HCPolySupport.Mat d) → HCPolySupport.H10Function (HCPolySupport.openCubeSet (HCPolySupport.originCube d ↑K))} {wN : (K : ℕ) → C(HCPolySupport.Vec d, HCPolySupport.Mat d) → HCPolySupport.H1MeanZeroFunction (HCPolySupport.openCubeSet (HCPolySupport.originCube d ↑K))} (he : HCPolySupport.vecNormSq e = 1) (hFend : 0 ≤ Fend) (hgamma : M.gamma ≤ Real.exp (-1)) (hsmall : 3 * principalResponseSwitchBudget M Ec 64 ≤ 1) (hsplit : ∀ᶠ (K : ℕ) in Filter.atTop, AnnealedSplitEndpoint M n h (↑K) (jf K) e 0 (alongIncrementPath n h (wD K)) (alongIncrementPath n h (wN K))) (hswitch : ∀ᶠ (K : ℕ) in Filter.atTop, PrincipalSwitchEndpoint M n h (↑K) (jf K) Ec e 0 (alongIncrementPath n h (wD K)) (alongIncrementPath n h (wN K))) (hstep5 : ∀ᶠ (K : ℕ) in Filter.atTop, Step5GaugeEndpoint M n h K (jf K) e Fend (wD K) (wN K)) (hlimit : Filter.Tendsto (fun (K : ℕ) => dirichletCubeEnergy M n h K (wD K)) Filter.atTop (nhds (shellDrift M n h))) :
RecurrenceLowerDisplay M (max closureConstant (2 * Fend)) (↑Ec) n h

The corrector families #

The Dirichlet corrector of e.def.w at the gauged direction c • e, on the localization cube cu_K, indexed by the increment path.

Equations
Instances For

    The mesh depth attached to a localization scale #

    The descendant depth the terminal and the structural split both name at the localization scale K: the unique j with K - j = recurrenceMesoScale.

    Equations
    • One or more equations did not get rendered due to their size.
    Instances For

      The drift limit at the constructed families #

      The Neumann half of e.perturb.assumption at the closure's own corrector family. The only remaining binders are the two AEStronglyMeasurable typing conditions the proved display carries; the two weak formulations are discharged by the construction.

      Junction 4 at the constructed families, for every large localization cube #

      The conditional assembly #

      theorem Algsuperdiff.Section3.Provider.Diffusivity.ApproximateRecurrence.Closure.exists_const_recurrenceUpperDisplay_of_inflight (d : ℕ) [NeZero d] (hd : 2 ≤ d) :
      ∃ (Cterm : ℝ), 0 < Cterm ∧ ∀ (M : ABKModel d) (n : ℤ) (h : ℕ) (Ec : { E : ℝ // 1 ≤ E }) (e' : HCPolySupport.Vec d), HCPolySupport.vecNormSq e' = 1 → Frozen.Section3.inductionState M (n + ↑h - 1) Ec → 0 < h → Cterm * (Disorder.cstar M)⁻¹ ≤ ↑Ec → M.gamma ≤ ↑Ec ^ (-5) → ↑h ≤ 6 * Disorder.cstar M * M.gamma⁻¹ → M.gamma ≤ Real.exp (-1) → shellDrift M n h ≤ shellIncrementCap → (∀ᶠ (K : ℕ) in Filter.atTop, AnnealedSplitEndpoint M n h (↑K) (closureMeshDepth M n h K) 0 e' (alongIncrementPath n h (closureDirichletFamily (↑(Annealed.sigmaBar M n))⁻¹ 0 K)) (alongIncrementPath n h (closureNeumannFamily (↑(Annealed.sigmaBar M n))⁻¹ e' K))) → (∀ᶠ (K : ℕ) in Filter.atTop, Step4GaugeEndpoint M n h K (closureMeshDepth M n h K) e' (closureDirichletFamily (↑(Annealed.sigmaBar M n))⁻¹ 0 K) (closureNeumannFamily (↑(Annealed.sigmaBar M n))⁻¹ e' K)) → (∀ (K : ℕ), MeasureTheory.AEStronglyMeasurable (fun (f : C(HCPolySupport.Vec d, HCPolySupport.Mat d)) => HCPolySupport.cubeAverage (HCPolySupport.originCube d ↑K) fun (x : HCPolySupport.Vec d) => HCPolySupport.vecDot ((closureDirichletFamily (↑(Annealed.sigmaBar M n))⁻¹ e' K f).grad x) ((closureDirichletFamily (↑(Annealed.sigmaBar M n))⁻¹ e' K f).grad x)) ↑(Corrector.shellSumValuePathLaw M.P n (n + ↑h))) → (∀ (K : ℕ), MeasureTheory.AEStronglyMeasurable (fun (f : C(HCPolySupport.Vec d, HCPolySupport.Mat d)) => HCPolySupport.cubeAverage (HCPolySupport.originCube d ↑K) fun (x : HCPolySupport.Vec d) => HCPolySupport.vecDot ((closureNeumannFamily (↑(Annealed.sigmaBar M n))⁻¹ e' K f).toH1Function.grad x) ((closureNeumannFamily (↑(Annealed.sigmaBar M n))⁻¹ e' K f).toH1Function.grad x)) ↑(Corrector.shellSumValuePathLaw M.P n (n + ↑h))) → RecurrenceUpperDisplay M closureConstant (↑Ec) n h
      theorem Algsuperdiff.Section3.Provider.Diffusivity.ApproximateRecurrence.Closure.exists_const_recurrenceLowerDisplay_of_inflight (d : ℕ) [NeZero d] (hd : 2 ≤ d) :
      ∃ (Cterm : ℝ), 0 < Cterm ∧ ∀ (M : ABKModel d) (n : ℤ) (h : ℕ) (Ec : { E : ℝ // 1 ≤ E }) (e : HCPolySupport.Vec d) (Fend : ℝ), HCPolySupport.vecNormSq e = 1 → 0 ≤ Fend → Frozen.Section3.inductionState M (n + ↑h - 1) Ec → 0 < h → Cterm * (Disorder.cstar M)⁻¹ ≤ ↑Ec → M.gamma ≤ ↑Ec ^ (-5) → ↑h ≤ 6 * Disorder.cstar M * M.gamma⁻¹ → M.gamma ≤ Real.exp (-1) → 3 * principalResponseSwitchBudget M Ec 64 ≤ 1 → (∀ᶠ (K : ℕ) in Filter.atTop, AnnealedSplitEndpoint M n h (↑K) (closureMeshDepth M n h K) e 0 (alongIncrementPath n h (closureDirichletFamily (↑(Annealed.sigmaBar M n))⁻¹ e K)) (alongIncrementPath n h (closureNeumannFamily (↑(Annealed.sigmaBar M n))⁻¹ 0 K))) → (∀ᶠ (K : ℕ) in Filter.atTop, Step5GaugeEndpoint M n h K (closureMeshDepth M n h K) e Fend (closureDirichletFamily (↑(Annealed.sigmaBar M n))⁻¹ e K) (closureNeumannFamily (↑(Annealed.sigmaBar M n))⁻¹ 0 K)) → (∀ (K : ℕ), MeasureTheory.AEStronglyMeasurable (fun (f : C(HCPolySupport.Vec d, HCPolySupport.Mat d)) => HCPolySupport.cubeAverage (HCPolySupport.originCube d ↑K) fun (x : HCPolySupport.Vec d) => HCPolySupport.vecDot ((closureDirichletFamily (↑(Annealed.sigmaBar M n))⁻¹ e K f).grad x) ((closureDirichletFamily (↑(Annealed.sigmaBar M n))⁻¹ e K f).grad x)) ↑(Corrector.shellSumValuePathLaw M.P n (n + ↑h))) → (∀ (K : ℕ), MeasureTheory.AEStronglyMeasurable (fun (f : C(HCPolySupport.Vec d, HCPolySupport.Mat d)) => HCPolySupport.cubeAverage (HCPolySupport.originCube d ↑K) fun (x : HCPolySupport.Vec d) => HCPolySupport.vecDot ((closureNeumannFamily (↑(Annealed.sigmaBar M n))⁻¹ e K f).toH1Function.grad x) ((closureNeumannFamily (↑(Annealed.sigmaBar M n))⁻¹ e K f).toH1Function.grad x)) ↑(Corrector.shellSumValuePathLaw M.P n (n + ↑h))) → RecurrenceLowerDisplay M (max closureConstant (2 * Fend)) (↑Ec) n h