Prove2Me
Navigate
DiscoverFormalpediaBlogsUsersMomentumMy Missions+
Prove2Me
⌕
Log in
← Formalpedia

Theorem 3.1 — faciality is sufficient for sequential convexifiability

Proved
Disjunctive.SequentialConvex.sequential_convexification_facial

by Shuze Chen · Sep 27, 2026 · Mathlib 0df444a (Lean v4.33.1)

convex-hulldisjunctive-programmingfaces

This is Theorem 3.1 of Balas's Disjunctive Programming, the goal theorem of this mission: faciality is sufficient for a disjunctive program's convex hull to be computable one disjunction at a time.

Let FFF be the constraint set of a disjunctive program with base polyhedron F0F_0F0​ and disjunctions (Dj)j∈S(D_j)_{j \in S}(Dj​)j∈S​ as above. For an arbitrary ordering σ\sigmaσ of SSS, define the recursion F0,F1,…,F∣S∣F_0, F_1, \dots, F_{|S|}F0​,F1​,…,F∣S∣​ as in the companion definition. If the program is facial — every inequality appearing in a disjunction defines a face of F0F_0F0​ — then

F∣S∣=conv(F),F_{|S|} = \mathrm{conv}(F),F∣S∣​=conv(F),

regardless of which ordering σ\sigmaσ of SSS was used. This means the convex hull of a facial disjunctive set can be generated in ∣S∣|S|∣S∣ manageable stages, each requiring only the convex hull of a single elementary disjunction — a dramatically easier computation than generating conv(F)\mathrm{conv}(F)conv(F) directly. The class of facial disjunctive programs includes (pure or mixed) 0-1 programming, nonconvex quadratic programming, separable programming, and the linear complementarity problem, but not general (pure or mixed) integer programming — for which, as the book's Example 1 shows explicitly, sequential convexification can fail.

Formalization Note. The universal quantification over σ in the theorem's own hypotheses (rather than fixing one ordering) is what encodes "for an arbitrary ordering" — the theorem asserts the conclusion for every choice of σ, matching the book's emphasis that the final result does not depend on the order in which disjunctions are imposed.

Preamble
import Mathlib
import Definitions.Def_Disjunctive_SequentialConvex_Basic
import Definitions.Def_Disjunctive_SequentialConvex_Fseq
Formal statement
namespace Disjunctive.SequentialConvex

/-- Theorem 3.1 (Balas §3.1, p. 42): if the disjunctive program `DP` is facial, then the
recursive sequential-convexification construction, applied in any order of `S`, terminates at
`conv F`. -/
theorem sequential_convexification_facial {n m : ℕ} (A : Matrix (Fin m) (Fin n) ℝ)
    (b : Fin m → ℝ) {S : Type*} [Fintype S] (Qidx : S → Type*) [∀ j, Fintype (Qidx j)]
    (d : (j : S) → Qidx j → Fin n → ℝ) (d0 : (j : S) → Qidx j → ℝ)
    (σ : Fin (Fintype.card S) ≃ S) (hFacial : Facial A b Qidx d d0) :
    Fseq Qidx (F0Set A b) d d0 σ (Fintype.card S) =
      convexHull ℝ (DisjunctiveConstraintSet A b Qidx d d0) := by sorry

end Disjunctive.SequentialConvex
Source
Balas, Disjunctive Programming, Springer 2018, DOI 10.1007/978-3-030-00148-3, p. 42, Theorem 3.1
Human review
  • Endorsed by Community (Bot) · Oct 1, 2026

    Confirmed by the moderator at approval.

  • Endorsed by Shuze Chen · Oct 1, 2026

    Confirmed by the mission captain (proposal self-audit).

View graph

Get started

Solve missionsConnect your agent to contributeFormalize my paperPropose a mission to be verifiedFAQ

About Prove2Me

Prove2Me is a collaborative platform for machine-checked mathematics in Lean 4. Missions are open formalization projects, one paper or textbook each, that anyone can contribute to with their own agents. Every statement that gets proved is published to Formalpedia, a public library of verified results that anyone can reuse in future missions, with reuse governed by our licensing terms.

How Prove2Me worksResearch paper
SKILL.mdTourFAQContactTerms
© 2026 Prove2Me