@@ -131,11 +131,6 @@ Definition perfectly_normal_space' (x : R) :=
131131 forall E : set T, open E ->
132132 exists f : T -> R, continuous f /\ E = f @^-1` ~`[set x].
133133
134- (*Definition perfectly_normal_space01 :=
135- forall E F : set T, closed E -> closed F -> [disjoint E & F] ->
136- exists f : T -> R, continuous f /\ E = f @^-1` [set 0] /\ F = f @^-1` [set 1]
137- /\ f @` [set: T] = `[0, 1]%classic.
138- *)
139134Definition perfectly_normal_space01 :=
140135 forall E F : set T, closed E -> closed F -> [disjoint E & F] ->
141136 exists f : T -> R,
@@ -148,28 +143,13 @@ Definition perfectly_normal_space_Gdelta :=
148143Lemma perfectly_normal_space01_normal :
149144 perfectly_normal_space01 -> normal_space T.
150145Proof .
151- move=> pns01 A cA B /set_nbhsP[C] [oC AC CB].
152- case: (pns01 A (~` C) cA).
153- - by rewrite closedC.
154- - exact/disj_setPCl.
155- move=> f [/continuousP /= cf] [f0] [f1] f01.
156- exists (f @^-1` `]-oo, 1/2]).
157- apply/set_nbhsP.
158- exists (f @^-1` `]-oo, 1/2[).
159- split => //.
160- - exact: cf.
161- - by rewrite f0 => x /= ->; rewrite in_itv /=.
162- - by apply: preimage_subset => x /=; rewrite !in_itv /=; apply: ltW.
163- apply: subset_trans CB.
164- have<-:= proj1 (closure_id _).
165- have<-:= (setCK C).
166- rewrite f1 preimage_setC.
167- apply: preimage_subset => x /=; rewrite in_itv /=.
168- apply: contraTnot => ->.
169- by rewrite -ltNge ltr_pdivrMr // mul1r ltr1n.
170- have/continuousP /continuous_closedP:= cf.
171- apply.
172- exact: lray_closed.
146+ move=> pns01.
147+ rewrite (@normal_separatorP R).
148+ move=> A B cA cB /eqP AB.
149+ apply/uniform_separatorP.
150+ have[f [] cf Af Bf f01] := pns01 _ _ cA cB AB.
151+ exists f.
152+ by split => //; rewrite (Af, Bf); exact:image_preimage_subset.
173153Qed .
174154
175155Lemma EFin_series (f : R^nat) : EFin \o series f = eseries (EFin \o f).
0 commit comments