Documentation

PGCL.SmallStep

Small step operational semantics for pGCL #

Main definitions #

inductive pGCL.SmallStep {𝒱 : Type u_1} {Γ : 𝒱Type u_2} [DecidableEq 𝒱] :
Conf₀ ΓActENNRealConf₁ ΓProp

Probabilistic small step operational semantics for pGCL

Instances For

    Probabilistic small step operational semantics for pGCL

    Equations
    • One or more equations did not get rendered due to their size.
    Instances For
      @[simp]
      theorem pGCL.SmallStep.p_pos {𝒱 : Type u_1} {Γ : 𝒱Type u_2} [DecidableEq 𝒱] {c : Conf₀ Γ} {c' : Conf₁ Γ} {α : Act} {p : ENNReal} (h : c ⤳[α,p] c') :
      0 < p
      @[simp]
      theorem pGCL.SmallStep.p_ne_zero {𝒱 : Type u_1} {Γ : 𝒱Type u_2} [DecidableEq 𝒱] {c : Conf₀ Γ} {c' : Conf₁ Γ} {α : Act} {p : ENNReal} (h : c ⤳[α,p] c') :
      ¬p = 0
      @[simp]
      theorem pGCL.SmallStep.p_le_one {𝒱 : Type u_1} {Γ : 𝒱Type u_2} [DecidableEq 𝒱] {c : Conf₀ Γ} {c' : Conf₁ Γ} {α : Act} {p : ENNReal} (h : c ⤳[α,p] c') :
      p 1
      @[simp]
      theorem pGCL.SmallStep.skip_iff {𝒱 : Type u_1} {Γ : 𝒱Type u_2} [DecidableEq 𝒱] {c' : Conf₁ Γ} {σ : State Γ} {α : Act} {p : ENNReal} :
      theorem pGCL.SmallStep.to_fault {𝒱 : Type u_1} {Γ : 𝒱Type u_2} [DecidableEq 𝒱] {c : Conf₀ Γ} {σ : State Γ} {α : Act} {p : ENNReal} :
      (c ⤳[α,p] (Sum.inr Termination.fault, σ)) p = 1 α = Act.N ((∃ (C₁ : pGCL Γ) (C₂ : pGCL Γ), c = (pgcl {@C₁ ; @C₂}, σ) (C₁, σ) ⤳[Act.N,p] (Sum.inr Termination.fault, σ)) ∃ (b : State ΓProp), c = (pgcl {observe(@b)}, σ) ¬b σ)
      theorem pGCL.SmallStep.of_to_fault_p {𝒱 : Type u_1} {Γ : 𝒱Type u_2} [DecidableEq 𝒱] {c : Conf₀ Γ} {σ : State Γ} {α : Act} {p : ENNReal} (h : c ⤳[α,p] (Sum.inr Termination.fault, σ)) :
      p = 1
      theorem pGCL.SmallStep.of_to_fault_act {𝒱 : Type u_1} {Γ : 𝒱Type u_2} [DecidableEq 𝒱] {c : Conf₀ Γ} {σ : State Γ} {α : Act} {p : ENNReal} (h : c ⤳[α,p] (Sum.inr Termination.fault, σ)) :
      α = Act.N
      theorem pGCL.SmallStep.of_to_fault_mem {𝒱 : Type u_1} {Γ : 𝒱Type u_2} [DecidableEq 𝒱] {σ : State Γ} {C : pGCL Γ} {α : Act} {p : ENNReal} {σ' : State Γ} (h : (C, σ) ⤳[α,p] (Sum.inr Termination.fault, σ')) :
      σ = σ'
      theorem pGCL.SmallStep.of_to_fault_succ {𝒱 : Type u_1} {Γ : 𝒱Type u_2} [DecidableEq 𝒱] {c : Conf₀ Γ} {σ : State Γ} {α : Act} {p : ENNReal} (h : c ⤳[α,p] (Sum.inr Termination.fault, σ)) (α' : Act) (p' : ENNReal) (c' : Conf₁ Γ) :
      (c ⤳[α',p'] c') α' = α p' = p c' = (Sum.inr Termination.fault, σ)
      @[simp]
      theorem pGCL.SmallStep.assign_iff {𝒱 : Type u_1} {Γ : 𝒱Type u_2} [DecidableEq 𝒱] {c' : Conf₁ Γ} {σ : State Γ} {x : 𝒱} {e : State ΓΓ x} {α : Act} {p : ENNReal} :
      ((pgcl {@x := @e}, σ) ⤳[α,p] c') p = 1 α = Act.N c' = (Sum.inr Termination.term, σ[x e σ])
      @[simp]
      theorem pGCL.SmallStep.prob_iff {𝒱 : Type u_1} {Γ : 𝒱Type u_2} [DecidableEq 𝒱] {c' : Conf₁ Γ} {σ : State Γ} {C₁ : pGCL Γ} {p : ProbExp Γ} {C₂ : pGCL Γ} {α : Act} {p' : ENNReal} :
      ((pgcl {{ @C₁ } [@p] { @C₂ }}, σ) ⤳[α,p'] c') α = Act.N if C₁ = C₂ then p' = 1 c' = (Sum.inl C₁, σ) else p' = p σ 0 < p' c' = (Sum.inl C₁, σ) p' = 1 - p σ 0 < p' c' = (Sum.inl C₂, σ)
      @[simp]
      theorem pGCL.SmallStep.nonDet_iff {𝒱 : Type u_1} {Γ : 𝒱Type u_2} [DecidableEq 𝒱] {c' : Conf₁ Γ} {σ : State Γ} {C₁ C₂ : pGCL Γ} {α : Act} {p' : ENNReal} :
      ((pgcl {{ @C₁ } [] { @C₂ }}, σ) ⤳[α,p'] c') p' = 1 (α = Act.L c' = (Sum.inl C₁, σ) α = Act.R c' = (Sum.inl C₂, σ))
      @[simp]
      theorem pGCL.SmallStep.tick_iff {𝒱 : Type u_1} {Γ : 𝒱Type u_2} [DecidableEq 𝒱] {c' : Conf₁ Γ} {σ : State Γ} {r : State ΓENNReal} {α : Act} {p : ENNReal} :
      @[simp]
      theorem pGCL.SmallStep.observe_iff {𝒱 : Type u_1} {Γ : 𝒱Type u_2} [DecidableEq 𝒱] {c' : Conf₁ Γ} {σ : State Γ} {b : State ΓProp} {α : Act} {p : ENNReal} :
      @[simp]
      theorem pGCL.SmallStep.seq_iff {𝒱 : Type u_1} {Γ : 𝒱Type u_2} [DecidableEq 𝒱] {c' : Conf₁ Γ} {σ : State Γ} {α : Act} {p : ENNReal} {C₁ C₂ : pGCL Γ} :
      ((pgcl {@C₁ ; @C₂}, σ) ⤳[α,p] c') (∃ (C' : pGCL Γ) (σ' : State Γ), ((C₁, σ) ⤳[α,p] (Sum.inl C', σ')) c' = (Sum.inl (pgcl {@C' ; @C₂}), σ')) (∃ (σ' : State Γ), ((C₁, σ) ⤳[α,p] (Sum.inr Termination.term, σ')) c' = (Sum.inl C₂, σ')) ((C₁, σ) ⤳[α,p] (Sum.inr Termination.fault, σ)) c' = (Sum.inr Termination.fault, σ) α = Act.N p = 1
      @[simp]
      theorem pGCL.SmallStep.loop_iff {𝒱 : Type u_1} {Γ : 𝒱Type u_2} [DecidableEq 𝒱] {c' : Conf₁ Γ} {σ : State Γ} {b : State ΓProp} {C : pGCL Γ} {α : Act} {p : ENNReal} :
      def pGCL.SmallStep.act {𝒱 : Type u_1} {Γ : 𝒱Type u_2} [DecidableEq 𝒱] (c : Conf₀ Γ) :
      Equations
      Instances For
        @[implicit_reducible]
        noncomputable instance pGCL.SmallStep.instDecidableMemActSetAct {𝒱 : Type u_1} {Γ : 𝒱Type u_2} [DecidableEq 𝒱] {c : Conf₀ Γ} {α : Act} :
        Equations
        instance pGCL.SmallStep.instFiniteElemActAct {𝒱 : Type u_1} {Γ : 𝒱Type u_2} [DecidableEq 𝒱] {c : Conf₀ Γ} :
        Finite (act c)
        @[implicit_reducible]
        noncomputable instance pGCL.SmallStep.instFintypeElemActAct {𝒱 : Type u_1} {Γ : 𝒱Type u_2} [DecidableEq 𝒱] {c : Conf₀ Γ} :
        Fintype (act c)
        Equations
        @[simp]
        theorem pGCL.SmallStep.act_skip {𝒱 : Type u_1} {Γ : 𝒱Type u_2} [DecidableEq 𝒱] {σ : State Γ} :
        @[simp]
        theorem pGCL.SmallStep.act_assign {𝒱 : Type u_1} {Γ : 𝒱Type u_2} [DecidableEq 𝒱] {σ : State Γ} {x : 𝒱} {e : State ΓΓ x} :
        @[simp]
        theorem pGCL.SmallStep.act_seq {𝒱 : Type u_1} {Γ : 𝒱Type u_2} [DecidableEq 𝒱] {σ : State Γ} {C₁ C₂ : pGCL Γ} :
        act (pgcl {@C₁ ; @C₂}, σ) = act (C₁, σ)
        @[simp]
        theorem pGCL.SmallStep.act_prob {𝒱 : Type u_1} {Γ : 𝒱Type u_2} [DecidableEq 𝒱] {σ : State Γ} {C₁ : pGCL Γ} {p : ProbExp Γ} {C₂ : pGCL Γ} :
        act (pgcl {{ @C₁ } [@p] { @C₂ }}, σ) = {Act.N}
        @[simp]
        theorem pGCL.SmallStep.act_nonDet {𝒱 : Type u_1} {Γ : 𝒱Type u_2} [DecidableEq 𝒱] {σ : State Γ} {C₁ C₂ : pGCL Γ} :
        @[simp]
        theorem pGCL.SmallStep.act_loop {𝒱 : Type u_1} {Γ : 𝒱Type u_2} [DecidableEq 𝒱] {σ : State Γ} {b : State ΓProp} {C : pGCL Γ} :
        @[simp]
        theorem pGCL.SmallStep.act_tick {𝒱 : Type u_1} {Γ : 𝒱Type u_2} [DecidableEq 𝒱] {σ : State Γ} {r : State ΓENNReal} :
        @[simp]
        theorem pGCL.SmallStep.act_observe {𝒱 : Type u_1} {Γ : 𝒱Type u_2} [DecidableEq 𝒱] {σ : State Γ} {r : State ΓProp} :
        instance pGCL.SmallStep.act_nonempty {𝒱 : Type u_1} {Γ : 𝒱Type u_2} [DecidableEq 𝒱] (s : Conf₀ Γ) :
        Nonempty (act s)
        theorem pGCL.SmallStep.progress {𝒱 : Type u_1} {Γ : 𝒱Type u_2} [DecidableEq 𝒱] (s : Conf₀ Γ) :
        ∃ (p : ENNReal) (a : Act) (x : Conf₁ Γ), s ⤳[a,p] x
        @[simp]
        theorem pGCL.SmallStep.iInf_act_const {𝒱 : Type u_1} {Γ : 𝒱Type u_2} [DecidableEq 𝒱] {C : Conf₀ Γ} {x : ENNReal} :
        αact C, x = x
        @[implicit_reducible]
        noncomputable instance pGCL.SmallStep.instDecidable {𝒱 : Type u_1} {Γ : 𝒱Type u_2} [DecidableEq 𝒱] {c : Conf₀ Γ} {c' : Conf₁ Γ} {α : Act} {p : ENNReal} :
        Decidable (c ⤳[α,p] c')
        Equations
        @[implicit_reducible]
        noncomputable instance pGCL.SmallStep.instDecidableExistsActENNReal {𝒱 : Type u_1} {Γ : 𝒱Type u_2} [DecidableEq 𝒱] {c : Conf₀ Γ} {c' : Conf₁ Γ} :
        Decidable (∃ (α : Act) (p : ENNReal), c ⤳[α,p] c')
        Equations
        @[simp]
        theorem pGCL.SmallStep.tsum_p {𝒱 : Type u_1} {Γ : 𝒱Type u_2} [DecidableEq 𝒱] {c : Conf₀ Γ} {c' : Conf₁ Γ} {α : Act} :
        ∑' (p : { p : ENNReal // c ⤳[α,p] c' }), p = ∑' (p : ENNReal), if c ⤳[α,p] c' then p else 0
        def pGCL.SmallStep.succs {𝒱 : Type u_1} {Γ : 𝒱Type u_2} [DecidableEq 𝒱] (c : Conf₀ Γ) (α : Act) :
        Equations
        Instances For
          theorem pGCL.SmallStep.succs_univ_fin'_eq_r {𝒱 : Type u_1} {Γ : 𝒱Type u_2} [DecidableEq 𝒱] (c : Conf₀ Γ) (α : Act) (p : ENNReal) (c' : Conf₁ Γ) :
          (α, p, c') succs_univ_fin' c c ⤳[α,p] c'
          theorem pGCL.SmallStep.sums_to_one {𝒱 : Type u_1} {Γ : 𝒱Type u_2} [DecidableEq 𝒱] {c : Conf₀ Γ} {α : Act} {p₀ : ENNReal} {c₀ : Conf₁ Γ} (h₀ : c ⤳[α,p₀] c₀) :
          ∑' (c' : Conf₁ Γ) (p : { p : ENNReal // c ⤳[α,p] c' }), p = 1