Section Build_from_closure.
Variable X:Type.
Variable cl : Ensemble X -> Ensemble X.
Hypothesis cl_inflationary: forall S:Ensemble X,
Included S (cl S).
Hypothesis cl_respects_union: forall S1 S2:Ensemble X,
cl (Union S1 S2) = Union (cl S1) (cl S2).
Hypothesis cl_empty: cl Empty_set = Empty_set.
Hypothesis cl_idempotent: forall S:Ensemble X,
cl (cl S) = cl S.
Definition Build_TopologicalSpace_from_closure_operator : TopologicalSpace.
refine (Build_TopologicalSpace_from_closed_sets
(fun F => cl F = F) _ _ _).
- apply cl_empty.
- intros.
rewrite cl_respects_union; congruence.
- intros.
extensionality_ensembles.
+ constructor. intros.
rewrite <- (H S H1).
apply cl_increasing with (FamilyIntersection F); trivial.
red. intros.
destruct H2.
apply H2; trivial.
+ apply cl_inflationary.
now constructor.
Defined.

Lemma Build_TopologicalSpace_from_closure_operator_closure:
forall S:Ensemble (point_set Build_TopologicalSpace_from_closure_operator),
closure S = cl S.