| GInit(S) ⊦ ⟨:Inpf, S, Outf | Rton(n)(S', S''), (Gton(n)(S, S') ∧ ¬ blocked), GInv(S), SPAWN#(n; Inpf, S, Outf)⟩ (Poton(n)(S) ∧ GInv(S)) |
[:Inpf, S, Outf | SPAWN#(n; Inpf, S, Outf)], GInit(S) ⊦ (Rton(n)(S', S'') ∧ (GInv(S') → GInv(S''))) -+-> (last ⊃ Poton(n)(S) ∧ GInv(S);(Gton(n)(S, S') ∧ ¬ blocked) ∧ (GInv(S) → GInv(S'))) ∧ (□ (Rton(n)(S', S'') ∧ GInv(S) ∧ GInv(S')) → ◇ last)