Theorem 11.2 — every facet of conv cutting off a vertex of is a standard intersection cut
OpenDisjunctive.GeneralDisjunctions.standard_intersection_cuts_complete_v2Let be the LP relaxation, written in the space of structural and surplus variables, with rational data, and let . Let be a facet of defined by the inequality (valid for ), and suppose cuts off some vertex of . Then is defined by a standard intersection cut: there is a vertex of with , with nonbasic set and simplex tableau (), such that the halfspace is -free at (, ) and the intersection cut
derived from and the LP cone coincides with on , i.e. after the basic variables are expressed through the nonbasic ones.
Formalization Note. The retired version compared the intersection cut, an inequality in the nonbasic variables only, with literally on all of , which is false whenever has basic components (Balas compares them after substituting the tableau); it also had no link between the tableau and , took to be an arbitrary subset of (then the theorem is false: , , facet at has a negative coefficient on a nonbasic variable), and assumed every extreme ray exits . Now: the comparison is on the affine hull of the tableau; , , the vertex and its tableau are the book's objects (rational data, as assumed by Balas–Kis); a ray that never leaves gets coefficient ; and, as in the book's statement ("is defined by a standard intersection cut"), the vertex is existentially quantified — the proof takes a vertex minimizing over , at which every .
import Mathlib import Definitions.Def_Disjunctive_GeneralDisjunctions_Basic import Definitions.Def_Disjunctive_GeneralDisjunctions_Corner import Definitions.Def_Disjunctive_GeneralDisjunctions_SIC
namespace Disjunctive.GeneralDisjunctions
/-- Theorem 11.2 (Balas, *Disjunctive Programming*, §11.2, p. 152, [25]; Balas–Kis 2016,
Theorem 13), the goal theorem of this mission: every facet of `conv P_I`, defined by
`φx ≥ φ0`, that cuts off some vertex of `P` is defined by a standard intersection cut. Precisely:
there is a vertex `v` of `P` cut off by the facet, with cobasis `J` and simplex tableau `ā`, such
that the halfspace `T := {x : φx ≤ φ0}` is `P_I`-free at `v` and the standard intersection cut
`∑_{j∈J} x_j/λ*_j ≥ 1` derived from `T` and the LP cone `C(J)` coincides with `φx ≥ φ0` on the
solution set of `Ax = b` (i.e. after substituting the tableau for the basic variables).
Setting (Balas Ch. 1/11): `P = {x ∈ ℝ^ι : Ax = b, x ≥ 0}` in the space of structural and
surplus variables, rational data, `P_I = P ∩ {x_j ∈ ℤ, j ∈ N'}`.
Corrected from the retired version, which compared the intersection cut (a constraint on the
nonbasic coordinates only) with `φx ≥ φ0` literally on all of `ℝ^ι`, had no link between the
tableau `ā` and `P`, took `P_I` to be an arbitrary subset of `P` (for which the theorem is
false), and assumed that every extreme ray exits `T` at a finite parameter (`λ*_j = ∞`, i.e.
coefficient `0`, is now allowed via `sicCoef`). -/
theorem standard_intersection_cuts_complete_v2 {ι : Type*} [Fintype ι] [DecidableEq ι] {m : ℕ}
(A : Matrix (Fin m) ι ℝ) (b : Fin m → ℝ) (hrat : IsRationalData A b) (Nprime : Finset ι)
(phi : ι → ℝ) (phi0 : ℝ)
(hvalid : ∀ x ∈ MixedIntegerSet A b Nprime, phi0 ≤ dotProduct phi x)
(hfacet : IsFacet (convexHull ℝ (MixedIntegerSet A b Nprime))
{x ∈ convexHull ℝ (MixedIntegerSet A b Nprime) | dotProduct phi x = phi0})
(hcutoff : ∃ v ∈ Set.extremePoints ℝ (LPFeasible A b), dotProduct phi v < phi0) :
∃ (I J : Finset ι) (abar : ι → ι → ℝ) (v : ι → ℝ),
IsBasicFeasibleSolution A b I J abar v ∧ dotProduct phi v < phi0 ∧
PIFree {x | dotProduct phi x ≤ phi0} (MixedIntegerSet A b Nprime) v ∧
SICSet {x | dotProduct phi x ≤ phi0} I J abar v ∩ {x | A.mulVec x = b} =
{x | phi0 ≤ dotProduct phi x} ∩ {x | A.mulVec x = b} := by sorry
end Disjunctive.GeneralDisjunctions