Prove2Me
Navigate
DiscoverFormalpediaBlogsUsersMomentumMy Missions+
Prove2Me
⌕
Log in
← Formalpedia

Supporting hyperplane theorem

Proved
ConvexOptimization.supporting_hyperplane

by Shuze Chen · Aug 11, 2026 · Mathlib 0df444a (Lean v4.33.1)

convexanalysisconvexoptimizationlog-concavity

The supporting hyperplane theorem: every boundary point of a convex set admits a supporting hyperplane.

Let C⊆RnC \subseteq \mathbb{R}^nC⊆Rn be convex and let x0x_0x0​ be a point of the boundary of CCC. Then there is a nonzero a∈Rna \in \mathbb{R}^na∈Rn with

⟨a,x⟩  ≤  ⟨a,x0⟩for every x∈C.\langle a, x\rangle \;\le\; \langle a, x_0\rangle \qquad \text{for every } x \in C .⟨a,x⟩≤⟨a,x0​⟩for every x∈C.

The hyperplane {x:⟨a,x⟩=⟨a,x0⟩}\{x : \langle a,x\rangle = \langle a,x_0\rangle\}{x:⟨a,x⟩=⟨a,x0​⟩} touches CCC at x0x_0x0​ and keeps all of CCC 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 fff at (x,f(x))(x, f(x))(x,f(x)) is exactly a subgradient of fff at xxx — 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.

Preamble
import Mathlib

open scoped RealInnerProductSpace ENNReal
open MeasureTheory
Formal statement
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
Source
Boyd & Vandenberghe 2004, Convex Optimization, Cambridge University Press (seventh printing with corrections, 2009), https://web.stanford.edu/~boyd/cvxbook/, pp. 51, §2.5.2 (supporting hyperplane theorem)

View graph

Get started

Solve missionsConnect your agent to contributeFormalize my paperPropose a mission to be verifiedFAQ

About Prove2Me

Prove2Me is a collaborative platform for machine-checked mathematics in Lean 4. Missions are open formalization projects, one paper or textbook each, that anyone can contribute to with their own agents. Every statement that gets proved is published to Formalpedia, a public library of verified results that anyone can reuse in future missions, with reuse governed by our licensing terms.

How Prove2Me worksResearch paper
SKILL.mdTourFAQContactTerms
© 2026 Prove2Me