Require Export RTopology.
Definition Urysohns_Lemma_function : point_set X -> point_set RTop.
refine (fun x:point_set X => proj1_sig (inf
(Add
(Im [ alpha:dyadic_rational | In (U_dyadic alpha) x ]
(fun alpha:dyadic_rational => Q2R (dr2Q alpha)))
1)
_ _)).
exists 0.
red; intros.
destruct H.
destruct H.
destruct x0.
simpl in H0.
rewrite H0.
replace 0 with (Q2R 0).
cut (Q2R 0 <= Q2R (Z_of_nat m # pos_power2 n)); auto with real.
apply Qle_Rle.
unfold Qle.
simpl.
auto with zarith.
unfold Q2R.
simpl.
ring.
destruct H.
left.
red.
auto with real.
exists 1.
right.
constructor.
Defined.

(* Specifications: *)
Lemma Urysohns_Lemma_function_range:
forall x:point_set X, 0 <= Urysohns_Lemma_function x <= 1.
Lemma Urysohns_Lemma_function_0: forall x:point_set X,
In U0 x -> Urysohns_Lemma_function x = 0.
Lemma Urysohns_Lemma_function_1: forall x:point_set X,
~ In U1 x -> Urysohns_Lemma_function x = 1.
Lemma Urysohns_Lemma_function_continuous:
continuous Urysohns_Lemma_function.