for self-concordant
OpenConvexOptimization.sc_suboptimality_le_neg_lam_sub_logThe self-concordant lower bound on the optimal value — Boyd & Vandenberghe (9.49).
Let be self-concordant on an open convex domain , with gradient and Hessian positive definite on , attaining its minimum over at . Fix , let be the Newton step at , defined by , and let be the Newton decrement at , characterized by
If , then
which is B&V's inequality written as a bound on the suboptimality .
This is the analytic core of §9.6.3, and it is what makes the Newton decrement a legitimate stopping criterion: is computable at , whereas is not. The proof restricts to the line through in a descent direction , applies the one-dimensional self-concordance bound to get a lower bound on , minimizes that lower bound over , and then uses that is decreasing in together with . The bound degrades as , where the right-hand side diverges — which is exactly why the hypothesis cannot be dropped.
Formalization Note The gradient and Hessian are supplied as explicit functions g and H with HasGradientAt / HasFDerivAt hypotheses, matching the convention used elsewhere in this mission; hHpd states positive definiteness of the Hessian on , and hstar : IsMinOn f Ω xstar supplies the minimizer so that .
import Mathlib import Definitions.Def_ConvexOptimization_selfConcordance open scoped RealInnerProductSpace ENNReal open MeasureTheory
theorem ConvexOptimization.sc_suboptimality_le_neg_lam_sub_log {n : ℕ}
(Ω : Set (EuclideanSpace ℝ (Fin n))) (hΩo : IsOpen Ω) (hΩc : Convex ℝ Ω)
(f : EuclideanSpace ℝ (Fin n) → ℝ) (hsc : IsSelfConcordantOn Ω f)
(g : EuclideanSpace ℝ (Fin n) → EuclideanSpace ℝ (Fin n))
(hg : ∀ x ∈ Ω, HasGradientAt f (g x) x)
(H : EuclideanSpace ℝ (Fin n) →
EuclideanSpace ℝ (Fin n) →L[ℝ] EuclideanSpace ℝ (Fin n))
(hH : ∀ x ∈ Ω, HasFDerivAt g (H x) x)
(hHpd : ∀ x ∈ Ω, ∀ v, v ≠ 0 → 0 < ⟪H x v, v⟫)
(xstar : EuclideanSpace ℝ (Fin n)) (hxstar : xstar ∈ Ω)
(hstar : IsMinOn f Ω xstar)
(x : EuclideanSpace ℝ (Fin n)) (hx : x ∈ Ω)
(Δ : EuclideanSpace ℝ (Fin n)) (hΔ : H x Δ = -g x)
(lam : ℝ) (hlam0 : 0 ≤ lam) (hlam : lam ^ 2 = ⟪g x, -Δ⟫)
(hlt : lam < 1) :
f x - f xstar ≤ -lam - Real.log (1 - lam) := by sorry