| \A ∀ Act, CS, n, Inp, Outp. CInitto(m0, Act, CS) ∧ CInv(n, Act, CS) ∧ m0 ≤ n → [: Act, Inp, CS, Outp | CRelyto(m0, Act', CS', Act'', CS'') , CGuarto(m0, Act, CS, Act', CS') , CInv(n, Act, CS) , CSPAWN(m0; Act, Inp, CS, Outp) ] CInv(n, Act, CS), CInitto(m0 +1, Act, CS), CInv(n, Act, CS), m0 +1 ≤ n ⊦ [: Act, Inp, CS, Outp | CRelyto(m0 +1, Act', CS', Act'', CS'') , CGuarto(m0 +1, Act, CS, Act', CS') , CInv(n, Act, CS) , CSPAWN(m0 +1; Act, Inp, CS, Outp) ] CInv(n, Act, CS) |
\A ∀ Act, CS, n, Inp, Outp. CInitto(m0, Act, CS) ∧ CInv(n, Act, CS) ∧ m0 ≤ n → [: Act, Inp, CS, Outp | CRelyto(m0, Act', CS', Act'', CS'') , CGuarto(m0, Act, CS, Act', CS') , CInv(n, Act, CS) , CSPAWN(m0; Act, Inp, CS, Outp) ] CInv(n, Act, CS), n ≠ 0, CInitto(m0 + 1, Act, CS), CInv(n, Act, CS), m0 < n ⊦ [: Act, Inp, CS, Outp | CRelyto(m0 + 1, Act', CS', Act'', CS'') , CGuarto(m0 + 1, Act, CS, Act', CS') , CInv(n, Act, CS) , CSPAWN(m0 + 1; Act, Inp, CS, Outp) ] CInv(n, Act, CS)
Used simplifier rules: f: ⊦ m < n → n ≠ 0; (forward) from specification nat-basic1%c: ⊦ m + n = n + m; from specification nat-basic2%a: ⊦ (m + n0) + n1 = m + n0 + n1; from specification nat-basic2%succ-01: ⊦ m + 1 ≤ n ↔ m < n; from specification nat%succ: ⊦ m +1 = m + 1; from specification nat-basic2