| [:Inpf, S, Outf | SEQ#(n0 + 1, Inpf(n0 + 1); S, Outf(n0 + 1)) ∥ SPAWN#(n0; 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'))), Prton(n0 + 1)(S), GInv(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 | [PL GInv(S) ∧ Pr(n0 + 1)(S) → (Ry(n0 + 1)(S', S'') ∧ (GInv(S') → GInv(S''))) -+-> (last ⊃ Po(n0 + 1)(S) ∧ GInv(S);Gr(n0 + 1)(S, S') ∧ ¬ blocked ∧ (GInv(S) → GInv(S'))) ] ∥ SPAWN#(n0; Inpf, S, Outf) ], Prton(n0 + 1)(S), GInv(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: seq-sat-rg: [:Inpf, S, Outf | SEQ#(m, Inpf(m); S, Outf(m))], GInv(S), Pr(m)(S) ⊦ (Ry(m)(S', S'') ∧ (GInv(S') → GInv(S''))) -+-> (last ⊃ Po(m)(S) ∧ GInv(S) ;Gr(m)(S, S') ∧ ¬ blocked ∧ (GInv(S) → GInv(S')) );