Inductive Lubs_of_finite_parts (X : Ensemble U) : Ensemble U :=
    Lubs_of_finite_parts_def :
      forall (bsup : U) (Y : Ensemble U),
      Included U Y X ->
      Finite U Y -> Lub U D Y bsup -> In U (Lubs_of_finite_parts X) bsup.Inductive Lubs_of_finite_parts (X : Ensemble U) : Ensemble U :=
    Lubs_of_finite_parts_def :
      forall (bsup : U) (Y : Ensemble U),
      Included U Y X ->
      Finite U Y -> Lub U D Y bsup -> In U (Lubs_of_finite_parts X) bsup.

(* Specifications: *)
Theorem LFP_directed : forall X : Ensemble U, (forall Y : Ensemble U, Included U Y X -> Finite U Y -> exists bsup : U, Lub U D Y bsup) -> Included U X (Carrier_of U D) -> Consistent U D X -> Directed U D (Lubs_of_finite_parts X).
Theorem Lub_is_LFP : forall X : Ensemble U, Included U X (Carrier_of U D) -> forall bsup : U, Lub U D (Lubs_of_finite_parts X) bsup -> Lub U D X bsup.
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.