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
- pGCL.IdleInvariant g b Ļ I V Ļā = ā Ļ ā pGCL.State.EQ V Ļā, ((ĪØ[g] b) Ļ) I Ļ ā¤ I Ļ
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) Ļā)
:
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
- pGCL.IdleCoinvariant g b Ļ I V Ļā = ā Ļ ā pGCL.State.EQ V Ļā, I Ļ ā¤ ((ĪØ[g] b) Ļ) I Ļ
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)
:
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
- pGCL.IdleKInvariant g b Ļ k I V Ļā = ā Ļ ā pGCL.State.EQ V Ļā, ((ĪØ[g] b) Ļ) ((fun (x : pGCL.State Ī ā ENNReal) => ((ĪØ[g] b) Ļ) x ā I)^[k] I) Ļ ā¤ I Ļ
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) Ļā)
:
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
- pGCL.IdleKCoinvariant g b Ļ k I V Ļā = ā Ļ ā pGCL.State.EQ V Ļā, I Ļ ā¤ (((pĪØ[g] b) Ļ) ((fun (x : pGCL.ProbExp Ī) => ((pĪØ[g] b) Ļ) x ā I)^[k] I)) Ļ
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) Ļā)
:
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
- pGCL.IdleKCoinvariant'' g b Ļ k I V Ļā = ā Ļ ā pGCL.State.EQ V Ļā, I Ļ ā¤ ((ĪØ[g] b) Ļ) ((fun (x : pGCL.State Ī ā ENNReal) => ((ĪØ[g] b) Ļ) x ā I)^[k] I) Ļ
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)
:
Idle k-coinduction.