Definition open_basis_cond :=
  forall U V:Ensemble X, In B U -> In B V ->
    forall x:X, In (Intersection U V) x ->
      exists W:Ensemble X, In B W /\ In W x /\
                           Included W (Intersection U V).Definition open_basis_cover_cond :=
  forall x:X, exists U:Ensemble X, In B U /\ In U x.Inductive B_open : Ensemble X -> Prop :=
  | B_open_intro: forall F:Family X, Included F B ->
    B_open (FamilyUnion F).Inductive B_open : Ensemble X -> Prop :=
  | B_open_intro: forall F:Family X, Included F B ->
    B_open (FamilyUnion F).Definition Build_TopologicalSpace_from_open_basis : TopologicalSpace.

(* Specifications: *)
Lemma Build_TopologicalSpace_from_open_basis_point_set: point_set Build_TopologicalSpace_from_open_basis = X.
Lemma Build_TopologicalSpace_from_open_basis_basis: @open_basis Build_TopologicalSpace_from_open_basis B.