Proof using.
intros P.
cofix c.
intro s.
destruct s as [e s].
intros evnP.
apply Always.
- case (classic (P (Cons e s))); trivial.
intros orP.
apply (E0 _ (~_ P)) in orP.
contradict evnP.
assumption.
- apply c.
simpl.
intros evP.
contradict evnP.
apply E_next.
assumption.
Qed.

(* Specifications: *)
Lemma not_always_eventually_not :
forall (P : infseq T -> Prop) (s : infseq T),
~ always P s -> eventually (~_ P) s.