Documentation

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

JunctionDischargePrincipalSwitch #

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

Junction 4 discharged: the principal comparison at the closure's own correctors #

ABK26, l.approximate.recurrence.formula, Steps 1--3 and e.lower.bound.principal.one.

Closure.Junctions.PrincipalSwitchEndpoint is the proved principal-response terminal exists_const_descendantsAverage_integral_principalEnergy_le_annealedLimit, re-indexed from the terminal's (m - hgap, m) to the recurrence pair (n, n + h). Two things separate the two statements, and this module supplies both.

  1. The integer re-indexing. Instantiating the terminal at m := n + h and hgap := h leaves the single rewrite n + h - h = n; that is the whole of the carrier difference, exactly as Closure.Junctions' header records.

  2. The choice of correctors. The terminal produces its pair w_D, w_N existentially, indexed by the shell sequence. The closure assembly cannot use that pair: Steps 4 and 5 and the fresh-shell energy display all read the correctors along the increment path (Closure.alongIncrementPath), and one and the same pair has to serve all four junctions at every localization cube. So the terminal's conclusion has to be transported from its witness pair to the caller's pair. That transport is legitimate, and unconditional: the two problems of e.def.w determine their solutions' gradients (Corrector.FreshShellUniqueness), and both Closure.principalEnergyAverage and Closure.gaugeEnergyAverage see the correctors only through cubeAverageVec R (grad w) on the descendant cubes of cu_K. The congruence lemmas below make that visible, one carrier at a time, and principalSwitchEndpoint_of_terminal states the terminal at an arbitrary pair of solutions of e.def.w.

What is supplied #

The terminal's source premises, threaded #

principalSwitchEndpoint_of_terminal carries exactly the terminal's own binders, re-indexed:

binderterminal's formhere
induction stateinductionState M (m - 1) EinductionState M (n + h - 1) Ec
shell nondegeneracy0 < hgap0 < h
regimeCterm cstar^{-1} <= Eunchanged
fifth-root gatecgamma <= E^{-5}unchanged
shell budgethgap <= 6 cstar cgamma^{-1}unchanged
localization gap10^10 cgamma^{-1} <= Kc - m... <= Kc - (n + h)
directions|e|, |e'| <= 1unchanged
depth namingKc - j = recurrenceMesoScale a cgamma m hgapat m = n + h

No binder is added, none is weakened, and no smallness beyond the terminal's own is assumed. The two corrector binders hwD, hwN are e.def.w itself --- the definition of the pair the caller is using, not an assumption about it.

References #

The cube average sees only the a.e. class #

Gradient uniqueness of e.def.w, in the pointwise a.e. spelling #

Unconditional: two zero-trace Dirichlet weak solutions of e.def.w for one and the same forcing have a.e. equal gradients. This is Corrector.gradToVectorL2_eq_of_isZeroTraceDirichletRhsWeakSolution_openCubeSet read through H1Function.coeFn_gradToVectorL2.

The transport, carrier by carrier #

Unconditional: e.Pz.def reads the two correctors only through their cube averages, so a.e. equal gradients give the same load.

Unconditional: the gauged load of the terminal inherits the congruence.

Unconditional: the left-hand carrier of the terminal depends on the correctors only through their a.e. classes.

Unconditional: the right-hand carrier of the terminal, likewise.

Unconditional: Closure.PrincipalSwitchEndpoint transports along a.e.-equal corrector gradients.

Junction 4, discharged #

theorem Algsuperdiff.Section3.Provider.Diffusivity.ApproximateRecurrence.Closure.principalSwitchEndpoint_of_terminal (d : ℕ) (hd : 2 ≤ d) :
∃ (Cterm : ℝ), 0 < Cterm ∧ ∀ (M : ABKModel d) (n Kc : ℤ) (h : ℕ) (Ec : { E : ℝ // 1 ≤ E }), 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⁻¹ → 10 ^ 10 * M.gamma⁻¹ ≤ ↑Kc - ↑(n + ↑h) → ∀ (e e' : HCPolySupport.Vec d), HCPolySupport.Book.Ch02.vecNorm e ≤ 1 → HCPolySupport.Book.Ch02.vecNorm e' ≤ 1 → ∀ (j : ℕ), (HCPolySupport.originCube d Kc).scale - ↑j = recurrenceMesoScale recurrenceGapMultiplier M.gamma (n + ↑h) ↑h → ∀ (wD : Cutoff.ShellSeq d → HCPolySupport.H10Function (HCPolySupport.openCubeSet (HCPolySupport.originCube d Kc))) (wN : Cutoff.ShellSeq d → HCPolySupport.H1MeanZeroFunction (HCPolySupport.openCubeSet (HCPolySupport.originCube d Kc))), (∀ (omega : Cutoff.ShellSeq d), HCPolySupport.IsZeroTraceDirichletRhsWeakSolution (fun (x : HCPolySupport.Vec d) => 1) (HCPolySupport.openCubeSet (HCPolySupport.originCube d Kc)) (wD omega) fun (x : HCPolySupport.Vec d) => -Corrector.streamForcing (↑(Annealed.sigmaBar M n))⁻¹ omega n (n + ↑h) e x) → (∀ (omega : Cutoff.ShellSeq d), HCPolySupport.IsMeanZeroNeumannRhsWeakSolution (fun (x : HCPolySupport.Vec d) => 1) (HCPolySupport.openCubeSet (HCPolySupport.originCube d Kc)) (wN omega) fun (x : HCPolySupport.Vec d) => -Corrector.streamForcing (↑(Annealed.sigmaBar M n))⁻¹ omega n (n + ↑h) e' x) → PrincipalSwitchEndpoint M n h Kc j Ec e e' wD wN

Closure.PrincipalSwitchEndpoint, proved, at any pair of e.def.w solutions.

The constant Cterm is the proved terminal's own; the premises are the terminal's own, re-indexed from (m - hgap, m) to (n, n + h). hwD and hwN are the definition of the corrector pair the caller is using, i.e. e.def.w at the directions e, e'; the terminal's own witness pair is discarded in favour of the caller's by gradient uniqueness.

No incomplete-proof axiom is inherited. See the module header.