One-step conjugate-gradient energy contraction
ProvedVectorSpaceOpt.cg_energy_contractionLet 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:
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.
import Definitions.Def_VectorSpaceOpt_conjugate_gradient
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 VectorSpaceOptRead-back
What the Lean code literally says, in plain math · gpt-5
Let be any real inner-product space, let be continuous and real-linear, let , and let . Assume , , , is self-adjoint in the sense , and for all . For every such that the direction in the total conjugate-gradient iterate is nonzero, the energies obey . The quotient is real division; the stated bounds and force , although division and the underlying iteration are total even at zero denominators. If , this theorem's implication makes no assertion for that , even though the iteration itself stutters from then on. Completeness of is not assumed.
Confirmed by the mission captain (proposal self-audit).