(* p2 is a process resulting from executing p1 *)
(* Now assume p2 is a return and p is its continuation, so we proceed until we reach the return *)

Lemma alwsafe_bnd A B (p1 : proc A) (p12 : proc B) s1 pp2 :
p12 \In pcat p1 pp2 ->
always s1 p1 (fun s2 p2 =>
forall p v, p2 = Ret v -> p \In pp2 v -> alwsafe s2 p) ->
alwsafe s1 p12.