intros X K bsup E0; elim E0.
intros H'4 H'5; apply Lub_definition; auto with sets.
apply Upper_Bound_definition; auto with sets.
apply Lub_is_in_Carrier with (X := Lubs_of_finite_parts X); auto with sets.
red in |- *; simpl in |- *; intros x H'8; elim H'8.
intros bsup0 Y H'9 H'10 H'11; apply Lub_is_in_Carrier with Y; auto with sets.
intros y H'8; elim H'4.
intros H'9 H'10; apply H'10.
apply Lubs_of_finite_parts_def with (Y := Singleton U y); auto with sets.
red in |- *; simpl in |- *.
intros x H'11; elim H'11; auto with sets.
apply Singleton_is_finite.
intros y H'8; apply H'5.
apply Upper_Bound_definition.
elim H'8; auto with sets.
intros y0 H'9; elim H'9.
intros bsup1 Y H'10 H'11 H'12; elim H'12.
intros H'13 H'14; apply H'14.
apply Upper_downward_stable with (B := X); auto with sets.
Qed.
Hint Resolve Lub_is_LFP.
Hint Resolve Pairs_are_enough_finite_case.

(* Specifications: *)
Theorem Pairs_are_enough :
(forall x y : U,
Compatible U D x y -> ex (fun bsup : U => Lub U D (Couple U x y) bsup)) ->
Conditionally_complete U D.