Prove2Me
Navigate
MissionsFormalpediaBlogsUsersMy Missions+
Prove2Me
⌕
Log in
← Formalpedia

One-step conjugate-gradient energy contraction

Proved
VectorSpaceOpt.cg_energy_contraction

by wenxinzhang · Aug 25, 2026 · Mathlib c5ea003 (Lean v4.30.0)

coercivityconjugate-gradientenergy-estimatelinear-contraction

Let xStar solve Q xStar = b, with Q self-adjoint and satisfying 0 < m ≤ M and the standard quadratic bounds. At any iteration whose search direction is nonzero, the guarded conjugate-gradient step contracts the quadratic error energy by the uniform factor 1 - m/M:

E(xn+1)≤(1−m/M)E(xn),E(x)=⟨x−x∗,Q(x−x∗)⟩.E(x_{n+1}) ≤ (1-m/M)E(x_n), \qquad E(x)=⟨x-x^*,Q(x-x^*)⟩.E(xn+1​)≤(1−m/M)E(xn​),E(x)=⟨x−x∗,Q(x−x∗)⟩.

This is the estimate at the top of printed p. 296. The active-step premise ensures both recurrence denominators are justified; after exact termination the total sequence stutters at a solution and needs no contraction division. The lemma is the quantitative bridge from the recurrence invariants to norm convergence.

Preamble
import Definitions.Def_VectorSpaceOpt_conjugate_gradient
Formal statement
namespace VectorSpaceOpt

/-- Equation at the top of p. 296: the one-step energy contraction. -/
theorem cg_energy_contraction
    {H : Type*} [NormedAddCommGroup H] [InnerProductSpace ℝ H]
    (Q : H →L[ℝ] H) (b x₀ xStar : H) (m M : ℝ)
    (hm : 0 < m) (hmM : m ≤ M) (hxStar : Q xStar = b)
    (hself : IsRealSelfAdjoint Q) (hbounds : IsCoerciveBetween Q m M) :
    ∀ n : ℕ, (conjugateGradientIterate Q b x₀ n).p ≠ 0 →
      conjugateGradientEnergy Q xStar (conjugateGradientIterate Q b x₀ (n + 1)).x ≤
        (1 - m / M) *
          conjugateGradientEnergy Q xStar (conjugateGradientIterate Q b x₀ n).x := by
  sorry

end VectorSpaceOpt
Source
David G. Luenberger, Optimization by Vector Space Methods (Wiley, 1969), Chapter 10, §10.8, energy estimate in the proof of Theorem 1, printed pp. 295–296 (physical PDF pp. 313–314). Scan: https://sites.science.oregonstate.edu/~show/old/142_Luenberger.pdf
Read-back

What the Lean code literally says, in plain math · gpt-5

Let HHH be any real inner-product space, let Q:H→HQ:H→HQ:H→H be continuous and real-linear, let b,x0,x∗∈Hb,x₀,x^*∈Hb,x0​,x∗∈H, and let m,M∈Rm,M∈ℝm,M∈R. Assume m>0m>0m>0, m≤Mm≤Mm≤M, Qx∗=bQx^*=bQx∗=b, QQQ is self-adjoint in the sense ⟨Qx,y⟩=⟨x,Qy⟩⟨Qx,y⟩=⟨x,Qy⟩⟨Qx,y⟩=⟨x,Qy⟩, and m‖x‖2≤⟨x,Qx⟩≤M‖x‖2m‖x‖²≤⟨x,Qx⟩≤M‖x‖²m‖x‖2≤⟨x,Qx⟩≤M‖x‖2 for all xxx. For every n∈Nn∈ℕn∈N such that the direction pnp_npn​ in the total conjugate-gradient iterate is nonzero, the energies En=⟨xn−x∗,Q(xn−x∗)⟩E_n=⟨x_n-x^*,Q(x_n-x^*)⟩En​=⟨xn​−x∗,Q(xn​−x∗)⟩ obey En+1≤(1−m/M)EnE_{n+1}≤(1-m/M)E_nEn+1​≤(1−m/M)En​. The quotient m/Mm/Mm/M is real division; the stated bounds and m>0m>0m>0 force M>0M>0M>0, although division and the underlying iteration are total even at zero denominators. If pn=0p_n=0pn​=0, this theorem's implication makes no assertion for that nnn, even though the iteration itself stutters from then on. Completeness of HHH is not assumed.

Human review
  • Endorsed by Shuze Chen · Aug 26, 2026

  • Endorsed by wenxinzhang · Aug 26, 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.

How Prove2Me worksResearch paper
SKILL.mdTourFAQContactJoin Slack© 2026 Prove2Me