IterationGoodRun #
Ported from scottnarmstrong/Superdiffusion at 7f20476385d4af418f110303085ad0740c9eba46. Module imports, support namespace and local option directives adapted for Lean Pool.
Iteration lemma, Step 2 on a run of good scales #
ABK26, §4.3, l.iteration.lemma, Step 2. Given the reabsorption of
IterationCore.lean, the source runs the discrete Grönwall lemma on a_l:= |∇ℓ_{b−l} − ∇ℓ_b| to obtain e.grad.bound.good, substitutes back into
e.sum.excess.bound to get the same bound for E_i, and arrives at
e.E.and.grad.bound.good. This module proves that chain for abstract
nonnegative sequences:
slopeGronwall---e.grad.bound.good: the pointwise slope bound on the run, obtained fromreabsorbSum+slopeTelescope+discrete_gronwall;goodRunBound---e.E.and.grad.bound.goodat the bottom of the run:E_a + p_a ≤ goodConst · (E_b + p_b + ∑δ) · exp(goodRate · ∑ε), with no dependence on the run length.
Source gaps this module has to fill (disclosed, from the graph NOTEs) #
- does not write the reindexing
a_l := |∇ℓ_{b−l} − ∇ℓ_b|, nor the identification of Grönwall'sH, nor the final passage from a bound on|∇ℓ_i − ∇ℓ_b|to one on|∇ℓ_i|. All three are performed explicitly here;His5 Cstab (iterM · E_b + p_b ∑ε + ∑δ). - performs the split
|∇ℓ_k| ≤ |∇ℓ_b| + |∇ℓ_k − ∇ℓ_b|silently; it is the stephεpbelow, and it is what makes the Grönwall recursion linear in the unknown|∇ℓ_k − ∇ℓ_b|. - asserts "Substituting back into
e.sum.excess.boundgives the same bound forE_i"; the substitution produces a sum∑ ε_k |∇ℓ_k|each of whose summands carries its own exponential, and the collapse to a single exponential is not shown. Here the collapse is explicit: every summand is bounded by the uniform run bound before summation, which is whyslopeGronwallis proved for allkin the run and not only at the bottom. - the
δ-sum index silently shifts between; the shape proved here uses the full run sum∑_{[a,b]} δin both places, which dominates either printed range.
Constants #
The θ^h < 3/5 gate enters only through reabsorbSum; h enters only through
iterM. Real.exp is kept opaque: the only facts used are x ≤ exp x,
monotonicity, and exp(x)exp(y) = exp(x+y).
Scope #
hmono/hstab are binders on the abstract sequences here and are not
hypotheses of the source lemma (see IterationCore.lean); nothing in this
module may be presented as l.iteration.lemma or as any part of it closed.
References #
- ABK26,
l.iteration.lemmaproof Step 2.
The slope bound on a run (e.grad.bound.good) #
e.grad.bound.good, uniform on the run [a,b].
The hypothesis hUb is the reabsorption e.sum.excess.bound at every base point
of the run; the conclusion is the Grönwall output at every point of the run.
The fold into the good-run constant #
The good-run bound (e.E.and.grad.bound.good) #
e.E.and.grad.bound.good at the bottom of a run of good scales, in the
length-independent form the assembly consumes:
E_a + p_a ≤ goodConst h κ Cstab · (E_b + p_b + ∑_{[a,b]} δ) · exp(goodRate Cstab · ∑_{[a,b]} ε).
1 ≤ h is not assumed: it follows from θ^h < 3/5.