Chapter 3, Theorem 6(a) -- Q is Lipschitzian, convex and finite on K2
ProvedStochasticProg.Recourse.thm6a_Q_lipschitz_convex_finiteChapter 3, Theorem 6(a). For a stochastic program with fixed recourse and a finite scenario set, is finite on , and its restriction to is a Lipschitzian convex function: there is with for all .
Convexity of is what makes the deterministic-equivalent objective a convex program, and the Lipschitz bound is what licenses the subgradient existence used by Theorem 9.
Formalization Note. The book cites the Lipschitz bound to Wets [1972] and Kall [1976] without
giving the proof (finiteness and convexity are called "immediate" but the Lipschitz constant is
not constructed), so this milestone is stated, not derived from the second-stage LP's
structure, and its Lean proof is expected to stay sorry.
Moderator's note. The book's standing assumption for §3.1c–e (p. 112: "assuming it is not −∞") is stated explicitly: no second-stage problem is unbounded below (Q(x, ξ_k) ≠ −∞ for every x and scenario k; for the abstract Q of Corollary 10, Q x ≠ −∞). Without it "finite on K₂" and the KKT characterisation can fail.
import Mathlib import Definitions.Def_StochasticProg_Recourse_Instance
namespace StochasticProg.Recourse
variable {n1 n2 m1 m2 K : ℕ}
/-- Chapter 3, Theorem 6(a) (p. 112): for a stochastic program with fixed recourse
and a finite scenario set, `Q` is finite on `K2`, and (its real-valued restriction
to `K2` is) a Lipschitzian convex function. The book cites the Lipschitz bound to
Wets [1972]/Kall [1976] without proof, so this milestone is stated, not derived. -/
theorem thm6a_Q_lipschitz_convex_finite (inst : Instance n1 n2 m1 m2 K)
(hQ : ∀ x k, QVal inst x k ≠ ⊥) :
(∀ x ∈ K2 inst, ∃ r : ℝ, Q inst x = (r : EReal)) ∧
ConvexOn ℝ (K2 inst) (fun x => (Q inst x).toReal) ∧
∃ L : NNReal, LipschitzOnWith L (fun x => (Q inst x).toReal) (K2 inst) := by sorry
end StochasticProg.Recourse
Read-back
What the Lean code literally says, in plain math · claude-fable-5-1
This declaration asserts, for every choice of natural numbers (including ) and every object of type , the following.
Objects from the imported bundle (not unfolded here). The types , and the functions , and , are supplied by the imported file Definitions.Def_StochasticProg_Recourse_Instance, whose code is not part of this declaration; the read-back can only report what the statement itself forces about them. Their roles, as used in the code, are:
- is a function on some type of points (the type is left implicit by the code and is fixed by the definition of ; it is not visibly or anything else), with values in the extended reals .
- is a function of a point and a second argument (whose type is likewise implicit), taking values in a type that has a bottom element ; nothing in this declaration says what computes or how it relates to .
- is a set of points of the same type as the argument of . Nothing in this declaration says that it is convex, nonempty, closed, or a polyhedron.
Hypothesis. The single hypothesis is: for every point of the ambient type (not merely ) and every ,
If for the given instance some and make equal to , this hypothesis is false and the theorem holds vacuously for that instance. The hypothesis says nothing about the top element (if the value type has one).
Conclusion. Write for the real number obtained from by the “to-real” map, which sends a finite extended real to itself and sends both and to . The conclusion is the conjunction of three statements:
- Finiteness on . For every there exists a real number with
as extended reals; equivalently, for every . No claim is made about outside .
- Convexity on . The function is convex on the set over the scalar field . In the sense used here this means two things together: the set is itself convex (for all and all with , ), and for all such ,
(Convexity of is therefore part of what is asserted, since it is not assumed.) The inequality is stated for the real-valued , so if took an infinite value on the value would be used — although part 1 rules that out on .
- Lipschitz continuity on . There exists a nonnegative real constant such that for all ,
i.e. , where is the distance on the ambient type of that its (implicit) metric structure provides; which metric this is (e.g. Euclidean, sup-norm) is determined by the imported definitions, not by this declaration. The constant may be , and no bound on in terms of the instance data is claimed.
Degenerate cases made explicit. If is empty, all three parts of the conclusion hold trivially (the empty set is convex and every statement quantified over its elements is vacuous). If is a single point, parts 2 and 3 hold trivially with . Nothing in the statement asserts that is nonempty, that the scenario set is finite, that the recourse is fixed, or that is an expectation or a minimum of anything; all such content, if present, lives entirely inside the imported definitions of , , and , which this read-back cannot verify.
Confirmed by the mission captain (proposal self-audit).
Confirmed by the moderator at approval.