Corollary 13.21 — lifted description of via
OpenDisjunctive.Polymatroids.polymatroid_union_lifted_v2This is Corollary 13.21 of Balas's Disjunctive Programming: the same-ground-set specialization of Proposition 13.16, obtained through the same-space reduction of Theorem 13.18.
Let be set functions on satisfying conditions 1-3 of Application 1: , for , and nondecreasing. Let be the corresponding polytopes in the unit cube. Then is the set of for which there exist with
and
By Proposition 13.16 the last two conditions say exactly that . In the complemented variables , , , where the polytopes become upper monotone and Theorem 13.18 applies, the relation reads .
Formalization Note. The retired version wrote in the original variables and put no box constraints on . Then for it admitted although . The polymatroid-type polytopes are lower monotone, while Theorem 13.18 is stated for upper monotone polytopes, so the reduction must be applied in complemented variables. Translated back, this gives with ; the box constraints of Proposition 13.16 are now explicit. As in Application 1, the polytopes are taken inside , i.e. . For this is automatic from , and for it is the reading under which the right-hand side, a subset of , can match.
import Mathlib import Definitions.Def_Disjunctive_Polymatroids_Basic
namespace Disjunctive.Polymatroids
/-- Corollary 13.21 (Balas, *Disjunctive Programming*, Springer 2018, §13.7, p. 231): for set
functions `r₁, r₂` on `N` satisfying conditions 1-3 of Application 1, with the two polytopes
`P(r₁), P(r₂)` taken inside `[0,1]ⁿ` as in Application 1,
`conv(P(r₁) ∪ P(r₂))` is the set of `w ∈ [0,1]ⁿ` such that `w = x + y - 𝟙` for some
`(x, y) ∈ [0,1]ⁿ × [0,1]ⁿ` satisfying
`(|A| - x(A))/(|A| - r₁(A)) + (|B| - y(B))/(|B| - r₂(B)) ≥ 1` for all `A, B ⊆ N` with
`r₁(A) < |A|`, `r₂(B) < |B|`; i.e. `(x, y) ∈ conv Z(r₁, r₂)` by Proposition 13.16. In the
complemented variables `w̄ = 𝟙 - w`, `x̄ = 𝟙 - x`, `ȳ = 𝟙 - y` in which the book's Theorem 13.18
(for upper monotone polytopes) is applied, this is the book's `w̄ = x̄ + ȳ`.
Correction w.r.t. the retired version: the retired statement wrote `w = x + y` in the original
variables and dropped the box constraints `0 ≤ x, y ≤ 𝟙` of `conv Z(r₁, r₂)`; then for
`r₁ = r₂ = 0` the point `w = 1` was admitted although `conv(P(r₁) ∪ P(r₂)) = {0}`. -/
theorem polymatroid_union_lifted_v2 {n : ℕ} (r1 r2 : Finset (Fin n) → ℝ)
(hr1 : IsApp1SetFunction r1) (hr2 : IsApp1SetFunction r2) :
convexHull ℝ ((PolymatroidP r1 ∩ {x | ∀ i, x i ≤ 1}) ∪
(PolymatroidP r2 ∩ {x | ∀ i, x i ≤ 1})) =
{w : Fin n → ℝ | (∀ i, 0 ≤ w i ∧ w i ≤ 1) ∧
∃ x y : Fin n → ℝ, (∀ i, 0 ≤ x i ∧ x i ≤ 1) ∧ (∀ i, 0 ≤ y i ∧ y i ≤ 1) ∧
(∀ i, w i = x i + y i - 1) ∧
∀ A B : Finset (Fin n), r1 A < A.card → r2 B < B.card →
1 ≤ ((A.card : ℝ) - SumOver x A) / ((A.card : ℝ) - r1 A) +
((B.card : ℝ) - SumOver y B) / ((B.card : ℝ) - r2 B)} := by sorry
end Disjunctive.Polymatroids