Proof using.
intros J P s rl.
case (classic (until J P s)); trivial.
intros un.
contradict rl.
revert s un.
cofix c.
intros s un.
case (classic (P s)).
- intros Ps.
contradict un.
apply U0.
assumption.
- intros Ps.
case (classic (J s)).
* intros Js.
destruct s as [x s].
apply R_tl; trivial.
simpl.
apply c.
intros unn.
contradict un.
apply U_next; trivial.
* intros Js.
destruct s as [x s].
apply R0; unfold not_tl; assumption.
Qed.

(* Specifications: *)
Lemma not_inf_often_continuously_not :
forall (P : infseq T -> Prop) (s : infseq T),
~ inf_often P s -> continuously (~_ P) s.