Documentation

PGCL.IdleInduction

theorem pGCL.wlp'_apply_eq_wlp_apply {š’± : Type u_1} {Ī“ : š’± → Type u_2} [DecidableEq š’±] {O : Optimization} {X : ProbExp Ī“} {σ : State Ī“} {C : pGCL Ī“} :
(wlp'[O]⟦@C⟧ X) σ = wlp[O]⟦@C⟧ (⇑X) σ
def pGCL.State.EQ {š’± : Type u_1} {Ī“ : š’± → Type u_2} (V : Set š’±) (Ļƒā‚€ : State Ī“) :
Set (State Ī“)
Equations
Instances For
    def pGCL.IdleInvariant {š’± : Type u_1} {Ī“ : š’± → Type u_2} (g : (State Ī“ → ENNReal) →o State Ī“ → ENNReal) (b : BExpr Ī“) (φ I : State Ī“ → ENNReal) (V : Set š’±) (Ļƒā‚€ : State Ī“) :

    An Idle invariant is Park invariant that holds for states with a set of fixed variables.

    Equations
    Instances For
      theorem pGCL.IdleInduction {š’± : Type u_1} {Ī“ : š’± → Type u_2} [DecidableEq š’±] {O : Optimization} {b : BExpr Ī“} {C : pGCL Ī“} {φ I : State Ī“ → ENNReal} {Ļƒā‚€ : State Ī“} (h : IdleInvariant wp[O]⟦@C⟧ b φ I (~ C.mods) Ļƒā‚€) :
      wp[O]⟦while @b { @C }⟧ φ Ļƒā‚€ ≤ I Ļƒā‚€

      Idle induction is Park induction, but the engine is running (i.e. an initial state is given), and as a consequence only states that vary over the modified variables need to be considered for the inductive invariant.

      def pGCL.IdleCoinvariant {š’± : Type u_1} {Ī“ : š’± → Type u_2} (g : (State Ī“ → ENNReal) →o State Ī“ → ENNReal) (b : BExpr Ī“) (φ I : State Ī“ → ENNReal) (V : Set š’±) (Ļƒā‚€ : State Ī“) :

      An Idle coinvariant is Park coinvariant that holds for states with a set of fixed variables.

      Equations
      Instances For
        theorem pGCL.IdleCoinduction {š’± : Type u_1} {Ī“ : š’± → Type u_2} [DecidableEq š’±] {O : Optimization} {b : BExpr Ī“} {C : pGCL Ī“} {φ I : State Ī“ → ENNReal} {Ļƒā‚€ : State Ī“} (h : IdleCoinvariant wlp[O]⟦@C⟧ b φ I (~ C.mods) Ļƒā‚€) (hI : I ≤ 1) (hφ : φ ≤ 1) :
        I Ļƒā‚€ ≤ wlp[O]⟦while @b { @C }⟧ φ Ļƒā‚€

        Idle coinduction is Park coinduction, but the engine is running (i.e. an initial state is given), and as a consequence only states that vary over the modified variables need to be considered for the coinductive invariant.

        def pGCL.IdleKInvariant {š’± : Type u_1} {Ī“ : š’± → Type u_2} (g : (State Ī“ → ENNReal) →o State Ī“ → ENNReal) (b : BExpr Ī“) (φ : State Ī“ → ENNReal) (k : ā„•) (I : State Ī“ → ENNReal) (V : Set š’±) (Ļƒā‚€ : State Ī“) :

        A Idle k-invariant.

        Equations
        Instances For
          theorem pGCL.IdleKInduction {š’± : Type u_1} {Ī“ : š’± → Type u_2} [DecidableEq š’±] {O : Optimization} {b : BExpr Ī“} {C : pGCL Ī“} {φ I : State Ī“ → ENNReal} (k : ā„•) {Ļƒā‚€ : State Ī“} (h : IdleKInvariant wp[O]⟦@C⟧ b φ k I (~ C.mods) Ļƒā‚€) :
          wp[O]⟦while @b { @C }⟧ φ Ļƒā‚€ ≤ I Ļƒā‚€

          Idle k-induction.

          def pGCL.IdleKCoinvariant {š’± : Type u_1} {Ī“ : š’± → Type u_2} (g : ProbExp Ī“ →o ProbExp Ī“) (b : BExpr Ī“) (φ : ProbExp Ī“) (k : ā„•) (I : ProbExp Ī“) (V : Set š’±) (Ļƒā‚€ : State Ī“) :

          A Idle k-coinvariant.

          Equations
          Instances For
            theorem pGCL.IdleKCoinduction {š’± : Type u_1} {Ī“ : š’± → Type u_2} [DecidableEq š’±] {O : Optimization} {b : BExpr Ī“} {C : pGCL Ī“} {φ I : ProbExp Ī“} (k : ā„•) {Ļƒā‚€ : State Ī“} (h : IdleKCoinvariant wlp'[O]⟦@C⟧ b φ k I (~ C.mods) Ļƒā‚€) :
            I Ļƒā‚€ ≤ (wlp'[O]⟦while @b { @C }⟧ φ) Ļƒā‚€

            Idle k-coinduction.

            def pGCL.IdleKCoinvariant'' {š’± : Type u_1} {Ī“ : š’± → Type u_2} (g : (State Ī“ → ENNReal) →o State Ī“ → ENNReal) (b : BExpr Ī“) (φ : State Ī“ → ENNReal) (k : ā„•) (I : State Ī“ → ENNReal) (V : Set š’±) (Ļƒā‚€ : State Ī“) :

            A Idle k-coinvariant.

            Equations
            Instances For
              def pGCL.IdleKCoinvariant''.toIdleKCoinvariant {š’± : Type u_1} {Ī“ : š’± → Type u_2} [DecidableEq š’±] {O : Optimization} {b : BExpr Ī“} {φ : State Ī“ → ENNReal} {k : ā„•} {I : State Ī“ → ENNReal} {Ļƒā‚€ : State Ī“} {C : pGCL Ī“} (h : IdleKCoinvariant'' wlp[O]⟦@C⟧ b φ k I (~ C.mods) Ļƒā‚€) (hI : I ≤ 1) (hφ : φ ≤ 1) :
              Equations
              • ⋯ = ⋯
              Instances For
                theorem pGCL.IdleKCoinduction'' {š’± : Type u_1} {Ī“ : š’± → Type u_2} [DecidableEq š’±] {O : Optimization} {b : BExpr Ī“} {C : pGCL Ī“} {φ I : State Ī“ → ENNReal} (k : ā„•) {Ļƒā‚€ : State Ī“} (h : IdleKCoinvariant'' wlp[O]⟦@C⟧ b φ k I (~ C.mods) Ļƒā‚€) (hI : I ≤ 1) (hφ : φ ≤ 1) :
                I Ļƒā‚€ ≤ wlp[O]⟦while @b { @C }⟧ φ Ļƒā‚€

                Idle k-coinduction.