Proof using.
intros J P s wu un.
induction un.
- destruct s as [x s].
apply weak_until_Cons in wu.
case wu; unfold not_tl, and_tl.
* intros [Js Ps].
contradict Ps.
assumption.
* intros [[Js Ps] wun].
contradict Ps.
assumption.
- apply weak_until_Cons in wu.
case wu.
* unfold not_tl, and_tl.
intros [Js Ps].
contradict Js.
assumption.
* intros [[Js Ps] wun].
contradict IHun.
assumption.
Qed.

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