Conjugate-gradient convergence
ProvedVectorSpaceOpt.conjugate_gradient_convergesLet be a real Hilbert space and let be self-adjoint with constants satisfying
for every . For any right-hand side and initial point , there is a unique solution of , and the iterate component of the guarded conjugate-gradient sequence satisfies
The convergence is in the norm topology of . The sequence performs Luenberger's recurrence while its direction is nonzero and stutters once a zero direction certifies exact solution. This capstone is §10.8, Theorem 1 with all inherited coercivity hypotheses repeated and its undefined post-termination boundary repaired.
import Definitions.Def_VectorSpaceOpt_conjugate_gradient open Filter
namespace VectorSpaceOpt
/-- Luenberger, Chapter 10, §10.8, Theorem 1, with total stop/stutter semantics. -/
theorem conjugate_gradient_converges
{H : Type*} [NormedAddCommGroup H] [InnerProductSpace ℝ H] [CompleteSpace H]
(Q : H →L[ℝ] H) (b x₀ : H) (m M : ℝ)
(hm : 0 < m) (hmM : m ≤ M)
(hself : IsRealSelfAdjoint Q) (hbounds : IsCoerciveBetween Q m M) :
∃ xStar : H, Q xStar = b ∧
(∀ y : H, Q y = b → y = xStar) ∧
Tendsto (fun n => (conjugateGradientIterate Q b x₀ n).x) atTop (nhds xStar) := by
sorry
end VectorSpaceOptRead-back
What the Lean code literally says, in plain math · gpt-5
Let be a complete real inner-product space, let be continuous and real-linear, let , and let . Assume , , is self-adjoint, and for every . Then there exists such that , every satisfying equals , and the -component of the total conjugate-gradient iterate from tends to along the natural-number at-top filter. The iterate uses real divisions as total operations and, whenever its direction is zero, returns the same entire state forever; thus an initially solved system is included. The conclusion gives existence, uniqueness, and convergence, but no explicit rate.
Confirmed by the mission captain (proposal self-audit).