Proof using.
intros P Q J K PQ JK.  cofix cf. intros(x, s) un.
generalize (weak_until_Cons x s J P un); simpl. intros [Pxs | (Jxs, uns)].
- constructor 1; simpl; auto.
- constructor 2; simpl; auto.
Qed.

(* Specifications: *)
Lemma until_monotonic :
forall (P Q J K: infseq T -> Prop),
(forall s, P s -> Q s) -> (forall s, J s -> K s) ->
forall s, until J P s -> until K Q s.