Documentation

PGCL.SmallStep

Small step operational semantics for pGCL #

Main definitions #

inductive pGCL.SmallStep {ϖ : Type u_1} [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} [DecidableEq ϖ] {c : Conf ϖ} {α : Act} {p : ENNReal} {c' : Conf ϖ} (h : c ⤳[α,p] c') :
      0 < p
      @[simp]
      theorem pGCL.SmallStep.p_ne_zero {ϖ : Type u_1} [DecidableEq ϖ] {c : Conf ϖ} {α : Act} {p : ENNReal} {c' : Conf ϖ} (h : c ⤳[α,p] c') :
      ¬p = 0
      @[simp]
      theorem pGCL.SmallStep.p_le_one {ϖ : Type u_1} [DecidableEq ϖ] {c : Conf ϖ} {α : Act} {p : ENNReal} {c' : Conf ϖ} (h : c ⤳[α,p] c') :
      p 1
      @[simp]
      theorem pGCL.SmallStep.skip_iff {ϖ : Type u_1} [DecidableEq ϖ] {c : Conf ϖ} {σ : States ϖ} {α : Act} {p : ENNReal} :
      @[simp]
      theorem pGCL.SmallStep.sink_iff {ϖ : Type u_1} [DecidableEq ϖ] {c : Conf ϖ} {σ : States ϖ} {α : Act} {p : ENNReal} :
      (some (none, σ) ⤳[α,p] c) p = 1 α = Act.N c = none
      @[simp]
      theorem pGCL.SmallStep.none_iff {ϖ : Type u_1} [DecidableEq ϖ] {c : Conf ϖ} {α : Act} {p : ENNReal} :
      (none ⤳[α,p] c) p = 1 α = Act.N c = none
      @[simp]
      theorem pGCL.SmallStep.to_bot {ϖ : Type u_1} [DecidableEq ϖ] {c : Conf ϖ} {α : Act} {p : ENNReal} :
      (c ⤳[α,p] none) ∃ (σ : States ϖ), p = 1 α = Act.N (c = some (none, σ) c = none)
      @[simp]
      theorem pGCL.SmallStep.to_sink {ϖ : Type u_1} [DecidableEq ϖ] {c : Conf ϖ} {σ : States ϖ} {α : Act} {p : ENNReal} :
      @[simp]
      theorem pGCL.SmallStep.assign_iff {ϖ : Type u_1} [DecidableEq ϖ] {σ : States ϖ} {x : ϖ} {e : Exp ϖ} {α : Act} {p : ENNReal} {c' : Conf ϖ} :
      (·⟨x ::= e,σ ⤳[α,p] c') p = 1 α = Act.N c' = ·⟨pGCL.skip,σ[x e σ]
      @[simp]
      theorem pGCL.SmallStep.prob_iff {ϖ : Type u_1} [DecidableEq ϖ] {σ : States ϖ} {C₁ : pGCL ϖ} {p : ProbExp ϖ} {C₂ : pGCL ϖ} {α : Act} {p' : ENNReal} {c' : Conf ϖ} :
      (·⟨C₁ ·[p] C₂,σ ⤳[α,p'] c') α = Act.N if C₁ = C₂ then p' = 1 c' = ·⟨C₁,σ else p' = p σ 0 < p' c' = ·⟨C₁,σ p' = 1 - p σ 0 < p' c' = ·⟨C₂,σ
      @[simp]
      theorem pGCL.SmallStep.nonDet_iff {ϖ : Type u_1} [DecidableEq ϖ] {σ : States ϖ} {C₁ C₂ : pGCL ϖ} {α : Act} {p' : ENNReal} {c' : Conf ϖ} :
      (·⟨C₁ ·[] C₂,σ ⤳[α,p'] c') p' = 1 (α = Act.L c' = ·⟨C₁,σ α = Act.R c' = ·⟨C₂,σ)
      @[simp]
      theorem pGCL.SmallStep.tick_iff {ϖ : Type u_1} [DecidableEq ϖ] {σ : States ϖ} {r : Exp ϖ} {α : Act} {p : ENNReal} {c' : Conf ϖ} :
      @[simp]
      theorem pGCL.SmallStep.seq_iff {ϖ : Type u_1} [DecidableEq ϖ] {σ : States ϖ} {C₁ C₂ : pGCL ϖ} {α : Act} {p : ENNReal} {c' : Conf ϖ} :
      (·⟨C₁ ;; C₂,σ ⤳[α,p] c') if C₁ = pGCL.skip then p = 1 α = Act.N c' = ·⟨C₂,σ else ∃ (C' : pGCL ϖ) (σ' : States ϖ), (·⟨C₁,σ ⤳[α,p] ·⟨C',σ') c' = ·⟨C' ;; C₂,σ'
      @[simp]
      theorem pGCL.SmallStep.loop_iff {ϖ : Type u_1} [DecidableEq ϖ] {σ : States ϖ} {b : BExpr ϖ} {C : pGCL ϖ} {α : Act} {p : ENNReal} {c' : Conf ϖ} :
      def pGCL.SmallStep.act {ϖ : Type u_1} [DecidableEq ϖ] (c : Conf ϖ) :
      Equations
      Instances For
        instance pGCL.SmallStep.instFiniteElemActAct {ϖ : Type u_1} [DecidableEq ϖ] {c : Conf ϖ} :
        Finite (act c)
        @[simp]
        theorem pGCL.SmallStep.exists_succ_iff {ϖ : Type u_1} [DecidableEq ϖ] {σ : States ϖ} {α : Act} {p : ENNReal} {C : pGCL ϖ} (h : ¬C = pGCL.skip) :
        (∃ (c' : Conf ϖ), ·⟨C,σ ⤳[α,p] c') ∃ (C' : pGCL ϖ) (σ' : States ϖ), ·⟨C,σ ⤳[α,p] ·⟨C',σ'
        @[simp]
        @[simp]
        theorem pGCL.SmallStep.act_sink {ϖ : Type u_1} [DecidableEq ϖ] {σ : States ϖ} :
        @[simp]
        @[simp]
        theorem pGCL.SmallStep.act_assign {ϖ : Type u_1} [DecidableEq ϖ] {σ : States ϖ} {x : ϖ} {e : Exp ϖ} :
        @[simp]
        theorem pGCL.SmallStep.act_seq {ϖ : Type u_1} [DecidableEq ϖ] {σ : States ϖ} {C₁ C₂ : pGCL ϖ} :
        act (·⟨C₁ ;; C₂,σ) = act (·⟨C₁,σ)
        @[simp]
        theorem pGCL.SmallStep.act_prob {ϖ : Type u_1} [DecidableEq ϖ] {σ : States ϖ} {C₁ : pGCL ϖ} {p : ProbExp ϖ} {C₂ : pGCL ϖ} :
        act (·⟨C₁ ·[p] C₂,σ) = {Act.N}
        @[simp]
        theorem pGCL.SmallStep.act_nonDet {ϖ : Type u_1} [DecidableEq ϖ] {σ : States ϖ} {C₁ C₂ : pGCL ϖ} :
        @[simp]
        theorem pGCL.SmallStep.act_loop {ϖ : Type u_1} [DecidableEq ϖ] {σ : States ϖ} {b : BExpr ϖ} {C : pGCL ϖ} :
        @[simp]
        theorem pGCL.SmallStep.act_tick {ϖ : Type u_1} [DecidableEq ϖ] {σ : States ϖ} {r : Exp ϖ} :
        instance pGCL.SmallStep.act_nonempty {ϖ : Type u_1} [DecidableEq ϖ] (s : Conf ϖ) :
        Nonempty (act s)
        theorem pGCL.SmallStep.progress {ϖ : Type u_1} [DecidableEq ϖ] (s : Conf ϖ) :
        ∃ (p : ENNReal) (a : Act) (x : Conf ϖ), s ⤳[a,p] x
        @[simp]
        theorem pGCL.SmallStep.iInf_act_const {ϖ : Type u_1} [DecidableEq ϖ] {C : Conf ϖ} {x : ENNReal} :
        αact C, x = x
        noncomputable instance pGCL.SmallStep.instDecidable {ϖ : Type u_1} [DecidableEq ϖ] {c : Conf ϖ} {α : Act} {p : ENNReal} {c' : Conf ϖ} :
        Decidable (c ⤳[α,p] c')
        Equations
        noncomputable instance pGCL.SmallStep.instDecidableExistsActENNReal {ϖ : Type u_1} [DecidableEq ϖ] {c c' : Conf ϖ} :
        Decidable (∃ (α : Act) (p : ENNReal), c ⤳[α,p] c')
        Equations
        @[simp]
        theorem pGCL.SmallStep.tsum_p {ϖ : Type u_1} [DecidableEq ϖ] {c : Conf ϖ} {α : Act} {c' : Conf ϖ} :
        ∑' (p : { p : ENNReal // c ⤳[α,p] c' }), p = ∑' (p : ENNReal), if c ⤳[α,p] c' then p else 0
        def pGCL.SmallStep.succs {ϖ : Type u_1} [DecidableEq ϖ] (c : Conf ϖ) (α : Act) :
        Set (Conf ϖ)
        Equations
        Instances For
          theorem pGCL.SmallStep.succs_eq_succs_fin {ϖ : Type u_1} [DecidableEq ϖ] {c : Conf ϖ} {α : Act} :
          succs c α = (succs_fin c α)
          theorem pGCL.SmallStep.sums_to_one {ϖ : Type u_1} [DecidableEq ϖ] {c : Conf ϖ} {α : Act} {p₀ : ENNReal} {c₀ : Conf ϖ} (h₀ : c ⤳[α,p₀] c₀) :
          ∑' (c' : Conf ϖ) (p : { p : ENNReal // c ⤳[α,p] c' }), p = 1