| □ Inpf = Inpf', □ (Out = Outf(m) ∧ Outf' = (Outf(m; Out'))), [:S, Out | SEQ#(m, Inpf(m); S, Out)], GInv(S), Pr(m)(S) ⊦ [:S, Out | SEQ#(m, Inpf(m); S, Out)] ∧ □ (Out = Outf(m) ∧ Out' = Outf'(m)), (Ry(m)(S', S'') ∧ (GInv(S') → GInv(S''))) -+-> (last ⊃ Po(m)(S) ∧ GInv(S);Gr(m)(S, S') ∧ ¬ blocked ∧ (GInv(S) → GInv(S'))) |
□ Inpf = Inpf', □ (Out = Outf(m) ∧ Outf' = (Outf(m; Out'))), [:S, Out | SEQ#(m, Inpf(m); S, Out)], 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'))), [:S, Out | SEQ#(m, Inpf(m); S, Out)] ∧ □ Out' = Outf'(m)