Proof using.
intros.
eapply always_monotonic
with (P := always P /\_ eventually Q) (Q := eventually (P /\_ Q)).
- intros.
unfold and_tl in * |-.
firstorder using cumul_eventually_always.
- eapply always_and_tl; eauto using always_always.
Qed.

(* Specifications: *)
(** This theorem is an analog of eventually_monotonic. *)
Lemma inf_often_monotonic_invar :
forall (invariant P Q : infseq T -> Prop),
(forall s,
invariant s ->
P s ->
Q s) ->
forall ex,
always invariant ex ->
inf_often P ex ->
inf_often Q ex.