Section sec_classical.
Variable T : Type.
Proof using.
intros J P s.
case (classic (eventually P s)).
- intros evP wu.
left.
induction evP.
* apply U0. assumption.
* apply weak_until_Cons in wu.
case wu.
+ intros PC.
apply U0. assumption.
+ intros [Js wu'].
apply U_next; trivial.
apply IHevP.
assumption.
- intros evP wu.
right.
apply not_eventually_always_not in evP.
apply weak_until_always_not_always in wu; trivial.
Qed.

Lemma not_until_weak_until :
forall (J P : infseq T -> Prop) (s : infseq T),
~ until J P s -> weak_until (J /\_ ~_ P) (~_ J /\_ ~_ P) s.