| N = N'' + 1 until Boolvar, (Rely(m, CS', CS'') ∧ (Idle(m, CS') ↔ Idle(m, CS'')) ∧ (Inv(CS') → Inv(CS''))) -+-> (last ⊃ Idle(m, CS) ∧ Inv(CS);Guar(m, CS, CS') ∧ (∀ m0. m0 ≠ m → (Idle(m0, CS) ↔ Idle(m0, CS'))) ∧ (Inv(CS) → Inv(CS'))), □ (Act = Act' ∧ Inp = Inp'), 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)) ⊦ (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 simplifier rules: succ: ⊦ m +1 = m + 1; from specification nat-basic2%s: ⊦ m < n + 1 ↔ ¬ n < m; from specification nat-basic2%ref-1: ⊦ ¬ n < n; from specification nat-basic1%a: ⊦ (m + n0) + n1 = m + n0 + n1; from specification nat-basic2%c: ⊦ m + n = n + m; from specification nat-basic2 Used terms: m, n