Cash balance: finite-horizon critical levels and their limiting value formula
ProvedMDPFinance.InfiniteHorizonApplications.cash_balance_critical_limit_formulaLet a cash-balance market have positive transfer rates , a nonnegative convex holding cost with and in both directions, an integrable cash change , and discount factor . Write for its minimal -period cost and
The finite-horizon values, viewed as real functions, are convex. There are critical-level sequences for every such that, with ,
For every strictly increasing subsequence of horizons along which these two levels converge jointly to , the same three-region identity holds with replaced by .
This is the critical-level analysis in Theorems 2.6.2 and 7.6.1. It separates the finite-horizon formulas and their passage to the limit from infinite-horizon policy verification. The existence of a common convergent subsequence, finiteness of the values, equality of with the infinite-horizon minimum, and optimality of the limiting stationary rule are not conclusions of this lemma.
Formalization Note Costs and expectations use extended nonnegative reals. Real convexity uses their real-valued conversions. The limiting piecewise formula uses the conditions , then , as in the finite-horizon formula.
import Definitions.Def_MDPFinance_InfiniteHorizonApplications_CashBalance open MeasureTheory ProbabilityTheory MDPFinance.InfiniteHorizonApplications
theorem MDPFinance.InfiniteHorizonApplications.cash_balance_critical_limit_formula (Mk : CashBalanceMarket) :
(∀ n, ConvexOn ℝ Set.univ (fun x => (Mk.Jn n x).toReal)) ∧
(∃ Sminus Splus : ℕ → ℝ,
(∀ n, 1 ≤ n → Sminus n ≤ Splus n ∧ ∀ x, Mk.Jn n x =
if x < Sminus n then
ENNReal.ofReal ((Sminus n - x) * Mk.cu + Mk.L (Sminus n)) +
ENNReal.ofReal Mk.β * ∫⁻ z, Mk.Jn (n - 1) (Sminus n - z) ∂Mk.μZ
else if x ≤ Splus n then
ENNReal.ofReal (Mk.L x) + ENNReal.ofReal Mk.β * ∫⁻ z, Mk.Jn (n - 1) (x - z) ∂Mk.μZ
else
ENNReal.ofReal ((x - Splus n) * Mk.cd + Mk.L (Splus n)) +
ENNReal.ofReal Mk.β * ∫⁻ z, Mk.Jn (n - 1) (Splus n - z) ∂Mk.μZ) ∧
∀ (φ : ℕ → ℕ) (Sm Sp : ℝ), StrictMono φ →
Filter.Tendsto (Sminus ∘ φ) Filter.atTop (nhds Sm) →
Filter.Tendsto (Splus ∘ φ) Filter.atTop (nhds Sp) →
(∀ x, Mk.Jlim x =
if x < Sm then
ENNReal.ofReal ((Sm - x) * Mk.cu + Mk.L Sm) +
ENNReal.ofReal Mk.β * ∫⁻ z, Mk.Jlim (Sm - z) ∂Mk.μZ
else if x ≤ Sp then
ENNReal.ofReal (Mk.L x) + ENNReal.ofReal Mk.β * ∫⁻ z, Mk.Jlim (x - z) ∂Mk.μZ
else
ENNReal.ofReal ((x - Sp) * Mk.cd + Mk.L Sp) +
ENNReal.ofReal Mk.β * ∫⁻ z, Mk.Jlim (Sp - z) ∂Mk.μZ)) := by sorry