Theorem 7.6 — the Sherali–Adams hierarchy reaches the integer hull,
ProvedDisjunctive.HigherDim.sherali_adams_reaches_hull_v2This is Theorem 7.6 of Balas's Disjunctive Programming (cited to Sherali and Adams [112]). Let be the LP relaxation of a mixed 0-1 program whose 0-1 variables are indexed by , , where the system contains the bound rows and (), and let . Let be the level- Sherali–Adams relaxation: multiply every row of by every product with disjoint, , linearize the monomials with moment variables (using for ) and project onto . Then
Formalization Note. The retired version allowed an arbitrary system ; with no rows, while lies in the unit box. Throughout Chapter 7 the book works with : the bound constraints are rows of the system that every construction multiplies. This is now the explicit hypothesis HasBoundRows A b N' (the system contains the rows for every and for every ); it is satisfiable with nonempty (e.g. the unit box) and excludes the disproof's instance with no rows. The definitions KtSet/IsXt/RowNLt are unchanged: they multiply all rows of the given system, hence the bound rows too, exactly as the book multiplies .
import Mathlib import Definitions.Def_Disjunctive_HigherDim_Basic import Definitions.Def_Disjunctive_HigherDim_Lifts import Definitions.Def_Disjunctive_HigherDim_BoundRows
namespace Disjunctive.HigherDim
/-- Theorem 7.6 (Balas, *Disjunctive Programming*, Springer 2018, §7.3, p. 95, [112]): for
`K = {x : Ãx ≥ b̃}` the LP relaxation of a mixed 0-1 program with `p = |N'|` 0-1 variables (bound
rows `x ≥ 0`, `x_j ≤ 1`, `j ∈ N'`, included in the system, `HasBoundRows`, so that the
Sherali-Adams multiplication applies to them as well), the top level of the Sherali-Adams
hierarchy is the integer hull: `K_p = conv(K₀)`.
Corrected: the retired version allowed systems without the bound rows, for which `K_p` need not
lie in the unit box. -/
theorem sherali_adams_reaches_hull_v2 {m n : ℕ} (A : Matrix (Fin m) (Fin n) ℝ) (b : Fin m → ℝ)
(Nprime : Finset (Fin n)) (hK : HasBoundRows A b Nprime) :
KtSet A b Nprime Nprime.card = convexHull ℝ (K0Set A b Nprime) := by sorry
end Disjunctive.HigherDim