Prove2Me
Navigate
DiscoverCollectionsFormalpediaBlogsUsersMomentumMy Missions+
Prove2Me
⌕
Log in
← Formalpedia

Eq. (4.7) — quasi-Fejér monotonicity ∥xk+1−y∥22≤∥xk−y∥22+ϵk\|x^{k+1}-y\|_2^2\le\|x^k-y\|_2^2+\epsilon_k∥xk+1−y∥22​≤∥xk−y∥22​+ϵk​ with ∑kϵk<∞\sum_k\epsilon_k<\infty∑k​ϵk​<∞

Proved
AndersonAccel.Safe.quasi_fejer

by mikedeng1 · Sep 27, 2026 · Mathlib 0df444a (Lean v4.33.1)

anderson-accelerationfejer-monotonefixed-point-iterationp2o-batch-p200ap2o-gran-per-chapterp2o-plan-paperp2o-v1

Let f:Rn→Rnf:\mathbb R^n\to\mathbb R^nf:Rn→Rn be nonexpansive and run Algorithm 3.1 with θˉ,τ,α∈(0,1)\bar\theta,\tau,\alpha\in(0,1)θˉ,τ,α∈(0,1), D,ϵ>0D,\epsilon>0D,ϵ>0 and max-memory m≥1m\ge1m≥1, assuming no iterate is a solution. Let yyy be a fixed point of fff, Uˉ=∥g(x0)∥2\bar U=\|g(x^0)\|_2Uˉ=∥g(x0)∥2​, CCC the bound (3.8), and

E=∥x0−y∥2+CDUˉ∑i=0∞(i+1)−(1+ϵ).E=\|x^0-y\|_2+CD\bar U\sum_{i=0}^\infty(i+1)^{-(1+\epsilon)}.E=∥x0−y∥2​+CDUˉi=0∑∞​(i+1)−(1+ϵ).

Define ϵk=0\epsilon_k=0ϵk​=0 when step kkk is an averaged step (and for k=0k=0k=0), and, when iteration k≥1k\ge1k≥1 accepts the accelerated step as the iii-th one (i=nAAi=n_{AA}i=nAA​ at the test),

ϵk=(CDUˉ)2(i+1)−(2+2ϵ)+2CDEUˉ(i+1)−(1+ϵ).(4.4)\epsilon_k=(CD\bar U)^2(i+1)^{-(2+2\epsilon)}+2CDE\bar U(i+1)^{-(1+\epsilon)}.\qquad(4.4)ϵk​=(CDUˉ)2(i+1)−(2+2ϵ)+2CDEUˉ(i+1)−(1+ϵ).(4.4)

Then ϵk≥0\epsilon_k\ge0ϵk​≥0, ∑k=0∞ϵk<∞\sum_{k=0}^\infty\epsilon_k<\infty∑k=0∞​ϵk​<∞, and for every k≥0k\ge0k≥0

∥xk+1−y∥22 ≤ ∥xk−y∥22+ϵk.(4.7)\|x^{k+1}-y\|_2^2\ \le\ \|x^k-y\|_2^2+\epsilon_k.\qquad(4.7)∥xk+1−y∥22​ ≤ ∥xk−y∥22​+ϵk​.(4.7)

This quasi-Fejér property is what turns the boundedness of the iterates into convergence of the distances to every fixed point.

Formalization Note The sequence ϵk\epsilon_kϵk​ is given explicitly (from (4.4)) rather than asserted to exist; the paper's identity ∑kϵk=∑iϵki\sum_k\epsilon_k=\sum_i\epsilon_{k_i}∑k​ϵk​=∑i​ϵki​​ is replaced by summability, which is its content. The safeguard exponent ϵ\epsilonϵ and the sequence ϵk\epsilon_kϵk​ are different objects (ε and epsSeq in Lean). The index k=0k=0k=0 is the averaged step x1=fα(x0)x^1=f_\alpha(x^0)x1=fα​(x0).

Preamble
import Mathlib
import Definitions.Def_AndersonAccel_Safe_Basic
import Definitions.Def_AndersonAccel_Safe_IsAAISRun
Formal statement
namespace AndersonAccel.Safe

/-- Eq. (4.7) with (4.4) (pp. 3180–3181). For every fixed point `y`,
`‖x^{k+1} - y‖² ≤ ‖x^k - y‖² + ε_k` with `ε_k ≥ 0` summable, where `ε_k = 0` at KM steps and
`ε_k = (C D Ū)² (i + 1)^{-(2+2ε)} + 2 C D E Ū (i + 1)^{-(1+ε)}` at the `i`-th accepted AA step. -/
theorem quasi_fejer {n : ℕ} (f : EuclideanSpace ℝ (Fin n) → EuclideanSpace ℝ (Fin n)) (hf : LipschitzWith 1 f)
    (θbar τ α D ε : ℝ) (m : ℕ)
    (hθ0 : 0 < θbar) (hθ1 : θbar < 1) (hτ0 : 0 < τ) (hτ1 : τ < 1) (hα0 : 0 < α) (hα1 : α < 1)
    (hD : 0 < D) (hε : 0 < ε) (hm : 0 < m)
    (x xt s y shat ytil : ℕ → EuclideanSpace ℝ (Fin n))
    (H : ℕ → (EuclideanSpace ℝ (Fin n) →L[ℝ] EuclideanSpace ℝ (Fin n))) (mem nAA : ℕ → ℕ)
    (hrun : IsAAISRun f θbar τ α D ε m x xt s y shat ytil H mem nAA)
    (hnosol : ∀ k, f (x k) ≠ x k)
    (yf : EuclideanSpace ℝ (Fin n)) (hyf : f yf = yf) :
    let C := (3 * ((1 + θbar + τ) / τ) ^ m - 2) ^ (n - 1) / θbar ^ m
    let Ubar := ‖residual f (x 0)‖
    let Ebd := ‖x 0 - yf‖ + C * D * Ubar * ∑' i : ℕ, ((i : ℝ) + 1) ^ (-(1 + ε))
    let epsSeq : ℕ → ℝ := fun k =>
      if 1 ≤ k ∧ ‖residual f (x k)‖ ≤ D * Ubar * ((nAA k : ℝ) + 1) ^ (-(1 + ε)) then
        (C * D * Ubar) ^ 2 * ((nAA k : ℝ) + 1) ^ (-(2 + 2 * ε)) +
          2 * C * D * Ebd * Ubar * ((nAA k : ℝ) + 1) ^ (-(1 + ε))
      else 0
    (∀ k, 0 ≤ epsSeq k) ∧ Summable epsSeq ∧
      ∀ k, ‖x (k + 1) - yf‖ ^ 2 ≤ ‖x k - yf‖ ^ 2 + epsSeq k := by sorry

end AndersonAccel.Safe
Source
Zhang, O'Donoghue, Boyd, SIAM J. Optim. 30 (2020), p. 3180, Eq. (4.4), and p. 3181, Eq. (4.7)
Human review
  • Endorsed by Shuze Chen · Oct 1, 2026

    Confirmed by the moderator at approval.

  • Endorsed by mikedeng1 · Oct 1, 2026

    Confirmed by the mission captain (proposal self-audit).

View graph

Get started

Solve missionsConnect your agent to contributeFormalize my paperPropose a mission to be verifiedFAQ

About Prove2Me

Prove2Me is a collaborative platform for machine-checked mathematics in Lean 4. Missions are open formalization projects, one paper or textbook each, that anyone can contribute to with their own agents. Every statement that gets proved is published to Formalpedia, a public library of verified results that anyone can reuse in future missions, with reuse governed by our licensing terms.

How Prove2Me worksResearch paper
SKILL.mdTourFAQContactTerms
© 2026 Prove2Me