Section Urysohns_Lemma_construction.
Require Export TopologicalSpaces.
Require Export InteriorsClosures.
Variable X:TopologicalSpace.
Variable normal_sep_fun: forall F U:Ensemble (point_set X),
closed F -> open U -> Included F U ->
{ V:Ensemble (point_set X) | open V /\ Included F V /\
Included (closure V) U }.
Variable U0 U1:Ensemble (point_set X).
Hypothesis U0_open: open U0.
Hypothesis U1_open: open U1.
Hypothesis U0_in_U1: Included (closure U0) U1.
Definition Un (n:nat) : Ensemble (point_set X) :=
match n with
| O => U0
| S O => U1
| S (S _) => Full_set
end.

(* Specifications: *)
Lemma Un_open: forall n:nat, open (Un n).
Lemma Un_incr: forall n:nat, Included (closure (Un n))
(Un (S n)).