Theorem 2.18 — facets of are the extreme rays of
ProvedDisjunctive.Polarity.facet_characterization_polarity_v2This is Theorem 2.18 of Balas's Disjunctive Programming, the culminating result of Chapter 2: the facets of the closed convex hull of a union of polyhedra are exactly the extreme rays of the explicit cone .
Let (), , , and
Assume is full-dimensional, . Then for and :
where " defines a facet" means that the inequality is valid for and is a facet of .
Formalization Note. The retired version expressed "defines a facet" by IsFacet applied to , which does not say on which side of the hyperplane lies; it was refuted by , , (, not , is the valid facet inequality). The new predicate DefinesFacetGE (module Disjunctive_Polarity_FacetDefining) adds validity of . The hypothesis is made explicit: an inequality in the book's sense has a nonzero normal, and without it the statement fails, since for the cone has the extreme ray , while defines no facet. With the statement is the standard fact that is the cone of valid inequalities of the full-dimensional polyhedron (Theorem 1.2 / Corollary 2.17), whose extreme rays are its facet inequalities and possibly . Full-dimensionality is PolyDim F = n (affine hull of is ).
import Mathlib import Definitions.Def_Disjunctive_Polarity_Projection import Definitions.Def_Disjunctive_Polarity_Polars import Definitions.Def_Disjunctive_Polarity_FacetDefining
namespace Disjunctive.Polarity
/-- Theorem 2.18 (Balas, *Disjunctive Programming*, Springer 2018, §2.4, p. 36): let the
disjunctive set `F = ⋃_{h ∈ Q} P_h` be full-dimensional (`dim F = n`). Then for `α ≠ 0` and
`α₀ ≠ 0`, the inequality `α x ≥ α₀` defines a facet of `cl conv F` (it is valid for `cl conv F`
and cuts out a facet of it) if and only if `(α, α₀)` is an extreme ray of the cone `W₀`.
Version 2: (a) "defines a facet" now includes validity of `α x ≥ α₀` (`DefinesFacetGE`); the
retired `IsFacet` condition also accepted the reversed inequality `α x ≤ α₀` (`[0,1]`, `α = 1`,
`α₀ = 1`). (b) `α ≠ 0` is made explicit: for `F = [0, ∞) ⊆ ℝ`, `W₀ = {α ≥ 0, α₀ ≤ 0}` has the
extreme ray `(0, -1)`, which defines no facet; an inequality `α x ≥ α₀` in the book's sense has a
nonzero normal. -/
theorem facet_characterization_polarity_v2 {n : ℕ} {Q : Type*} [Fintype Q] (m : Q → ℕ)
(A : (h : Q) → Matrix (Fin (m h)) (Fin n) ℝ) (b : (h : Q) → Fin (m h) → ℝ)
(hdim : PolyDim (DisjunctiveSet m A b) = (n : ℤ)) (α : Fin n → ℝ) (α0 : ℝ)
(hα : α ≠ 0) (hα0 : α0 ≠ 0) :
DefinesFacetGE (closure (convexHull ℝ (DisjunctiveSet m A b))) α α0 ↔
IsExtremeRay (W0 m A b) (α, α0) := by sorry
end Disjunctive.Polarity