Section Lemmas_on_partial_orders.
Variable U : Type.
Variable B : Ensemble U.
Variable D : PO U.
elim D; simpl in |- *; auto.
intros C R H' H'0; elim H'0; auto 10.
Qed.
Hint Resolve Rel_of_reflexive.
elim D; simpl in |- *; auto.
intros C R H' H'0; elim H'0; auto 10.
Qed.
Hint Resolve Rel_of_antisymmetric.
elim D; simpl in |- *; auto.
intros C R H' H'0; elim H'0; auto 10.
Qed.
Hint Resolve Rel_of_transitive.
intros x y H' H'0; red in |- *; auto 20.
intros x0 H'1; elim H'1; auto 20.
Qed.
Hint Resolve Couple_included_in_carrier.
intros bsup X H' H'0; elim H'0; auto 20.
intro H'1; elim H'1; auto 20.
Qed.
intros x H'; auto 20.
apply Lub_definition; auto 10.
apply Upper_Bound_definition; auto 10.
intros y H'0; elim H'0; auto 10.
intros y H'0; elim H'0; auto 10.
Qed.
Hint Resolve Singleton_has_lub.
elim D.
intros C R n o.
elim n.
intros x H'; exists x.
apply Upper_Bound_definition; auto.
intros y H'0; elim H'0; auto.
Qed.
Hint Resolve Empty_set_has_Upper_Bound.

Theorem Empty_set_has_lub :
Cpo U D -> exists bsup : U, Lub U D (Empty_set U) bsup.