Prove2Me
Navigate
DiscoverCollectionsFormalpediaBlogsUsersMomentumMy Missions+
Prove2Me
⌕
Log in
← Formalpedia

Lemma 8.9 — a finite program with convex objective Lipschitz on a polyhedron is stable

Proved
Wets1974.Stability.stable_of_lipschitz_on_polyhedron

by mikedeng1 · Sep 29, 2026 · Mathlib 0df444a (Lean v4.33.1)

convex-analysisdualitylagrange-multipliersp2o-batch-p200bp2o-gran-per-chapterp2o-plan-paperp2o-v1

Let AAA be a real m×nm\times nm×n matrix, b∈Rmb\in\mathbb R^mb∈Rm, P⊆RnP\subseteq\mathbb R^nP⊆Rn a convex polyhedron (finitely many linear inequalities), and f:Rn→Rf:\mathbb R^n\to\mathbb Rf:Rn→R a function that is convex on PPP and Lipschitz on PPP. Consider the mathematical program (8.10),

minimize f(x)subject to Ax=b, x≥0,\text{minimize } f(x)\quad\text{subject to } Ax=b,\ x\ge0,minimize f(x)subject to Ax=b, x≥0,

where fff is regarded as +∞+\infty+∞ outside PPP, so that the feasible set is P∩{x:Ax=b, x≥0}P\cap\{x: Ax=b,\ x\ge0\}P∩{x:Ax=b, x≥0}. If (8.10) is finite, i.e. its optimal value v=inf⁡{f(x):x∈P, Ax=b, x≥0}v=\inf\{f(x): x\in P,\ Ax=b,\ x\ge0\}v=inf{f(x):x∈P, Ax=b, x≥0} is a real number, then (8.10) is stable: there is π∈Rm\pi\in\mathbb R^mπ∈Rm with

v≤f(x)+π (b−Ax)for every x∈P with x≥0.v\le f(x)+\pi\,(b-Ax)\qquad\text{for every }x\in P\text{ with }x\ge0 .v≤f(x)+π(b−Ax)for every x∈P with x≥0.

This is the purely convex-analytic step behind Theorem 8.11 (the paper cites it to Walkup and Wets, 1969): a Lipschitz convex objective on a polyhedral domain rules out the infinite-slope behaviour of the perturbation function that destroys stability.

Formalization Note "Convex and Lipschitz on a polyhedron" is read as: the objective's domain is the polyhedron PPP (the objective is +∞+\infty+∞ off PPP), and on PPP it is finite, convex and Lipschitz. This is how the lemma is applied to ZZZ, whose domain is K2K_2K2​; a function finite and convex on all of Rn\mathbb R^nRn would make the Lipschitz hypothesis superfluous. Lipschitz is LipschitzOnWith for the sup norm, equivalent to the Euclidean one for the existence of a constant. "Stable" is the Kuhn–Tucker form of Definition 8.1(iv) given in the definition file: the dual obtained by perturbing bbb is solvable and has no duality gap.

Preamble
import Mathlib
import Definitions.Def_Wets1974_Stability_ConvexAnalysis
Formal statement
namespace Wets1974.Stability

open Matrix

/-- Lemma 8.9, p. 337: minimize `f(x)` subject to `A x = b`, `x ≥ 0` (8.10), where `f` is
convex and Lipschitz on a polyhedron `P` (its domain), and (8.10) is finite; then (8.10) is
stable. -/
theorem stable_of_lipschitz_on_polyhedron {m n : ℕ} (A : Matrix (Fin m) (Fin n) ℝ)
    (b : Fin m → ℝ) (P : Set (Fin n → ℝ)) (hP : IsPolyhedron P) (f : (Fin n → ℝ) → ℝ)
    (hconv : ConvexOn ℝ P f) (hlip : ∃ L : NNReal, LipschitzOnWith L f P)
    (hfin : IsFiniteProgram (fun x => (f x : EReal)) P A b) :
    IsStable (fun x => (f x : EReal)) P A b := by sorry

end Wets1974.Stability
Source
Wets, Stochastic Programs with Fixed Recourse: The Equivalent Deterministic Program, SIAM Review 16(3), 1974, p. 337, Lemma 8.9 (Eq. (8.10)); stability as in Definition 8.1(iv), p. 334
Human review
  • Endorsed by Shuze Chen · Oct 1, 2026

    Confirmed by the moderator at approval.

  • Endorsed by mikedeng1 · 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