Theorem 4.1 — the active set is identified in finitely many steps at a nondegenerate point
ProvedCalamaiMore.ActiveSet.activeSet_eventually_eqLet be a polyhedral set in a finite-dimensional real inner product space , with active sets , and let be continuously differentiable on . Let be an arbitrary sequence in converging to , and let be the projected gradient. If
and is nondegenerate (the active normals are linearly independent and with every ), then
The result does not depend on how the sequence is generated: any method whose iterates stay feasible, converge, and drive the projected gradient to zero identifies the optimal active set after finitely many iterations, after which it behaves like a method for an equality-constrained problem.
Formalization Note The constraints are indexed by Fin m; "for all sufficiently large" is ∀ᶠ k in atTop, and the conclusion is equality of finite sets of indices, not inclusion.
import Mathlib import Definitions.Def_CalamaiMore_ActiveSet_projGrad import Definitions.Def_CalamaiMore_ActiveSet_IsNondegenerate
namespace CalamaiMore.ActiveSet
/-- Calamai–Moré, Theorem 4.1 (p. 106): let `Ω = {x : ⟨c_j, x⟩ ≥ δ_j, j = 1, …, m}` be
polyhedral, `f` continuously differentiable on `Ω`, and `{x_k}` an arbitrary sequence in `Ω`
converging to `x*`. If `‖∇_Ω f(x_k)‖ → 0` and `x*` is nondegenerate, then
`A(x_k) = A(x*)` for all `k` sufficiently large. -/
theorem activeSet_eventually_eq {E : Type*} [NormedAddCommGroup E] [InnerProductSpace ℝ E]
[FiniteDimensional ℝ E] {m : ℕ} (c : Fin m → E) (δ : Fin m → ℝ)
(f : E → ℝ) (hfd : ∀ x ∈ polyhedron c δ, DifferentiableAt ℝ f x)
(hfc : ContinuousOn (gradient f) (polyhedron c δ))
(x : ℕ → E) (xs : E) (hx : ∀ k, x k ∈ polyhedron c δ)
(hlim : Filter.Tendsto x Filter.atTop (nhds xs))
(hpg : Filter.Tendsto (fun k => ‖projGrad f (polyhedron c δ) (x k)‖) Filter.atTop (nhds 0))
(hnd : IsNondegenerate c δ f xs) :
∀ᶠ k in Filter.atTop, activeSet c δ (x k) = activeSet c δ xs := by sorry
end CalamaiMore.ActiveSet
Confirmed by the mission captain (proposal self-audit).
Confirmed by the moderator at approval.