| m < n, CInv(n, act, cs), CInv(n, act0, cs0), m0 ≤ m, CGuar(m0, act, cs, act0, cs0), m0 < n ⊦ n = 0, CRely(m + 1, act, cs, act0, cs0) |
⊦ CRely(m, act1, cs1, act2, cs2) ↔ Rely(m, cs1, cs2) ∧ (Idle(m, cs1) ↔ Idle(m, cs2)) ∧ (act2(m) ↔ act1(m))
m < n, CInv(n, act, cs), CInv(n, act0, cs0), m0 ≤ m, CGuar(m0, act, cs, act0, cs0), m0 < n ⊦ n = 0, Rely(m + 1, cs, cs0) ∧ (Idle(m + 1, cs) ↔ Idle(m + 1, cs0)) ∧ (act0(m + 1) ↔ act(m + 1))
Used terms: cs0, act0, cs, act, m + 1