Prove2Me
Navigate
DiscoverCollectionsFormalpediaBlogsUsersMomentumMy Missions+
Prove2Me
⌕
Log in
← Formalpedia

Theorem 3 — Lagrangian cuts from the local-copy reformulation are valid and tight at binary states

Proved
SDDiP.LagCut.theorem_3

by mikedeng1 · Oct 10, 2026 · Mathlib 0df444a (Lean v4.33.1)

cutting-planeslagrangian-dualityp2o-batch-pfp2bp2o-gran-per-chapterp2o-plan-paperp2o-v1stochastic-integer-programming

Let nnn be a node of the scenario tree in the backward step of iteration iii of SND/SDDiP, with nodal constraint set XnX_nXn​ (nonempty, compact, mixed integer polyhedral), linear objective fnf_nfn​, lower bound LnL_nLn​, children mmm with probabilities qnm≥0q_{nm} \ge 0qnm​≥0 and children's cuts (vmℓ,πmℓ)(v^\ell_m, \pi^\ell_m)(vmℓ​,πmℓ​), ℓ=1,…,i\ell = 1,\dots,iℓ=1,…,i, and assume Xn′′≠∅X''_n \ne \emptysetXn′′​=∅. Let x^∈{0,1}d\hat x \in \{0,1\}^dx^∈{0,1}d be the binary forward-step state of the parent, let π^\hat\piπ^ be an optimal solution of the Lagrangian dual (4.3)

(Rni):max⁡π∈Rd {Lni(π)+π⊤x^},(R^i_n):\quad \max_{\pi\in\mathbb R^d}\ \big\{\mathcal L^i_n(\pi) + \pi^\top \hat x\big\},(Rni​):π∈Rdmax​ {Lni​(π)+π⊤x^},

and let v^=Lni(π^)\hat v = \mathcal L^i_n(\hat\pi)v^=Lni​(π^). Then the Lagrangian cut (v^,π^)(\hat v, \hat\pi)(v^,π^) is

  1. tight (3.5): v^+π^⊤x^=Q‾ni(x^,ψni+1)\hat v + \hat\pi^\top\hat x = \underline Q^i_n(\hat x, \psi^{i+1}_n)v^+π^⊤x^=Q​ni​(x^,ψni+1​), the (attained) optimal value of the updated forward problem (3.1);
  2. valid (3.4): if the children's cuts are valid for their true value functions QmQ_mQm​, i.e. Qm(x)≥vmℓ+(πmℓ)⊤xQ_m(x) \ge v^\ell_m + (\pi^\ell_m)^\top xQm​(x)≥vmℓ​+(πmℓ​)⊤x for all mmm, ℓ\ellℓ and x∈{0,1}dx \in \{0,1\}^dx∈{0,1}d, and Qn=∑mqnmQm≥Ln\mathcal Q_n = \sum_m q_{nm}Q_m \ge L_nQn​=∑m​qnm​Qm​≥Ln​ on {0,1}d\{0,1\}^d{0,1}d, then
Qn(xa)≥v^+π^⊤xafor every xa∈{0,1}d,Q_n(x_a) \ge \hat v + \hat\pi^\top x_a \qquad \text{for every } x_a \in \{0,1\}^d,Qn​(xa​)≥v^+π^⊤xa​for every xa​∈{0,1}d,

where QnQ_nQn​ is the true value function (2.3) of the node.

This is the main result of §4.3: Lagrangian cuts obtained by dualizing the copy constraint zn=xa(n)z_n = x_{a(n)}zn​=xa(n)​ of the reformulation (2.1) satisfy the validity and tightness conditions of Definition 2, so SND and SDDiP with these cuts (made finite by choosing basic dual solutions) converge to an optimal solution of a multistage stochastic integer program with binary states.

Formalization Note The paper states Theorem 3 for the whole collection {(vni,πni)}n∈Ωi\{(v^i_n,\pi^i_n)\}_{n\in\Omega^i}{(vni​,πni​)}n∈Ωi​ and proves validity by induction over the stages. The Lean statement is the node statement that carries out both the base case and the induction step: the validity hypotheses on the children are the induction hypothesis, and at a last-stage node (no children, Ln=0L_n = 0Ln​=0) they hold trivially. The paper's sentence follows by applying it at every sampled node, from the last stage backwards. "Qn(xa)≥…Q_n(x_a) \ge \dotsQn​(xa​)≥…" is stated over all feasible points of (2.3) (the minimum is +∞+\infty+∞ when there are none). The hypothesis Xn′′≠∅X''_n \ne \emptysetXn′′​=∅ makes Lni\mathcal L^i_nLni​ a genuine minimum, as the paper writes it.

Preamble
import Mathlib
import Definitions.Def_SDDiP_LagCut_Node
Formal statement
namespace SDDiP.LagCut

open Node

/-- Theorem 3, Zou, Ahmed, Sun, *Stochastic dual dynamic integer programming*, Math. Program. 175 (2019),
p. 479, stated at one node `n`. Let `x̂ ∈ {0,1}ᵈ` be the binary forward-step state of the parent, let
`π̂` be an optimal solution of the Lagrangian dual (4.3) and `v̂ = 𝓛^i_n(π̂)`. Then the Lagrangian cut
`(v̂, π̂)` is

* **tight** (3.5): `v̂ + π̂ᵀx̂` is the (attained) optimal value `Q̲^i_n(x̂, ψ^{i+1}_n)` of (3.1);
* **valid** (3.4): if the cuts of the children are valid for their true value functions `Q_m` and
  `𝒬_n = ∑_m q_{nm} Q_m ≥ L_n` on binary states (the induction hypothesis of the proof), then
  `Q_n(x_a) ≥ v̂ + π̂ᵀx_a` for every binary `x_a`, `Q_n` the true value function (2.3).

The paper's statement about the whole collection follows by induction over the stages, which this node
statement carries out (a last-stage node has no children, and then `L_n = 0` meets the hypothesis). -/
theorem theorem_3 {d l : ℕ} (N : Node d l) (xhat : Fin d → ℝ) (hxhat : IsBinary xhat)
    (hX' : N.X'.Nonempty) (πhat : Fin d → ℝ) (hopt : N.IsDualOptimal xhat πhat)
    (Qc : Fin N.nC → (Fin d → ℝ) → ℝ)
    (hcuts : ∀ (ℓ : Fin N.i) (m : Fin N.nC) (x : Fin d → ℝ), IsBinary x →
      N.v ℓ m + N.π ℓ m ⬝ᵥ x ≤ Qc m x)
    (hL : ∀ x : Fin d → ℝ, IsBinary x → N.L ≤ N.expCostToGo Qc x) :
    (IsLeast (N.fwdValues xhat) (N.lag πhat + πhat ⬝ᵥ xhat) ∧
        N.fwdValue xhat = N.lag πhat + πhat ⬝ᵥ xhat) ∧
      ∀ xa : Fin d → ℝ, IsBinary xa →
        N.lag πhat + πhat ⬝ᵥ xa ∈ lowerBounds (N.trueValues (N.expCostToGo Qc) xa) := by sorry

end SDDiP.LagCut
Source
Zou, Ahmed, Sun, Stochastic dual dynamic integer programming, Math. Program. 175 (2019), p. 479, Theorem 3
Human review
  • Endorsed by Shuze Chen · Oct 11, 2026

    Confirmed by the moderator at approval.

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