Require Export RTopology.
Require Export SeparatednessAxioms.
(* This proof of the Tietze extension theorem is heavily based on the proof described on planetmath.org. *)
Section Tietze_extension_construction.
Variable X:TopologicalSpace.
Variable F:Ensemble (point_set X).
Hypothesis F_closed: closed F.
Variable f:point_set (SubspaceTopology F) -> point_set RTop.
Hypothesis f_continuous: continuous f.
Hypothesis f_bound: forall x:point_set (SubspaceTopology F),
-1 <= f x <= 1.
Hypothesis X_nonempty: inhabited (point_set X).
Variable Urysohns_lemma_function:
forall F G:Ensemble (point_set X),
closed F -> closed G -> Intersection F G = Empty_set ->
{ f:point_set X -> point_set RTop |
continuous f /\ (forall x:point_set X, 0 <= f x <= 1) /\
(forall x:point_set X, In F x -> f x = 0) /\
(forall x:point_set X, In G x -> f x = 1) }.

Lemma subspace_inc_takes_closed_to_closed:
forall G:Ensemble (point_set (SubspaceTopology F)),
closed G -> closed (Im G (subspace_inc F)).