Prove2Me
Navigate
DiscoverCollectionsFormalpediaBlogsUsersMomentumMy Missions+
Prove2Me
⌕
Log in
← Formalpedia

Lemma 1, p. 783 — a monotone recursion solves the linear program (11)

Proved
RobustMDP.FiniteHorizon.lemma_one

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

dynamic-programminglinear-programmingp2o-batch-p100bp2o-gran-per-chapterp2o-plan-paperp2o-v1

Let vN∈Rnv_N\in\mathbb R^nvN​∈Rn, q∈R+nq\in\mathbb R^n_+q∈R+n​, and let gt:Rn→Rng_t:\mathbb R^n\to\mathbb R^ngt​:Rn→Rn, t∈T={0,…,N−1}t\in T=\{0,\dots,N-1\}t∈T={0,…,N−1}, be componentwise nondecreasing: u≤vu\le vu≤v componentwise implies gt(u)≤gt(v)g_t(u)\le g_t(v)gt​(u)≤gt​(v). Consider

η:=max⁡v0,…,vN−1 qTv0s.t.vt≤gt(vt+1), t∈T,(11)\eta:=\max_{v_0,\dots,v_{N-1}}\ q^{\mathsf T}v_0\quad\text{s.t.}\quad v_t\le g_t(v_{t+1}),\ t\in T, \tag{11}η:=v0​,…,vN−1​max​ qTv0​s.t.vt​≤gt​(vt+1​), t∈T,(11)

with inequalities componentwise and vNv_NvN​ fixed. Then the recursion vt=gt(vt+1)v_t=g_t(v_{t+1})vt​=gt​(vt+1​), t∈Tt\in Tt∈T (12), started at vNv_NvN​, has a unique solution v∗v^*v∗; it is feasible for (11), and

η=qTv0∗=qT(g0∘g1∘⋯∘gN−1)(vN),\eta=q^{\mathsf T}v_0^*=q^{\mathsf T}(g_0\circ g_1\circ\cdots\circ g_{N-1})(v_N),η=qTv0∗​=qT(g0​∘g1​∘⋯∘gN−1​)(vN​),

the maximum being attained at v∗v^*v∗.

The lemma turns every problem of the form (11) with monotone constraint maps into a backward recursion; the proof of Theorem 1 applies it to problems (14), (15) and (16).

Formalization Note Sequences v0,…,vNv_0,\dots,v_Nv0​,…,vN​ are functions on Fin (N+1) with vNv_NvN​ fixed. The paper writes the composition g1∘⋯∘gNg_1\circ\cdots\circ g_Ng1​∘⋯∘gN​, an index slip for T={0,…,N−1}T=\{0,\dots,N-1\}T={0,…,N−1}; the Lean uses g0,…,gN−1g_0,\dots,g_{N-1}g0​,…,gN−1​, the composition being the fold of the list [g0,…,gN−1][g_0,\dots,g_{N-1}][g0​,…,gN−1​] onto vNv_NvN​. The maximum is stated with IsGreatest, so attainment is part of the claim.

Preamble
import Mathlib
Formal statement
namespace RobustMDP.FiniteHorizon

/-- Lemma 1 (Nilim–El Ghaoui 2005, p. 783). Fix `v_N ∈ ℝⁿ`, `q ∈ ℝⁿ₊` and componentwise
nondecreasing maps `g_t : ℝⁿ → ℝⁿ`, `t ∈ T = {0, …, N-1}`. Consider problem (11): maximise
`qᵀ v_0` over `v_0, …, v_{N-1}` (with `v_N` fixed) subject to `v_t ≤ g_t(v_{t+1})` componentwise.
A vector sequence is encoded as `v : Fin (N+1) → Fin n → ℝ` with `v (Fin.last N) = v_N`.

Conclusions: the recursion (12) `v_t = g_t(v_{t+1})` with terminal value `v_N` has exactly one
solution `v*`; for it, `v*_0 = (g_0 ∘ ⋯ ∘ g_{N-1})(v_N)` (the list `[g_0, …, g_{N-1}]` folded
from the right onto `v_N`), `v*` is feasible, and `qᵀ v*_0` is the maximum of (11). The paper
writes the composition as `g_1 ∘ ⋯ ∘ g_N`, an index slip for `T = {0, …, N-1}`. -/
theorem lemma_one {n N : ℕ} (g : Fin N → (Fin n → ℝ) → (Fin n → ℝ))
    (hg : ∀ t, Monotone (g t)) (q : Fin n → ℝ) (hq : 0 ≤ q) (vN : Fin n → ℝ) :
    (∃! vstar : Fin (N + 1) → Fin n → ℝ,
        vstar (Fin.last N) = vN ∧ ∀ t : Fin N, vstar t.castSucc = g t (vstar t.succ)) ∧
    ∀ vstar : Fin (N + 1) → Fin n → ℝ,
      vstar (Fin.last N) = vN → (∀ t : Fin N, vstar t.castSucc = g t (vstar t.succ)) →
        vstar 0 = (List.ofFn g).foldr (fun f x => f x) vN ∧
        IsGreatest
          ((fun v : Fin (N + 1) → Fin n → ℝ => ∑ i, q i * v 0 i) ''
            {v | v (Fin.last N) = vN ∧ ∀ t : Fin N, v t.castSucc ≤ g t (v t.succ)})
          (∑ i, q i * vstar 0 i) := by sorry

end RobustMDP.FiniteHorizon
Source
Nilim and El Ghaoui, Robust Control of Markov Decision Processes with Uncertain Transition Matrices, Oper. Res. 53 (2005), p. 783, Lemma 1
Read-back

What the Lean code literally says, in plain math · claude-opus-5-5

Hypotheses. Fix natural numbers n,Nn, Nn,N and maps g0,…,gN−1:Rn→Rng_0,\dots,g_{N-1} : \mathbb{R}^n \to \mathbb{R}^ng0​,…,gN−1​:Rn→Rn. Each gtg_tgt​ is monotone for the componentwise order: u≤vu \le vu≤v in every coordinate implies gt(u)≤gt(v)g_t(u) \le g_t(v)gt​(u)≤gt​(v) in every coordinate. Nothing else is assumed: no continuity and no linearity. Fix also a vector q∈Rnq \in \mathbb{R}^nq∈Rn with qi≥0q_i \ge 0qi​≥0 for all iii, and a vector vN∈Rnv_N \in \mathbb{R}^nvN​∈Rn. A sequence means N+1N+1N+1 vectors v0,…,vN∈Rnv_0,\dots,v_N \in \mathbb{R}^nv0​,…,vN​∈Rn.

Conclusion 1. There is exactly one sequence v∗v^*v∗ such that

vN∗=vNandvt∗=gt(vt+1∗) for all t<N.v^*_N = v_N \quad\text{and}\quad v^*_t = g_t(v^*_{t+1}) \text{ for all } t < N.vN∗​=vN​andvt∗​=gt​(vt+1∗​) for all t<N.

Conclusion 2. Every sequence v∗v^*v∗ with these two properties satisfies two further statements.

  • It is the composition of the gtg_tgt​ applied to vNv_NvN​:
v0∗=g0(g1(⋯gN−1(vN)⋯ )).v^*_0 = g_0\big(g_1(\cdots g_{N-1}(v_N)\cdots)\big).v0∗​=g0​(g1​(⋯gN−1​(vN​)⋯)).
  • The number q⊤v0∗=∑iqiv0∗(i)q^\top v^*_0 = \sum_i q_i v^*_0(i)q⊤v0∗​=∑i​qi​v0∗​(i) is the greatest element of the set
{q⊤v0  :  vN=vN (the given vector), vt≤gt(vt+1) componentwise for all t<N}.\Big\{ q^\top v_0 \;:\; v_N = v_N \text{ (the given vector)},\ v_t \le g_t(v_{t+1}) \text{ componentwise for all } t<N \Big\}.{q⊤v0​:vN​=vN​ (the given vector), vt​≤gt​(vt+1​) componentwise for all t<N}.

In other words, it belongs to this set (by feasibility) and is at least every member of it.

Degenerate cases.

  • N=0N = 0N=0: the only sequence is v0=vNv_0 = v_Nv0​=vN​, the composition is empty, and the feasible set is {q⊤vN}\{q^\top v_N\}{q⊤vN​}.
  • n=0n = 0n=0: every vector is empty and every value q⊤v0q^\top v_0q⊤v0​ is 000.
  • q=0q = 0q=0: the feasible set is {0}\{0\}{0} and the conclusion is trivial.
Human review
  • Endorsed by Shuze Chen · Sep 27, 2026

    Confirmed by the moderator at approval.

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