Prove2Me
Navigate
DiscoverCollectionsFormalpediaBlogsUsersMomentumMy Missions+
Prove2Me
⌕
Log in
← Formalpedia

Eq. (16), p. 783 — the worst-case cost of a fixed policy is given by recursion (10)

Proved
RobustMDP.FiniteHorizon.worstCase_policy_recursion

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

dynamic-programmingp2o-batch-p100bp2o-gran-per-chapterp2o-plan-paperp2o-v1robust-optimization

Consider a finite-horizon robust MDP with nonempty row sets Pia⊆Δn\mathcal P_i^a\subseteq\Delta_nPia​⊆Δn​, an initial state i0i_0i0​ and a controller policy π\piπ. The worst-case expected total cost of π\piπ over all admissible policies of nature,

φN(π,T)=sup⁡τ∈TCN(π,τ),\varphi_N(\pi,\mathcal T)=\sup_{\tau\in\mathcal T}C_N(\pi,\tau),φN​(π,T)=τ∈Tsup​CN​(π,τ),

equals v0π(i0)v_0^\pi(i_0)v0π​(i0​), where vπv^\pivπ is computed by recursion (10): vNπ=cNv_N^\pi=c_NvNπ​=cN​ and vtπ(i)=ct(i,at(i))+σPiat(i)(vt+1π)v_t^\pi(i)=c_t(i,\mathbf a_t(i))+\sigma_{\mathcal P_i^{\mathbf a_t(i)}}(v_{t+1}^\pi)vtπ​(i)=ct​(i,at​(i))+σPiat​(i)​​(vt+1π​).

This is the paper's problem (16) solved by Lemma 1: the rectangular structure of T\mathcal TT lets nature optimise each row separately, which is where the support functions come from.

Formalization Note The paper writes "max"; since the sets Pia\mathcal P_i^aPia​ need not be closed, the worst case is a supremum, stated as a least upper bound (IsLUB) of the set of costs {CN(π,τ):τ∈T}\{C_N(\pi,\tau):\tau\in\mathcal T\}{CN​(π,τ):τ∈T}.

Preamble
import Mathlib
import Definitions.Def_RobustMDP_Shared_supportFunction
import Definitions.Def_RobustMDP_FiniteHorizon_Model
import Definitions.Def_RobustMDP_FiniteHorizon_expectedCost
import Definitions.Def_RobustMDP_FiniteHorizon_robustValue
Formal statement
namespace RobustMDP.FiniteHorizon

/-- Problem (16), p. 783, solved by recursion (10). For every controller policy `π`, the
worst-case expected total cost `φ_N(π, 𝒯) = sup_{τ ∈ 𝒯} C_N(π, τ)` over all admissible
(time-varying, rectangular) policies of nature is the value `v_0^π(i₀)` of the recursion
`v_t^π(i) = c_t(i, 𝐚_t(i)) + σ_{𝒫_i^{𝐚_t(i)}}(v_{t+1}^π)`, `v_N^π = c_N`. The paper's "max"
is stated as a least upper bound, since the row sets need not be closed. -/
theorem worstCase_policy_recursion {n N : ℕ} {A : Type} (M : Model n N A) (i₀ : Fin n)
    (π : ControlPolicy n N A) :
    IsLUB (Set.range fun τ : M.NaturePolicy => M.expectedCost i₀ π τ.1)
      (M.policyValue π 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, Eq. (16) and the paragraph after it; Theorem 1, Eq. (10)
Read-back

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

Hypotheses. The statement fixes:

  • a model MMM with nnn states, NNN stages and any action type AAA (not assumed finite or nonempty), with stage costs ct≥0c_t \ge 0ct​≥0, terminal cost cNc_NcN​, and nonempty row sets Pia⊆Δn\mathcal{P}_i^a \subseteq \Delta_nPia​⊆Δn​;
  • an initial state i0i_0i0​;
  • a control policy π\piπ.

Conclusion. The number v0π(i0)v^\pi_0(i_0)v0π​(i0​) is the least upper bound of the set

{ CN(π,τ):τ a nature policy of M }.\{\,C_N(\pi,\tau) : \tau \text{ a nature policy of } M\,\}.{CN​(π,τ):τ a nature policy of M}.

The objects in this statement are:

  • Nature policy τ\tauτ: any array whose row τta(i,⋅)\tau_t^a(i,\cdot)τta​(i,⋅) lies in Pia\mathcal{P}_i^aPia​ for every stage ttt, action aaa and state iii, chosen independently for each triple.
  • Expected cost CN(π,τ)C_N(\pi,\tau)CN​(π,τ): the cost defined earlier, computed from the forward distributions μt+1(j)=∑iμt(i) τtπt(i)(i,j)\mu_{t+1}(j)=\sum_i \mu_t(i)\,\tau_t^{\pi_t(i)}(i,j)μt+1​(j)=∑i​μt​(i)τtπt​(i)​(i,j) with μ0\mu_0μ0​ the point mass at i0i_0i0​.
  • Value vπv^\pivπ: vNπ=cNv^\pi_N = c_NvNπ​=cN​ and vtπ(i)=ct(i,πt(i))+σPiπt(i)(vt+1π)v^\pi_t(i) = c_t(i,\pi_t(i)) + \sigma_{\mathcal{P}_i^{\pi_t(i)}}(v^\pi_{t+1})vtπ​(i)=ct​(i,πt​(i))+σPiπt​(i)​​(vt+1π​), where σ\sigmaσ is the imported, unshown Shared.supportFunction.

"Least upper bound" means v0π(i0)≥CN(π,τ)v^\pi_0(i_0) \ge C_N(\pi,\tau)v0π​(i0​)≥CN​(π,τ) for every τ\tauτ, and no smaller number has this property. The bound need not be attained by any τ\tauτ. Since a least upper bound in R\mathbb{R}R is asserted, the statement also implies that the set is bounded above.

Degenerate cases.

  • N=0N = 0N=0: the only nature policy is the empty one. The set is {cN(i0)}\{c_N(i_0)\}{cN​(i0​)} and v0π(i0)=cN(i0)v^\pi_0(i_0) = c_N(i_0)v0π​(i0​)=cN​(i0​).
  • n=0n = 0n=0: there is no i0i_0i0​, so the statement has no instances.
  • AAA empty and N>0N>0N>0 (with n>0n>0n>0): no π\piπ exists, so the statement is vacuous.
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