Arguments alwA [A B s p P].
(* always commutes with implication, so we can weaken the postconditions *)

Lemma alwI A s (p : proc A) (P : Prop) (Q : state -> proc A -> Prop) :
alwsafe s p ->
always s p (fun s' p' => P -> Q s' p') <->
(P -> always s p (fun s' p' => Q s' p')).