Module CpoDef.
#[local] Existing Instance pi_isProset.
Notation "`[ A -> B ]" := { f : A -> B | isContinuous f }.
Variant isDirected {D : Type} `{PROSET : isProset D} (X : ensemble D) : Prop :=
| isDirected_intro
(NONEMPTY : exists x0, x0 \in X)
(DIRECTED' : forall x1, forall x2, forall x1_IN : x1 \in X, forall x2_IN : x2 \in X, exists x3, x3 \in X /\ (x1 =< x3 /\ x2 =< x3))
: isDirected X.
#[local] Hint Constructors isDirected : poset_hints.

Lemma isDirected_iff {D : Type} `{PROSET : isProset D} (X : ensemble D)
: isDirected X <-> (forall xs, L.is_finsubset_of xs X -> (exists u, u \in X /\ (forall x, L.In x xs -> x =< u))).