Proof using.
intros J P s un wun.
induction un as [s JPs | x s JPs IHun IH]; unfold not_tl, and_tl in JPs; destruct JPs as [Js Ps].
- destruct s as [x s].
apply weak_until_Cons in wun.
case wun; trivial.
intros [JCs wu].
contradict Js.
assumption.
- apply weak_until_Cons in wun.
case wun.
* intros PCs.
contradict Ps.
assumption.
* intros [JCs wu].
contradict IH.
assumption.
Qed.
(* connector facts *)

(* Specifications: *)
Lemma and_tl_comm :
forall (P Q : infseq T -> Prop) (s : infseq T),
(P /\_ Q) s <-> (Q /\_ P) s.