| CInv(n, act, cs) ⊦ CRely(m, act, cs, act, cs), CGuar(m + 1, act, cs, act, cs) |
⊦ CGuar(m, act, cs, act0, cs0) ↔ Guar(m, cs, cs0) ∧ ((¬ act(m) → Idle(m, cs)) → ¬ act0(m) → Idle(m, cs0)) ∧ (∀ m0. m0 ≠ m → (act0(m0) ↔ act(m0)) ∧ (Idle(m0, cs) ↔ Idle(m0, cs0)))
CInv(n, act, cs) ⊦ CRely(m, act, cs, act, cs), Guar(m + 1, cs, cs) ∧ ((¬ act(m + 1) → Idle(m + 1, cs)) → ¬ act(m + 1) → Idle(m + 1, cs)) ∧ (∀ m0. m0 ≠ m + 1 → (act(m0) ↔ act(m0)) ∧ (Idle(m0, cs) ↔ Idle(m0, cs)))
Used terms: cs, act, cs, act, m + 1