| m0 ≤ m, m < n, CInv(n, act, cs), CInv(n, act0, cs0), Guar(m + 1, cs, cs0) ∧ ((¬ act(m + 1) → Idle(m + 1, cs)) → ¬ act0(m + 1) → Idle(m + 1, cs0)) ∧ (∀ m0. m0 ≠ m + 1 → (act0(m0) ↔ act(m0)) ∧ (Idle(m0, cs) ↔ Idle(m0, cs0))), m0 < n ⊦ n = 0, CRely(m0, act, cs, act0, cs0) |
m0 < n, Guar(m + 1, cs, cs0), CInv(n, act0, cs0), CInv(n, act, cs), m < n, m0 ≤ m, ∀ m0. m0 ≠ m + 1 → (act0(m0) ↔ act(m0)) ∧ (Idle(m0, cs) ↔ Idle(m0, cs0)), (¬ act(m + 1) → Idle(m + 1, cs)) → ¬ act0(m + 1) → Idle(m + 1, cs0) ⊦ n = 0, CRely(m0, act, cs, act0, cs0)