Documentation

PGCL.OMDP

Operation MDP derived from SmallStep. #

Main definitions #

noncomputable def pGCL.๐’ฌ {ฯ– : Type u_1} [DecidableEq ฯ–] :
MDP (Conf ฯ–) Act
Equations
Instances For
    @[simp]
    theorem pGCL.๐’ฌ.succs_univ_eq {ฯ– : Type u_1} [DecidableEq ฯ–] :
    ๐’ฌ.succs_univ = fun (c : Conf ฯ–) => {c' : Conf ฯ– | โˆƒ (ฮฑ : Act) (p : ENNReal), c โคณ[ฮฑ,p] c'}
    @[simp]
    theorem pGCL.๐’ฌ.P_eq {ฯ– : Type u_1} [DecidableEq ฯ–] :
    ๐’ฌ.P = fun (c : Conf ฯ–) (ฮฑ : Act) (c' : Conf ฯ–) => โˆ‘' (p : { p : ENNReal // c โคณ[ฮฑ,p] c' }), โ†‘p
    theorem pGCL.๐’ฌ.P_support_eq_succs {ฯ– : Type u_1} [DecidableEq ฯ–] {c : Conf ฯ–} {ฮฑ : Act} :
    @[irreducible]
    noncomputable def pGCL.๐’ฌ.cost {ฯ– : Type u_1} (X : Exp ฯ–) :
    Option (Option (pGCL ฯ–) ร— States ฯ–) โ†’ ENNReal
    Equations
    Instances For
      @[simp]
      theorem pGCL.๐’ฌ.cost_X_of_pGCL {ฯ–โœ : Type u_2} {X : Exp ฯ–โœ} {C : pGCL ฯ–โœ} {ฯƒ : States ฯ–โœ} :
      @[simp]
      theorem pGCL.๐’ฌ.ฮฆ_simp {ฯ– : Type u_1} [DecidableEq ฯ–] {c f : ๐’ฌ.Costs} {C : Conf ฯ–} :
      (MDP.ฮฆ c) f C = c C + โจ… ฮฑ โˆˆ SmallStep.act C, โˆ‘' (s' : โ†‘(๐’ฌ.succs_univ C)), ๐’ฌ.P C ฮฑ โ†‘s' * f โ†‘s'
      @[simp]
      theorem pGCL.๐’ฌ.bot_eq {ฯ– : Type u_1} [DecidableEq ฯ–] {i : โ„•} {X : Exp ฯ–} :
      (โ‡‘(MDP.ฮฆ (cost X)))^[i] โŠฅ none = 0
      theorem pGCL.๐’ฌ.tsum_succs_univ' {ฯ– : Type u_1} [DecidableEq ฯ–] {c : Conf ฯ–} (f : โ†‘(๐’ฌ.succs_univ c) โ†’ ENNReal) :
      โˆ‘' (s' : โ†‘(๐’ฌ.succs_univ c)), f s' = โˆ‘' (s' : Conf ฯ–), if h : s' โˆˆ ๐’ฌ.succs_univ c then f โŸจs', hโŸฉ else 0
      @[simp]
      theorem pGCL.๐’ฌ.sink_eq {ฯ– : Type u_1} [DecidableEq ฯ–] {X : Exp ฯ–} {i : โ„•} {ฯƒ : States ฯ–} :
      (โ‡‘(MDP.ฮฆ (cost X)))^[i] โŠฅ (some (none, ฯƒ)) = if i = 0 then 0 else X ฯƒ
      @[simp]
      theorem pGCL.๐’ฌ.lfp_ฮฆ_bot {ฯ– : Type u_1} [DecidableEq ฯ–] {X : Exp ฯ–} :
      @[simp]
      theorem pGCL.๐’ฌ.lfp_ฮฆ_sink {ฯ– : Type u_1} [DecidableEq ฯ–] {X : Exp ฯ–} {ฯƒ : States ฯ–} :
      MDP.lfp_ฮฆ (cost X) (some (none, ฯƒ)) = X ฯƒ
      noncomputable def pGCL.๐’ฌ.ฯ‚ {ฯ– : Type u_1} [DecidableEq ฯ–] :
      (pGCL ฯ– โ†’ Exp ฯ– โ†’ Exp ฯ–) โ†’o pGCL ฯ– โ†’ Exp ฯ– โ†’ Exp ฯ–
      Equations
      • One or more equations did not get rendered due to their size.
      Instances For
        @[simp]
        theorem pGCL.๐’ฌ.ฯ‚.skip {ฯ– : Type u_1} [DecidableEq ฯ–] {f : pGCL ฯ– โ†’ Exp ฯ– โ†’ Exp ฯ–} :
        ฯ‚ f pGCL.skip = fun (x1 : Exp ฯ–) (x2 : States ฯ–) => x1 x2
        @[simp]
        theorem pGCL.๐’ฌ.ฯ‚.assign {ฯ– : Type u_1} [DecidableEq ฯ–] {f : pGCL ฯ– โ†’ Exp ฯ– โ†’ Exp ฯ–} {x : ฯ–} {e : Exp ฯ–} :
        ฯ‚ f (x ::= e) = fun (X : Exp ฯ–) (ฯƒ : States ฯ–) => f pGCL.skip X (ฯƒ[x โ†ฆ e ฯƒ])
        @[simp]
        theorem pGCL.๐’ฌ.ฯ‚.tick {ฯ– : Type u_1} [DecidableEq ฯ–] {f : pGCL ฯ– โ†’ Exp ฯ– โ†’ Exp ฯ–} {r : Exp ฯ–} :
        ฯ‚ f (pGCL.tick r) = fun (X : Exp ฯ–) => r + f pGCL.skip X
        @[simp]
        theorem pGCL.๐’ฌ.ฯ‚.prob {ฯ– : Type u_1} [DecidableEq ฯ–] {f : pGCL ฯ– โ†’ Exp ฯ– โ†’ Exp ฯ–} {Cโ‚ : pGCL ฯ–} {p : ProbExp ฯ–} {Cโ‚‚ : pGCL ฯ–} :
        ฯ‚ f (Cโ‚ ยท[p] Cโ‚‚) = fun (X : Exp ฯ–) => p.pick (f Cโ‚ X) (f Cโ‚‚ X)
        @[simp]
        theorem pGCL.๐’ฌ.ฯ‚.nonDet {ฯ– : Type u_1} [DecidableEq ฯ–] {f : pGCL ฯ– โ†’ Exp ฯ– โ†’ Exp ฯ–} {Cโ‚ Cโ‚‚ : pGCL ฯ–} :
        ฯ‚ f (Cโ‚ ยท[] Cโ‚‚) = f Cโ‚ โŠ“ f Cโ‚‚
        theorem pGCL.๐’ฌ.ฯ‚.loop {ฯ– : Type u_1} [DecidableEq ฯ–] {f : pGCL ฯ– โ†’ Exp ฯ– โ†’ Exp ฯ–} {b : BExpr ฯ–} {C : pGCL ฯ–} :
        ฯ‚ f (pGCL.loop b C) = fun (X : Exp ฯ–) => b.probOf * f (C ;; pGCL.loop b C) X + b.not.probOf * f pGCL.skip X
        noncomputable def pGCL.op {ฯ– : Type u_1} [DecidableEq ฯ–] (C : pGCL ฯ–) (X : Exp ฯ–) :
        Exp ฯ–
        Equations
        Instances For
          theorem pGCL.op_eq_iSup_ฮฆ {ฯ– : Type u_1} [DecidableEq ฯ–] :
          op = โจ† (n : โ„•), fun (C : pGCL ฯ–) (X : Exp ฯ–) (ฯƒ : States ฯ–) => (โ‡‘(MDP.ฮฆ (๐’ฌ.cost X)))^[n] โŠฅ (ยทโŸจC,ฯƒโŸฉ)
          theorem pGCL.op_eq_iSup_succ_ฮฆ {ฯ– : Type u_1} [DecidableEq ฯ–] :
          op = โจ† (n : โ„•), fun (C : pGCL ฯ–) (X : Exp ฯ–) (ฯƒ : States ฯ–) => (โ‡‘(MDP.ฮฆ (๐’ฌ.cost X)))^[n + 1] โŠฅ (ยทโŸจC,ฯƒโŸฉ)
          @[simp]
          theorem pGCL.op_skip {ฯ– : Type u_1} [DecidableEq ฯ–] :
          skip.op = fun (x1 : Exp ฯ–) (x2 : States ฯ–) => x1 x2
          theorem pGCL.op_isLeast {ฯ– : Type u_1} [DecidableEq ฯ–] (b : pGCL ฯ– โ†’ Exp ฯ– โ†’ Exp ฯ–) (h : ๐’ฌ.ฯ‚ b โ‰ค b) :
          theorem pGCL.op_le_seq {ฯ– : Type u_1} [DecidableEq ฯ–] {C C' : pGCL ฯ–} :
          C.op โˆ˜ C'.op โ‰ค (C ;; C').op
          theorem pGCL.wp_le_op.loop {ฯ– : Type u_1} [DecidableEq ฯ–] {C : pGCL ฯ–} {b : BExpr ฯ–} (ih : C.wp โ‰ค C.op) :
          theorem pGCL.wp_le_op {ฯ– : Type u_1} [DecidableEq ฯ–] :
          theorem pGCL.op_eq_wp {ฯ– : Type u_1} [DecidableEq ฯ–] :