Proof using.
induction 1 as [s Ps | x s evPs induc_hyp]; intro al.
- constructor 1. split; assumption.
- constructor 2. apply induc_hyp. eapply always_invar; eauto.
Qed.

(* Specifications: *)
Lemma eventually_weak_until_cumul :
forall (s: infseq T) P J,
eventually P s -> weak_until J P s -> eventually (P /\_ weak_until J P) s.