Theorem 13.7 — the facets of the dominant of an arbitrary polytope
ProvedDisjunctive.Dominants.general_dominant_facet_characterization_v2This is Theorem 13.7 of Balas's Disjunctive Programming, the goal theorem of the mission: a complete, facet-exact description of the dominant of an arbitrary polytope, not necessarily upper monotone.
Let be a nonempty polytope and its dominant. For let be the projection of onto the coordinates in , and let be the set of inequalities that are valid for , have exactly for , and hold with equality at linearly independent points of . Then
and every one of these inequalities defines a facet of .
Formalization Note. The retired version took to be an arbitrary nonempty subset of . A non-convex , e.g. , has a non-convex dominant, which no system of linear inequalities describes. The new statement requires, as the book does, that be a polytope: the convex hull of a finite set (hypothesis hPoly) contained in (hcube). Nonemptiness is kept, since for the dominant is empty. The definitions of , , (IsInIS, with linear independence of the -coordinates) and of a facet are unchanged.
import Mathlib import Definitions.Def_Disjunctive_Dominants_Basic
namespace Disjunctive.Dominants
/-- Theorem 13.7 (Balas, *Disjunctive Programming*, Springer 2018, §13.2, p. 219-220), the goal
theorem of the mission: for an arbitrary nonempty polytope `P ⊆ [0,1]ⁿ` (not necessarily upper
monotone), `P⁺ = {x ≥ 0 : πx ≥ 1 for every S ⊆ N and π ∈ I^S}`, and every one of these
inequalities is facet-defining for `P⁺`.
Correction w.r.t. the retired version: `P` was an arbitrary set; it is now a polytope (the convex
hull of a finite point set, hypothesis `hPoly`) contained in the unit cube (`hcube`), as in the
book. A non-convex `P` has a non-convex dominant, which no system of linear inequalities can
describe. -/
theorem general_dominant_facet_characterization_v2 {n : ℕ} (P : Set (Fin n → ℝ))
(hPoly : ∃ V : Finset (Fin n → ℝ), P = convexHull ℝ (V : Set (Fin n → ℝ)))
(hcube : P ⊆ UnitCube n) (hP : P.Nonempty) :
Dominant P = {x | 0 ≤ x ∧ ∀ (S : Finset (Fin n)) (pi : Fin n → ℝ), IsInIS S P pi →
1 ≤ dotProduct pi x} ∧
∀ (S : Finset (Fin n)) (pi : Fin n → ℝ), IsInIS S P pi →
IsFacet (Dominant P) ({x ∈ Dominant P | dotProduct pi x = 1}) := by sorry
end Disjunctive.Dominants