Documentation

LeanPool.Superdiffusion.Algsuperdiff.Section4.Provider.Homogenization.HomSeamFluxLane

HomSeamFluxLane #

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

The §4.5 duality lane, RE-INSTANTIATED at the printed field ã_{L,m} #

Why this file exists #

The lane (HomSpineRecutSupport, HomSchauderSwap) is pinned at the UNCUT cutoff field a_L, while the manuscript runs Step 3 and Step 4 at the flux-corrected field ã_{L,m} = a_L - (k_L - k_m)_{□_m}. HomSeamFluxCoefficient showed the a_L-sided seam bridge is not available; the lane is therefore re-instantiated at ã, which is what this file does.

Nothing new is estimated. Every mathematical step of the lane is already GENERIC in the coefficient:

The only pinned bytes were the INSTANTIATIONS, and they are re-made here at ã, using HomSeamFluxCoefficient.isDirichletSolutionOn_fluxCorrected_of_cutoff to transport the spine's Dirichlet binder.

The C∇u shift never materializes (the price of the re-instantiation) #

ã∇u = a_L∇u - C∇u with C = (k_L - k_m)_{□_m} constant and skew. The shift would cost something only if some consumer needed the flux leg in its a_L-form. None does:

So the whole lane moves at constant 1, and the C∇u shift is invisible at every slot. (Consistency check: ã solves the same Dirichlet problem, so the testing identity gives ∫_{□_m} C∇u·(∇u - ∇v) = 0, and ∫ C∇u·∇u = 0 by skewness — the two energy splits agree term by term.)

Scope #

Nothing here is a source-facing claim. All declarations are conditional APIs or named helpers of this tree; the printed proposition the general coarse-graining proposition enters exactly as it does in the lane, at the same finite p and the same constant C(p,d).

1. The symmetric part of ã_{L,m} is still ν Id #

THE ν-DROP IS BLIND TO THE FLUX CORRECTION. The subtracted matrix is constant and skew, so the symmetric part of ã_{L,m} is the symmetric part of a_L, namely ν Id. This is the single fact that makes the Step-4 energy identity fire at the printed field with the printed left-hand side.

2. The printed display at ã_{L,m} #

THE PRINTED FINITE-p DISPLAY, AT THE PRINT'S OWN COEFFICIENT.

The printed display at the spine's own cutoff pair, with the coefficient slot filled by the flux-corrected field instead of the uncut a_L. The elliptic pair fed in is still the spine's own (the root's binder is at a_L); the transport to ã is isDirichletSolutionOn_fluxCorrected_of_cutoff, i.e. the printed display's own sentence. The constant is the SAME C(p,d), produced before the model and before the coefficient.

3. The two duality legs, generic in the coefficient #

theorem Algsuperdiff.Section4.Provider.Homogenization.weakNegDualBounds_endpointLevels_of_displayOn {d : ℕ} {m : ℤ} {a : HCPolySupport.Book.Ch02.CoeffOn (HCPolySupport.Book.Ch02.cubeDomain (HCPolySupport.originCube d m))} {sigma0 : ℝ} (hsigma0 : 0 < sigma0) {u v : HCPolySupport.H1Function (HCPolySupport.openCubeSet (HCPolySupport.originCube d m))} (s' s : ↑HCPolySupport.FractionalOrder) (p : HCPolySupport.FiniteLpExponent) (hlo : 0 < (↑s - ↑s') * p.conjugate.exponent.toReal) (hhi : (↑s - ↑s') * p.conjugate.exponent.toReal < ↑d) {R : ENNReal} (hRtop : R ≠ ⊤) (hdisp : ENNReal.ofReal (Real.rpow 3 (-↑s' * ↑m)) * HCPolySupport.Book.Ch03.ABK26.centeredCubeFluxComparisonSmoothDualLHS m a sigma0 u v s' p ≤ R) {Level : ℝ} (hlevelDual : cgTestConst d (HCPolySupport.originCube d m) (↑s) (↑s') p.conjugate.exponent.toReal * (Real.rpow 3 (↑s' * ↑m) * R.toReal) ≤ Real.rpow 3 (↑s * ↑m) * (sigma0 * Level)) :
(WeakNegDualBoundOn (HCPolySupport.originCube d m) (↑s) (Real.rpow 3 (↑s * ↑m) * sigma0 * Level) fun (x : HCPolySupport.Vec d) => HCPolySupport.matVecMul (a.toCoeffField x) (u.grad x) - sigma0 • v.grad x) ∧ WeakNegDualBoundOn (HCPolySupport.originCube d m) (↑s) (Real.rpow 3 (↑s * ↑m) * Level) fun (x : HCPolySupport.Vec d) => u.grad x - v.grad x

The two Step-4 duality slots from the display, GENERIC in the coefficient.

The two endpoint-level duality slots of the display, with the coefficient slot freed: the inner producer HomCGFinalLegs.weakNegDualBounds_of_smoothDualDisplay never looks at the field, and the two level transports are scalar arithmetic.

4. The two legs at ã_{L,m}, from the root's own binders #

theorem Algsuperdiff.Section4.Provider.Homogenization.exists_weakNegDualBounds_of_fluxPair (d : ℕ) (hd : 2 ≤ d) (p : HCPolySupport.FiniteLpExponent) (hp : 2 ≤ p.exponent) :
∃ C < ⊤, ∀ (M : Section3.ABKModel d) (L : ℤ) (omega : Section3.Cutoff.CutoffSample d) (m n : ℤ) (hnm : n < m) (jn : ℕ) (s1' s' s2 s : ↑HCPolySupport.FractionalOrder), ↑s1' < ↑s' → ↑s' < ↑s2 → 0 < (↑s - ↑s') * p.conjugate.exponent.toReal → (↑s - ↑s') * p.conjugate.exponent.toReal < ↑d → ↑jn = m - n → ∀ (sigma0 : ℝ) (hsigma0 : 0 < sigma0) (g : HCPolySupport.Vec d → HCPolySupport.Vec d) (u v h : HCPolySupport.H1Function (HCPolySupport.openCubeSet (HCPolySupport.originCube d m))), Support.IsDirichletSolutionOn (Section3.Cutoff.coefficientCutoff M.nu L omega).toCoeffField (HCPolySupport.originCube d m) u h g → Support.IsDirichletSolutionOn (fun (x : HCPolySupport.Vec d) => sigma0 • 1) (HCPolySupport.originCube d m) v h g → ∀ (Kg : ℝ), 0 ≤ Kg → ↑s2 < 1 / 2 → 1 / 2 - ↑d / p.exponent.toReal < ↑s2 → Support.HolderSeminormBoundOn (HCPolySupport.openCubeSet (HCPolySupport.originCube d m)) (1 / 2) Kg g → ∀ (Ccg E1 E2 Dg S Level : ℝ), 0 ≤ Ccg → 0 ≤ E1 → 0 ≤ E2 → 0 ≤ Dg → 0 ≤ S → C ≤ ENNReal.ofReal Ccg → HCPolySupport.Book.Ch02.parentTruncatedHomogenizationErrorInfinityOneScalar (HCPolySupport.originCube d m) n ⋯ (Support.fluxCorrectedCoeffOn M L m (HCPolySupport.originCube d m) omega) sigma0 hsigma0 s1' ≤ ENNReal.ofReal E1 → HCPolySupport.Book.Ch02.parentTruncatedHomogenizationErrorInfinityTwoScalar (HCPolySupport.originCube d m) n ⋯ (Support.fluxCorrectedCoeffOn M L m (HCPolySupport.originCube d m) omega) sigma0 hsigma0 (HCPolySupport.fractionalOrderHalf s1') ≤ ENNReal.ofReal E2 → HCPolySupport.Book.Ch03.ABK26.cubeEuclideanPositiveBesovOverlapESeminorm (HCPolySupport.originCube d m) s2 p g ≤ ENNReal.ofReal Dg → ∀ (wgap : ℝ) (Gen : HCPolySupport.TriadicCube d → ℝ), wgap ≤ ↑s' - ↑s1' → (∀ (R : HCPolySupport.TriadicCube d), 0 ≤ Gen R) → (∀ (R : HCPolySupport.TriadicCube d), printedLocalEnergy (Support.fluxCorrectedCoeffOn M L m (HCPolySupport.originCube d m) omega) u R ≤ Gen R) → (∀ (N : ℕ), coarseGrainingEnergyPartial (HCPolySupport.originCube d m) p.exponent.toReal wgap jn N Gen ≤ S) → cgTestConst d (HCPolySupport.originCube d m) (↑s) (↑s') p.conjugate.exponent.toReal * (Real.rpow 3 (↑s' * ↑m) * coarseGrainingFinitePRHS Ccg (↑s') (↑s2) sigma0 E1 E2 Dg S n) ≤ Real.rpow 3 (↑s * ↑m) * (sigma0 * Level) → (WeakNegDualBoundOn (HCPolySupport.originCube d m) (↑s) (Real.rpow 3 (↑s * ↑m) * sigma0 * Level) fun (x : HCPolySupport.Vec d) => HCPolySupport.matVecMul ((Support.fluxCorrectedCoeffOn M L m (HCPolySupport.originCube d m) omega).toCoeffField x) (u.grad x) - sigma0 • v.grad x) ∧ WeakNegDualBoundOn (HCPolySupport.originCube d m) (↑s) (Real.rpow 3 (↑s * ↑m) * Level) fun (x : HCPolySupport.Vec d) => u.grad x - v.grad x

THE TWO STEP-4 DUALITY SLOTS AT THE PRINT'S COEFFICIENT.

The two duality slots at the spine's own cutoff pair, re-instantiated at ã_{L,m}. The inputs are unchanged in kind:

  • the root's two IsDirichletSolutionOn binders — still stated at a_L, and transported to ã by isDirichletSolutionOn_fluxCorrected_of_cutoff;
  • the root's C^{0,1/2} binder on 𝐠;
  • the four slot dominations and the S-slot comparison, now read at ã;
  • the arithmetic side condition hlevelDual.

The produced flux leg carries ã∇u - σ∇v, which is exactly what the printed Step 4 pairs against the Schauder gauge of ∇v.

5. The produced constant at ã, NAMED #

The printed coarse-graining constant C(p,d) of the ã lane, named.

The sibling of the a_L lane's coarse-graining dual-bound constant: the re-cut bundle refers to it in the slot condition C(p,d) ≤ Ccg.

Equations
Instances For

    6. The Step-4 endpoint, generic in the field #

    theorem Algsuperdiff.Section4.Provider.Homogenization.stepFourEnergyEndpointOfField {d : ℕ} {m : ℤ} {A : HCPolySupport.CoeffField d} {nu sigmaBarM s Kg Kh KhInf Cw Csch EB Ksup KHol : ℝ} {u v h : HCPolySupport.H1Function (HCPolySupport.openCubeSet (HCPolySupport.originCube d m))} {g : HCPolySupport.Vec d → HCPolySupport.Vec d} (hsym : ∀ (x : HCPolySupport.Vec d), HCPolySupport.symmPart (A x) = nu • 1) (hsig : 0 < sigmaBarM) (hCw : 0 ≤ Cw) (hEB : 0 ≤ EB) (hD : 0 ≤ dataBracket sigmaBarM (Real.rpow 3 (↑m / 2)) Kg KhInf Kh) (hsup : 0 ≤ Ksup) (hhol : 0 ≤ KHol) (hsol : Support.IsDirichletSolutionOn A (HCPolySupport.originCube d m) u h g) (hcomp : Support.IsDirichletSolutionOn (fun (x : HCPolySupport.Vec d) => sigmaBarM • 1) (HCPolySupport.originCube d m) v h g) (hiU : MeasureTheory.IntegrableOn (fun (x : HCPolySupport.Vec d) => HCPolySupport.vecDot (u.grad x) (HCPolySupport.matVecMul (A x) (u.grad x))) (HCPolySupport.openCubeSet (HCPolySupport.originCube d m)) MeasureTheory.volume) (hiV : MeasureTheory.IntegrableOn (fun (x : HCPolySupport.Vec d) => HCPolySupport.vecDot (v.grad x) (sigmaBarM • v.grad x)) (HCPolySupport.openCubeSet (HCPolySupport.originCube d m)) MeasureTheory.volume) (hiC : MeasureTheory.IntegrableOn (fun (x : HCPolySupport.Vec d) => HCPolySupport.vecDot (HCPolySupport.matVecMul (A x) (u.grad x)) (v.grad x)) (HCPolySupport.openCubeSet (HCPolySupport.originCube d m)) MeasureTheory.volume) (hb : ∀ x ∈ HCPolySupport.openCubeSet (HCPolySupport.originCube d m), ‖v.grad x‖ ≤ Ksup) (hH : Support.HolderSeminormBoundOn (HCPolySupport.openCubeSet (HCPolySupport.originCube d m)) s KHol v.grad) (hSch : wsInftyGauge (HCPolySupport.originCube d m) s Ksup KHol ≤ Csch * (Real.rpow 3 (s * ↑m))⁻¹ * dataBracket sigmaBarM (Real.rpow 3 (↑m / 2)) Kg KhInf Kh) (hWf : WeakNegDualBoundOn (HCPolySupport.originCube d m) s (Real.rpow 3 (s * ↑m) * sigmaBarM * (Cw * EB * dataBracket sigmaBarM (Real.rpow 3 (↑m / 2)) Kg KhInf Kh)) fun (x : HCPolySupport.Vec d) => HCPolySupport.matVecMul (A x) (u.grad x) - sigmaBarM • v.grad x) (hWg : WeakNegDualBoundOn (HCPolySupport.originCube d m) s (Real.rpow 3 (s * ↑m) * (Cw * EB * dataBracket sigmaBarM (Real.rpow 3 (↑m / 2)) Kg KhInf Kh)) fun (x : HCPolySupport.Vec d) => u.grad x - v.grad x) :

    THE STEP-4 ENDPOINT, GENERIC IN THE COEFFICIENT FIELD.

    The Step-4 energy endpoint with the cutoff field replaced by an arbitrary field whose symmetric part is ν Id. The proof is unchanged: HomStepFourEnergy.energy_split reads the field only through hsym, and stepFourEnergyDisplay never sees it at all. The conclusion is coefficient-FREE.

    7. Clause (C4)'s payload at ã, at the s-free Schauder constant #

    theorem Algsuperdiff.Section4.Provider.Homogenization.stepFourEnergyFlux_of_dualBounds_uniform {d : ℕ} (dimension : 2 ≤ d) {s : ℝ} (s_pos : 0 < s) (s_le : s ≤ 1 / 2) (M : Section3.ABKModel d) (L m : ℤ) (omega : Section3.Cutoff.CutoffSample d) (sigmaBarM Kg Kh KhInf Cw EB : ℝ) (u h : HCPolySupport.H1Function (HCPolySupport.openCubeSet (HCPolySupport.originCube d m))) (g : HCPolySupport.Vec d → HCPolySupport.Vec d) (hsig : 0 < sigmaBarM) (hCw : 0 ≤ Cw) (hEB : 0 ≤ EB) (hD : 0 ≤ dataBracket sigmaBarM (Real.rpow 3 (↑m / 2)) Kg KhInf Kh) (hKg : Support.HolderSeminormBoundOn (HCPolySupport.openCubeSet (HCPolySupport.originCube d m)) (1 / 2) Kg g) (hKhInf : ∀ x ∈ HCPolySupport.openCubeSet (HCPolySupport.originCube d m), ‖h.grad x‖ ≤ KhInf) (hKh : Support.HolderSeminormBoundOn (HCPolySupport.openCubeSet (HCPolySupport.originCube d m)) (1 / 2) Kh h.grad) (hsol : Support.IsDirichletSolutionOn (Support.fluxCorrectedCoeffOn M L m (HCPolySupport.originCube d m) omega).toCoeffField (HCPolySupport.originCube d m) u h g) (hiU : MeasureTheory.IntegrableOn (fun (x : HCPolySupport.Vec d) => HCPolySupport.vecDot (u.grad x) (HCPolySupport.matVecMul ((Support.fluxCorrectedCoeffOn M L m (HCPolySupport.originCube d m) omega).toCoeffField x) (u.grad x))) (HCPolySupport.openCubeSet (HCPolySupport.originCube d m)) MeasureTheory.volume) (hframe : ∀ (v : HCPolySupport.H1Function (HCPolySupport.openCubeSet (HCPolySupport.originCube d m))), Support.IsDirichletSolutionOn (fun (x : HCPolySupport.Vec d) => sigmaBarM • 1) (HCPolySupport.originCube d m) v h g → MeasureTheory.IntegrableOn (fun (x : HCPolySupport.Vec d) => HCPolySupport.vecDot (v.grad x) (sigmaBarM • v.grad x)) (HCPolySupport.openCubeSet (HCPolySupport.originCube d m)) MeasureTheory.volume ∧ MeasureTheory.IntegrableOn (fun (x : HCPolySupport.Vec d) => HCPolySupport.vecDot (HCPolySupport.matVecMul ((Support.fluxCorrectedCoeffOn M L m (HCPolySupport.originCube d m) omega).toCoeffField x) (u.grad x)) (v.grad x)) (HCPolySupport.openCubeSet (HCPolySupport.originCube d m)) MeasureTheory.volume ∧ (WeakNegDualBoundOn (HCPolySupport.originCube d m) s (Real.rpow 3 (s * ↑m) * sigmaBarM * (Cw * EB * dataBracket sigmaBarM (Real.rpow 3 (↑m / 2)) Kg KhInf Kh)) fun (x : HCPolySupport.Vec d) => HCPolySupport.matVecMul ((Support.fluxCorrectedCoeffOn M L m (HCPolySupport.originCube d m) omega).toCoeffField x) (u.grad x) - sigmaBarM • v.grad x) ∧ WeakNegDualBoundOn (HCPolySupport.originCube d m) s (Real.rpow 3 (s * ↑m) * (Cw * EB * dataBracket sigmaBarM (Real.rpow 3 (↑m / 2)) Kg KhInf Kh)) fun (x : HCPolySupport.Vec d) => u.grad x - v.grad x) :

    CLAUSE (C4)'s PAYLOAD, AT ã_{L,m} AND THE s-FREE CONSTANT.

    HomSchauderSwap.stepFourEnergy_of_dualBounds_uniform with every occurrence of the cutoff field replaced by the printed flux-corrected field. The conclusion is byte-identical: it never mentions a coefficient.