| [:Inpf, S, Outf | SPAWN#(n0 +1; Inpf, S, Outf)], \A ∀ Inpf, S, Outf. [:Inpf, S, Outf | SPAWN#(n0; Inpf, S, Outf)] ∧ GInv(S) ∧ Prton(n0)(S) → (Rton(n0)(S', S'') ∧ (GInv(S') → GInv(S''))) -+-> (last ⊃ Poton(n0)(S) ∧ GInv(S);Gton(n0)(S, S') ∧ ¬ blocked ∧ (GInv(S) → GInv(S'))), GInv(S), Prton(n0 +1)(S) ⊦ (Rton(n0 +1)(S', S'') ∧ (GInv(S') → GInv(S''))) -+-> (last ⊃ Poton(n0 +1)(S) ∧ GInv(S);Gton(n0 +1)(S, S') ∧ ¬ blocked ∧ (GInv(S) → GInv(S'))) |
\A ∀ Inpf, S, Outf. [:Inpf, S, Outf | SPAWN#(n0; Inpf, S, Outf)] ∧ GInv(S) ∧ Prton(n0)(S) → (Rton(n0)(S', S'') ∧ (GInv(S') → GInv(S''))) -+-> (last ⊃ Poton(n0)(S) ∧ GInv(S);Gton(n0)(S, S') ∧ ¬ blocked ∧ (GInv(S) → GInv(S'))), [:Inpf, S, Outf | SPAWN#(n0 + 1; Inpf, S, Outf)], GInv(S), Prton(n0 + 1)(S) ⊦ (Rton(n0 + 1)(S', S'') ∧ (GInv(S') → GInv(S''))) -+-> (last ⊃ Poton(n0 + 1)(S) ∧ GInv(S);Gton(n0 + 1)(S, S') ∧ ¬ blocked ∧ (GInv(S) → GInv(S')))
Used simplifier rules: succ: ⊦ m +1 = m + 1; from specification nat-basic2