Documentation

MDP.OptimalCost

noncomputable def MDP.EC {State : Type u_1} {Act : Type u_2} {M : MDP State Act} (c : M.Costs) (𝒮 : 𝔖[M]) (n : ) (s : State) :
Equations
Instances For
    @[reducible, inline]
    noncomputable abbrev MDP.OEC {State : Type u_1} {Act : Type u_2} {M : MDP State Act} (c : M.Costs) (s : State) :
    Equations
    Instances For
      @[simp]
      theorem MDP.EC_zero {State : Type u_1} {Act : Type u_2} {M : MDP State Act} {c : M.Costs} {𝒮 : 𝔖[M]} :
      EC c 𝒮 0 = 0
      @[simp]
      theorem MDP.EC_one {State : Type u_1} {Act : Type u_2} {M : MDP State Act} {c : M.Costs} {𝒮 : 𝔖[M]} :
      EC c 𝒮 1 = c
      @[simp]
      theorem MDP.EC_one' {State : Type u_1} {Act : Type u_2} {M : MDP State Act} {c : M.Costs} {𝒮 : 𝔖[M]} {s : State} :
      EC c 𝒮 1 s = c s
      theorem MDP.EC_le_succ {State : Type u_1} {Act : Type u_2} {M : MDP State Act} {c : M.Costs} {𝒮 : 𝔖[M]} {n : } {s : State} [DecidableEq State] :
      EC c 𝒮 n s EC c 𝒮 (n + 1) s
      theorem MDP.EC_monotone {State : Type u_1} {Act : Type u_2} {M : MDP State Act} {c : M.Costs} {𝒮 : 𝔖[M]} {s : State} [DecidableEq State] :
      Monotone fun (x : ) => EC c 𝒮 x s
      theorem MDP.EC_succ {State : Type u_1} {Act : Type u_2} {M : MDP State Act} {c : M.Costs} {n : } [DecidableEq State] (𝒮 : 𝔖[M]) :
      EC c 𝒮 (n + 1) = c + fun (s : State) => ∑' (s' : (M.succs_univ s)), M.P s (𝒮 {s}) s' * EC c (𝒮.specialize s s') n s'
      theorem MDP.EC_eq {State : Type u_1} {Act : Type u_2} {M : MDP State Act} {n : } {s : State} {𝒮 𝒮' : 𝔖[M]} {c : M.Costs} (h : πPath[M,s,n], 𝒮 π = 𝒮' π) :
      EC c 𝒮 n s = EC c 𝒮' n s
      theorem MDP.EC_le {State : Type u_1} {Act : Type u_2} {M : MDP State Act} {n : } {s : State} {𝒮 𝒮' : 𝔖[M]} {c : M.Costs} (h : πPath[M,s,n], 𝒮 π = 𝒮' π) :
      EC c 𝒮 n s EC c 𝒮' n s
      @[simp]
      theorem MDP.EC_markovian_scheduler_specialize {State : Type u_1} {Act : Type u_2} {M : MDP State Act} [DecidableEq State] {c : M.Costs} {s₀ : State} {s : (M.succs_univ s₀)} {n : } {𝒮 : 𝔖[M]} [𝒮.Markovian] :
      EC c (𝒮.specialize s₀ s) n s = EC c 𝒮 n s
      theorem MDP.bound_EC_succ_eq_bound_EC {State : Type u_1} {Act : Type u_2} {M : MDP State Act} [DecidableEq State] {n : } {c : M.Costs} (s : State) (s' : (M.succs_univ s)) :
      ⨅ ( : 𝔖[M,s,n + 1]), EC c (↑(.specialize s s')) n s' = ⨅ ( : 𝔖[M,s',n]), EC c (↑) n s'
      theorem MDP.iInf_EC_specialized_eq_bounded {State : Type u_1} {Act : Type u_2} {M : MDP State Act} [DecidableEq State] {c : M.Costs} {n : } (s : State) (s' : (M.succs_univ s)) :
      ⨅ (𝒮 : 𝔖[M]), EC c (𝒮.specialize s s') n s' = ⨅ ( : 𝔖[M,s,n + 1]), EC c (↑(.specialize s s')) n s'
      theorem MDP.iInf_scheduler_eq_iInf_act_iInf_scheduler {State : Type u_1} {Act : Type u_2} {M : MDP State Act} [DecidableEq State] {s : State} {c : M.Costs} {n : } :
      ⨅ (𝒮 : 𝔖[M]), ∑' (s' : (M.succs_univ s)), M.P s (𝒮 {s}) s' * EC c (𝒮.specialize s s') n s' = ⨅ (α : (M.act s)), ⨅ (𝒮 : 𝔖[M]), ∑' (s' : (M.succs_univ s)), M.P s α s' * EC c (𝒮.specialize s s') n s'
      theorem MDP.tsum_iInf_bounded_comm {State : Type u_1} {Act : Type u_2} {M : MDP State Act} [DecidableEq State] [M.FiniteBranching] {s : State} {n : } (f : (s' : (M.succs_univ s)) → 𝔖[M,s',n]ENNReal) :
      ∑' (s' : (M.succs_univ s)), ⨅ ( : 𝔖[M,s',n]), f s' = ⨅ ( : 𝔖[M,s,n + 1]), ∑' (s' : (M.succs_univ s)), f s' (.specialize s s')
      theorem MDP.tsum_iInf_EC_comm {State : Type u_1} {Act : Type u_2} {M : MDP State Act} [DecidableEq State] [M.FiniteBranching] {s : State} {α : Act} {c : M.Costs} {n : } :
      ∑' (s' : (M.succs_univ s)), ⨅ (𝒮 : 𝔖[M]), M.P s α s' * EC c (𝒮.specialize s s') n s' = ⨅ (𝒮 : 𝔖[M]), ∑' (s' : (M.succs_univ s)), M.P s α s' * EC c (𝒮.specialize s s') n s'
      theorem MDP.iInf_EC_eq_specialized {State : Type u_1} {Act : Type u_2} {M : MDP State Act} [DecidableEq State] {c : M.Costs} {n : } (s : State) (s' : (M.succs_univ s)) :
      ⨅ (𝒮 : 𝔖[M]), EC c 𝒮 n s' = ⨅ (𝒮 : 𝔖[M]), EC c (𝒮.specialize s s') n s'
      theorem MDP.iInf_EC_succ_eq_Φ {State : Type u_1} {Act : Type u_2} {M : MDP State Act} [DecidableEq State] {c : M.Costs} {n : } [M.FiniteBranching] :
      ⨅ (𝒮 : 𝔖[M]), EC c 𝒮 (n + 1) = (Φ c) (⨅ (𝒮 : 𝔖[M]), EC c 𝒮 n)
      theorem MDP.iInf_EC_eq_Φ {State : Type u_1} {Act : Type u_2} {M : MDP State Act} [DecidableEq State] {c : M.Costs} {n : } [M.FiniteBranching] :
      ⨅ (𝒮 : 𝔖[M]), EC c 𝒮 n = (⇑(Φ c))^[n]
      theorem MDP.iSup_iInf_EC_eq_iSup_Φ {State : Type u_1} {Act : Type u_2} {M : MDP State Act} [DecidableEq State] {c : M.Costs} [M.FiniteBranching] :
      ⨆ (n : ), ⨅ (𝒮 : 𝔖[M]), EC c 𝒮 n = ⨆ (n : ), (⇑(Φ c))^[n]
      theorem MDP.iSup_iInf_EC_eq_lfp_Φ {State : Type u_1} {Act : Type u_2} {M : MDP State Act} [DecidableEq State] {c : M.Costs} [M.FiniteBranching] :
      ⨆ (n : ), ⨅ (𝒮 : 𝔖[M]), EC c 𝒮 n = lfp_Φ c
      theorem MDP.Φℒ_step_ECℒ {State : Type u_1} {Act : Type u_2} {M : MDP State Act} [DecidableEq State] {n : } (c : M.Costs) ( : 𝔏[M]) :
      EC c (↑) (n + 1) = (Φℒ c) (EC c (↑) n)
      theorem MDP.iSup_ECℒ_eq_lfp_Φℒ {State : Type u_1} {Act : Type u_2} {M : MDP State Act} [DecidableEq State] {c : M.Costs} ( : 𝔏[M]) [M.FiniteBranching] :
      ⨆ (n : ), EC c (↑) n = lfp_Φℒ c
      noncomputable def MDP.ℒ' {State : Type u_1} {Act : Type u_2} {M : MDP State Act} [M.FiniteBranching] (c : M.Costs) :
      Equations
      Instances For
        noncomputable def MDP.ℒ'_spec {State : Type u_1} {Act : Type u_2} {M : MDP State Act} [M.FiniteBranching] (c : M.Costs) (s : State) :
        ⨅ (α : (M.act s)), (Φf s α) (lfp_Φ c) = (fun (x : Act) => (Φf s x) (lfp_Φ c)) ((ℒ' c) {s})
        Equations
        • =
        Instances For
          theorem MDP.lfp_Φℒ_eq_lfp_Φ {State : Type u_1} {Act : Type u_2} {M : MDP State Act} {c : M.Costs} [M.FiniteBranching] :
          theorem MDP.iSup_iInf_EC_eq_iInf_iSup_EC {State : Type u_1} {Act : Type u_2} {M : MDP State Act} [DecidableEq State] {c : M.Costs} [M.FiniteBranching] :
          ⨆ (n : ), ⨅ (𝒮 : 𝔖[M]), EC c 𝒮 n = ⨅ (𝒮 : 𝔖[M]), ⨆ (n : ), EC c 𝒮 n
          theorem MDP.iInf_iSup_EC_eq_iInf_iSup_ECℒ {State : Type u_1} {Act : Type u_2} {M : MDP State Act} [DecidableEq State] {c : M.Costs} [M.FiniteBranching] :
          ⨅ (𝒮 : 𝔖[M]), ⨆ (n : ), EC c 𝒮 n = ⨅ ( : 𝔏[M]), ⨆ (n : ), EC c (↑) n
          theorem MDP.iSup_iInf_EC_le_iSup_iInf_ECℒ {State : Type u_1} {Act : Type u_2} {M : MDP State Act} {c : M.Costs} :
          ⨆ (n : ), ⨅ (𝒮 : 𝔖[M]), EC c 𝒮 n ⨆ (n : ), ⨅ ( : 𝔏[M]), EC c (↑) n
          theorem MDP.iSup_iInf_ECℒ_eq_iInf_iSup_ECℒ {State : Type u_1} {Act : Type u_2} {M : MDP State Act} [DecidableEq State] {c : M.Costs} [M.FiniteBranching] :
          ⨆ (n : ), ⨅ ( : 𝔏[M]), EC c (↑) n = ⨅ ( : 𝔏[M]), ⨆ (n : ), EC c (↑) n
          theorem MDP.iInf_iSup_EC_eq_lfp_Φ {State : Type u_1} {Act : Type u_2} {M : MDP State Act} [DecidableEq State] {c : M.Costs} [M.FiniteBranching] :
          ⨅ (𝒮 : 𝔖[M]), ⨆ (n : ), EC c 𝒮 n = lfp_Φ c