Supporting hyperplane theorem
ProvedConvexOptimization.supporting_hyperplaneThe supporting hyperplane theorem: every boundary point of a convex set admits a supporting hyperplane.
Let be convex and let be a point of the boundary of . Then there is a nonzero with
The hyperplane touches at and keeps all of on one side. There is no uniqueness claim: at a corner of a polytope infinitely many supporting hyperplanes exist.
Supporting hyperplanes are the geometric form of the subgradient — a supporting hyperplane to the epigraph of at is exactly a subgradient of at — and they are the mechanism by which a convex set is recovered as the intersection of the halfspaces containing it, which is the converse direction of the separation theory.
Formalization Note Boundary membership is x₀ ∈ frontier C; no closedness hypothesis on C is needed, since a frontier point of C need not belong to C, and the conclusion is stated for points of C only. Source: B&V §2.5.2, p. 51.
import Mathlib open scoped RealInnerProductSpace ENNReal open MeasureTheory
theorem ConvexOptimization.supporting_hyperplane {n : ℕ}
(C : Set (EuclideanSpace ℝ (Fin n))) (hC : Convex ℝ C)
(x₀ : EuclideanSpace ℝ (Fin n)) (hx₀ : x₀ ∈ frontier C) :
∃ a : EuclideanSpace ℝ (Fin n), a ≠ 0 ∧ ∀ x ∈ C, ⟪a, x⟫ ≤ ⟪a, x₀⟫ := by
sorry