| □ (Act = Act' ∧ Inp = Inp'), N = N'' + 1 until Boolvar, INDHYP-nat(N + 1), Act(m), CInv(n, Act, CS), CRely(m, act0, cs0, Act, CS), CInv(n, act0, cs0), Guar(m, cs, cs0), m ≤ n, act0(m), CInv(n, act0, cs), boolvar1 → cs = cs0 ∧ ¬ boolvar0 ∧ N + 1 = n1, Inv(cs) → Inv(cs0), ∀ m1. m1 ≠ m → (Idle(m1, cs) ↔ Idle(m1, cs0)), ¬ Rely(m, cs0, CS) ∨ ¬(Idle(m, cs0) ↔ Idle(m, CS)) ∨ ¬(Inv(cs0) → Inv(CS)) ⊦ (CRely(m, Act', CS', Act'', CS'') ∧ (CInv(n, Act', CS') ∧ Act'(m) → CInv(n, Act'', CS'') ∧ Act''(m)) ∧ ¬ Boolvar) -+-> (last ⊃ CInv(n, Act, CS) ∧ Idle(m, CS) ∧ Act(m);CGuar(m, Act, CS, Act', CS') ∧ (CInv(n, Act, CS) ∧ Act(m) → CInv(n, Act', CS') ∧ Act'(m))) |
⊦ CRely(m, act1, cs1, act2, cs2) ↔ Rely(m, cs1, cs2) ∧ (Idle(m, cs1) ↔ Idle(m, cs2)) ∧ (act2(m) ↔ act1(m))
N = N'' + 1 until Boolvar, □ (Act = Act' ∧ Inp = Inp'), INDHYP-nat(N + 1), Act(m), CInv(n, Act, CS), Rely(m, cs0, CS) ∧ (Idle(m, cs0) ↔ Idle(m, CS)) ∧ (Act(m) ↔ act0(m)), CInv(n, act0, cs0), Guar(m, cs, cs0), m ≤ n, act0(m), CInv(n, act0, cs), boolvar1 → cs = cs0 ∧ ¬ boolvar0 ∧ N + 1 = n1, Inv(cs) → Inv(cs0), ∀ m1. m1 ≠ m → (Idle(m1, cs) ↔ Idle(m1, cs0)), ¬ Rely(m, cs0, CS) ∨ ¬(Idle(m, cs0) ↔ Idle(m, CS)) ∨ ¬(Inv(cs0) → Inv(CS)) ⊦ (CRely(m, Act', CS', Act'', CS'') ∧ (CInv(n, Act', CS') ∧ Act'(m) → CInv(n, Act'', CS'') ∧ Act''(m)) ∧ ¬ Boolvar) -+-> (last ⊃ CInv(n, Act, CS) ∧ Idle(m, CS) ∧ Act(m);CGuar(m, Act, CS, Act', CS') ∧ (CInv(n, Act, CS) ∧ Act(m) → CInv(n, Act', CS') ∧ Act'(m)))
Used terms: CS, Act, cs0, act0, m