Proposition 7.5 — is convex polyhedral in on , concave polyhedral in , convex polyhedral in
ProvedWets1974.Stability.recourse_polyhedralConsider the recourse function of a stochastic program with fixed recourse , the support of the law of , and the induced constraint set (Corollary 4.5). Then:
- In . For each , either is a finite convex polyhedral function on (a maximum of finitely many affine functions of there), or for every .
- In . Fix , and with . Then is a finite concave polyhedral function (a minimum of finitely many affine functions of ) on
the set of cost vectors for which the dual of the recourse problem is feasible (Corollary 7.4). 3. In . Fix and . On the set , either is a finite convex polyhedral function (a maximum of finitely many affine functions of ), or it is identically .
Part 1 is what Theorem 7.6 uses to obtain the convexity of the expected recourse and its finite-or- dichotomy; parts 2 and 3 describe the dependence on the random data.
Formalization Note In parts 2 and 3, is the platform's KallMayer.Recourse.PointwiseRecourse W T p q x evaluated at arbitrary data . Parts 1 and 3 are stated as the dichotomy of Corollary 7.3, which is what "polyhedral" means for a function that may take the value ; part 2 is stated as Corollary 7.4, the corollary the paper's proof invokes for it (the primal problem is feasible by hypothesis, so the branch of Corollary 7.4 does not occur). The paper remarks (p. 329) that the proposition extends to all under the conventions; the printed statement, on and for , is what is formalized.
import Mathlib import Definitions.Def_Wets1974_Stability_Model
namespace Wets1974.Stability
open MeasureTheory Matrix
/-- Proposition 7.5, p. 329: `Q(x, ξ)` is a convex polyhedral function of `x` on `K₂` for each
`ξ ∈ Ξ̃`; it is concave polyhedral in `q(ξ)` and convex polyhedral in `(p(ξ), T(ξ))`.
Parts (a) and (c) are stated as the dichotomy of Corollary 7.3 (finite polyhedral, or `−∞`
throughout); part (b) as Corollary 7.4 (finite concave polyhedral on `pos (Wᵀ, −Wᵀ, I)`, the
primal problem being feasible). -/
theorem recourse_polyhedral {n nb mb : ℕ} (μ : Measure (DataSpace n nb mb))
(W : Matrix (Fin mb) (Fin nb) ℝ) :
-- (a) in `x` on `K₂`, for each `ξ` in the support `Ξ̃` of `μ`
(∀ ξ ∈ μ.support,
IsFiniteConvexPolyhedralOn (fun x => Q W x ξ) (K2 μ W) ∨
∀ x ∈ K2 μ W, Q W x ξ = ⊥) ∧
-- (b) in `q`, for fixed `x` and `(p, T)` with `p − T x ∈ pos W`: finite concave polyhedral
-- on `pos (Wᵀ, −Wᵀ, I) = {q | ∃ π, π W ≤ q}` (Corollary 7.4)
(∀ (x : Fin n → ℝ) (p : Fin mb → ℝ) (T : Matrix (Fin mb) (Fin n) ℝ),
p - T *ᵥ x ∈ posW W →
IsFiniteConcavePolyhedralOn
(fun q : Fin nb → ℝ => KallMayer.Recourse.PointwiseRecourse W T p q x)
{q | ∃ π : Fin mb → ℝ, ∀ j, (W.transpose *ᵥ π) j ≤ q j}) ∧
-- (c) in `(p, T)`, for fixed `q` and `x`, on `{(p, T) | p − T x ∈ pos W}`
(∀ (x : Fin n → ℝ) (q : Fin nb → ℝ),
IsFiniteConvexPolyhedralOn
(fun ζ : PTSpace n mb =>
KallMayer.Recourse.PointwiseRecourse W (Matrix.of ζ.2) ζ.1 q x)
{ζ | ζ.1 - Matrix.of ζ.2 *ᵥ x ∈ posW W} ∨
∀ ζ : PTSpace n mb, ζ.1 - Matrix.of ζ.2 *ᵥ x ∈ posW W →
KallMayer.Recourse.PointwiseRecourse W (Matrix.of ζ.2) ζ.1 q x = ⊥) := by sorry
end Wets1974.Stability
Confirmed by the mission captain (proposal self-audit).
Confirmed by the moderator at approval.