| Rely(m, cs0, CS) ∧ (Idle(m, cs0) ↔ Idle(m, CS)) ∧ Inv(CS) → (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'))), boolvar ∨ n0 = N + 1 ∧ N = N'' + 1 until Boolvar, □ (Act = Act' ∧ Inp = Inp'), INDHYP-nat(n0), Guar(m, cs, cs0), m ≤ n, act0(m), Inv(cs), Inv(cs0), ¬ Inv(cs0) ∨ (∃ m0. ¬(n < m0 → Idle(m0, cs0) ∧ ¬ act0(m0))), ∀ m1. m1 ≠ m → (Idle(m1, cs) ↔ Idle(m1, cs0)), ∀ m0. n < m0 → Idle(m0, cs) ∧ ¬ act0(m0) ⊦ |
Rely(m, cs0, CS) ∧ (Idle(m, cs0) ↔ Idle(m, CS)) ∧ Inv(CS) → (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'))), boolvar ∨ n0 = N + 1 ∧ N = N'' + 1 until Boolvar, □ (Act = Act' ∧ Inp = Inp'), INDHYP-nat(n0), m0 ≠ 0, Guar(m, cs, cs0), m ≤ n, act0(m), Inv(cs), Inv(cs0), n < m0, m < m0, ∀ m1. m1 ≠ m → (Idle(m1, cs) ↔ Idle(m1, cs0)), ∀ m0. n < m0 → Idle(m0, cs) ∧ ¬ act0(m0), ¬(Idle(m0, cs0) ∧ ¬ act0(m0)) ⊦
Used simplifier rules: fle-01: ⊦ m ≤ n ∧ n < n0 → m < n0; (forward) from specification nat%f: ⊦ m < n → n ≠ 0; (forward) from specification nat-basic1