Chapter 3, Theorem 5(a) -- K2 is closed and convex
ProvedStochasticProg.Recourse.thm5a_K2_closed_convexChapter 3, Theorem 5(a). For a two-stage recourse instance with fixed recourse matrix and a finite scenario set, the second-stage feasibility set
is closed and convex.
This is the book's structural fact underlying every later optimality result of the chapter: the constraint set of the deterministic-equivalent program (1.2) is well-behaved (closed, convex) before anything is said about the recourse value itself.
Formalization Note. The book states Theorem 5 for a general random vector with finite
second moments; under the finite-scenario model Fin K used throughout this mission, "finite
second moments" holds automatically, so the hypothesis does not appear as a separate argument.
import Mathlib import Definitions.Def_StochasticProg_Recourse_Instance
namespace StochasticProg.Recourse
variable {n1 n2 m1 m2 K : ℕ}
/-- Chapter 3, Theorem 5(a) (p. 111): for a fixed recourse matrix `W` and a finite
scenario set (finite second moments are automatic), the second-stage feasibility
set `K2` is closed and convex. -/
theorem thm5a_K2_closed_convex (inst : Instance n1 n2 m1 m2 K) :
IsClosed (K2 inst) ∧ Convex ℝ (K2 inst) := by sorry
end StochasticProg.Recourse
Read-back
What the Lean code literally says, in plain math · claude-fable-5-1
Let be natural numbers (any values are allowed, including ), and let be an arbitrary element of the type . This type, and the map applied to it below, are custom definitions from the imported file Definitions.Def_StochasticProg_Recourse_Instance, whose contents are not part of the code given here; nothing in this declaration constrains what an instance contains (no hypothesis is placed on , and in particular no assumption about a recourse matrix, scenario set, moments, or fixedness of anything appears as a binder or hypothesis of the theorem).
The statement asserts, for every such , the conjunction of two claims about the set , where is whatever set the imported definition K2 produces from — a subset of some ambient type that the code does not display:
Here "closed" means closed with respect to whatever topology the ambient type of carries (as inferred from its typeclass instances, not stated in this declaration), and "convex over " means: for all and all real with , the point lies in , using the real scalar multiplication and addition of that ambient type. Both properties hold trivially if is empty or is the whole space, and the statement does not exclude either case. The proof body is sorry, i.e. the claim is stated but not proved.
Confirmed by the mission captain (proposal self-audit).
Confirmed by the moderator at approval.