| CInitto(0, Act, CS), CInv(n, Act, CS) ⊦ [: Act, Inp, CS, Outp | CRelyto(0, Act', CS', Act'', CS'') , CGuarto(0, Act, CS, Act', CS') , CInv(n, Act, CS) , CSPAWN(0; Act, Inp, CS, Outp) ] CInv(n, Act, CS) |
CInitto(0, Act, CS), CInv(n, Act, CS), n0 = 0 ⊦ [: Act, Inp, CS, Outp | CRelyto(0, Act', CS', Act'', CS'') , CGuarto(0, Act, CS, Act', CS') , CInv(n, Act, CS) , if* n0 = 0 then CSEQ(n0; Act, Inp, CS, Outp) else CSEQ(n0; Act, Inp, CS, Outp) ∥ CSPAWN(n0 - 1; Act, Inp, CS, Outp) ] CInv(n, Act, CS)
Used simplifier rules: CSPAWN(n; Act, Inp, CS, Outp) {if* n = 0 then CSEQ(n; Act, Inp, CS, Outp) else CSEQ(n; Act, Inp, CS, Outp) ∥ CSPAWN(n - 1; Act, Inp, CS, Outp) };