Require Export Relation_Definitions.
Record DirectedSet := {
DS_set : Type;
DS_ord : relation DS_set;
DS_ord_cond : preorder DS_ord;
DS_join_cond : forall i j:DS_set, exists k:DS_set,
DS_ord i k /\ DS_ord j k
}.
Arguments DS_ord {d}.
Arguments DS_ord_cond {d}.
Arguments DS_join_cond {d}.
Section for_large.
Variable I : DirectedSet.
Definition eventually (P : DS_set I -> Prop) : Prop :=
exists i:DS_set I, forall j:DS_set I,
DS_ord i j -> P j.

Lemma eventually_impl: forall (P Q: DS_set I -> Prop),
eventually P -> eventually (fun i:DS_set I => P i -> Q i) ->
eventually Q.