Theorem 12.5 — V-polyhedral cuts, CGLP (12.9) cuts and generalized intersection cuts coincide (nonempty disjuncts)
ProvedDisjunctive.VPolyhedral.v_polyhedral_lp_gic_equivalence_v2This is Theorem 12.5 of Balas's Disjunctive Programming, the goal theorem of the mission. It unifies V-polyhedral cuts, lift-and-project cuts and generalized intersection cuts.
Let be finite. For each let the relaxed disjunct coincide with , where (every disjunct is nonempty). Let and let be a cut with . Then the following are equivalent:
- satisfies the point-ray system (12.8), i.e. for all and for all , ;
- for some and multipliers , the scaled cut together with is feasible for the cut-generating LP (12.9):
and the same is a generalized intersection cut from relative to : it is valid for every point of outside and violated by some point of .
Formalization Note. The retired version allowed a disjunct with no vertices. Then both descriptions in hDesc could be the empty set, condition 1 held vacuously, and the CGLP forced . The book's disjuncts are nonempty and its disjunction has at least one term, so the new statement adds the instance hypotheses [Nonempty Q] and [∀ h, Nonempty (Vidx h)]. With the normalization is unsatisfiable. The rest is unchanged: the scaling accounts for the normalization of (12.9), and the generalized-intersection-cut property is the local characterization IsGICFromS.
import Mathlib import Definitions.Def_Disjunctive_VPolyhedral_Basic
namespace Disjunctive.VPolyhedral
/-- Theorem 12.5 (Balas, *Disjunctive Programming*, Springer 2018, §12.2, p. 207), the goal
theorem of the mission: the V-polyhedral cuts `αx ≥ β` valid for the combined system (12.8) are
exactly (up to the positive scaling fixed by the normalization `Σ_h u^h e = 1` of (12.9)) the
lift-and-project cuts from feasible solutions of the CGLP (12.9), and these are the generalized
intersection cuts from `S := {x : u^h D̃^h x ≤ u^h d̃^h_0, h ∈ Q}` built from the same
multipliers. The disjunction has at least one term (`Q ≠ ∅`), every relaxed disjunct
`P̃^h = conv Ṽ^h + cone R̃^h = {x : D̃^h x ≥ d̃^h_0}` is nonempty (`Ṽ^h ≠ ∅`), and the cut is one
that the point `x̄ ∈ P` violates.
Correction w.r.t. the retired version: the book's standing assumptions that the disjunction has
a term and that every disjunct is nonempty are now the instance hypotheses `[Nonempty Q]` and
`[∀ h, Nonempty (Vidx h)]`; without them both sides of `hDesc` can be empty, making the left
side vacuous while the CGLP forces `α = 0`. -/
theorem v_polyhedral_lp_gic_equivalence_v2 {n : ℕ} {Q : Type*} [Fintype Q] [Nonempty Q]
{Rh : Q → ℕ}
(Vidx Ridx : Q → Type*) [∀ h, Fintype (Vidx h)] [∀ h, Fintype (Ridx h)]
[∀ h, Nonempty (Vidx h)]
(vpt : ∀ h, Vidx h → Fin n → ℝ) (rvec : ∀ h, Ridx h → Fin n → ℝ)
(Dtil : ∀ h, Matrix (Fin (Rh h)) (Fin n) ℝ) (d0til : ∀ h, Fin (Rh h) → ℝ)
(hDesc : ∀ h, {x : Fin n → ℝ | ∀ i, d0til h i ≤ ((Dtil h).mulVec x) i} =
{x : Fin n → ℝ | ∃ (lam : Vidx h → ℝ) (mu : Ridx h → ℝ), 0 ≤ lam ∧ 0 ≤ mu ∧
∑ p, lam p = 1 ∧ x = (∑ p, lam p • vpt h p) + ∑ r, mu r • rvec h r})
(P : Set (Fin n → ℝ)) (xbar : Fin n → ℝ) (hxbar : xbar ∈ P)
(alpha : Fin n → ℝ) (beta : ℝ) (hviol : dotProduct alpha xbar < beta) :
IsVPolyhedralValid Vidx Ridx vpt rvec alpha beta ↔
∃ (t : ℝ) (u : ∀ h, Fin (Rh h) → ℝ), 0 < t ∧
IsCGLP129Feasible Dtil d0til (t • alpha) u (t * beta) ∧
IsGICFromS Dtil d0til P u (t • alpha) (t * beta) := by sorry
end Disjunctive.VPolyhedral