Proof using.
intros f J P Q inv JQP. cofix c.
intros [x s] Js a.
rewrite map_Cons in a. case (always_Cons a); intros a1 a2. constructor.
- apply JQP. assumption.
rewrite map_Cons; assumption.
- simpl. apply c.
* apply (inv x). assumption.
* assumption.
Qed.

(* Specifications: *)
Lemma always_map_conv :
forall (f: A->B) (P: infseq A->Prop) (Q: infseq B->Prop),
(forall s, Q (map f s) -> P s) ->
forall (s: infseq A), always Q (map f s) -> always P s.