| CGuar(n, act, cs, act0, cs0), CInv(n0, act, cs), CInv(n0, act0, cs0) ⊦ m = n, CRely(m, act, cs, act0, cs0) |
⊦ 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)))
Guar(n, cs, cs0) ∧ ((¬ act(n) → Idle(n, cs)) → ¬ act0(n) → Idle(n, cs0)) ∧ (∀ m0. m0 ≠ n → (act0(m0) ↔ act(m0)) ∧ (Idle(m0, cs) ↔ Idle(m0, cs0))), CInv(n0, act, cs), CInv(n0, act0, cs0) ⊦ m = n, CRely(m, act, cs, act0, cs0)
Used terms: cs0, act0, cs, act, n