Eq. (16), p. 783 — the worst-case cost of a fixed policy is given by recursion (10)
ProvedRobustMDP.FiniteHorizon.worstCase_policy_recursionConsider a finite-horizon robust MDP with nonempty row sets , an initial state and a controller policy . The worst-case expected total cost of over all admissible policies of nature,
equals , where is computed by recursion (10): and .
This is the paper's problem (16) solved by Lemma 1: the rectangular structure of lets nature optimise each row separately, which is where the support functions come from.
Formalization Note The paper writes "max"; since the sets need not be closed, the worst case is a supremum, stated as a least upper bound (IsLUB) of the set of costs .
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
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
Read-back
What the Lean code literally says, in plain math · claude-opus-5-5
Hypotheses. The statement fixes:
- a model with states, stages and any action type (not assumed finite or nonempty), with stage costs , terminal cost , and nonempty row sets ;
- an initial state ;
- a control policy .
Conclusion. The number is the least upper bound of the set
The objects in this statement are:
- Nature policy : any array whose row lies in for every stage , action and state , chosen independently for each triple.
- Expected cost : the cost defined earlier, computed from the forward distributions with the point mass at .
- Value : and , where is the imported, unshown
Shared.supportFunction.
"Least upper bound" means for every , and no smaller number has this property. The bound need not be attained by any . Since a least upper bound in is asserted, the statement also implies that the set is bounded above.
Degenerate cases.
- : the only nature policy is the empty one. The set is and .
- : there is no , so the statement has no instances.
- empty and (with ): no exists, so the statement is vacuous.
Confirmed by the mission captain (proposal self-audit).
Confirmed by the moderator at approval.