Definition Tietze_extension_func : point_set X -> point_set RTop.

(* Specifications: *)
Lemma Tietze_extension_func_bound: forall x:point_set X, -1 <= Tietze_extension_func x <= 1.
Lemma Tietze_extension_func_is_extension: forall x:point_set (SubspaceTopology F), Tietze_extension_func (subspace_inc F x) = f x.
Lemma Tietze_extension_func_continuous: continuous Tietze_extension_func.
Lemma bounded_Tietze_extension_theorem: forall (X:TopologicalSpace) (F:Ensemble (point_set X)) (f:point_set (SubspaceTopology F) -> point_set RTop), normal_sep X -> closed F -> continuous f -> (forall x:point_set (SubspaceTopology F), -1 <= f x <= 1) -> exists g:point_set X -> point_set RTop, continuous g /\ (forall x:point_set (SubspaceTopology F), g (subspace_inc F x) = f x) /\ (forall x:point_set X, -1 <= g x <= 1).
Lemma open_bounded_Tietze_extension_theorem: forall (X:TopologicalSpace) (F:Ensemble (point_set X)) (f:point_set (SubspaceTopology F) -> point_set RTop), normal_sep X -> closed F -> continuous f -> (forall x:point_set (SubspaceTopology F), -1 < f x < 1) -> exists g:point_set X -> point_set RTop, continuous g /\ (forall x:point_set (SubspaceTopology F), g (subspace_inc F x) = f x) /\ (forall x:point_set X, -1 < g x < 1).
Theorem Tietze_extension_theorem: forall (X:TopologicalSpace) (F:Ensemble (point_set X)) (f:point_set (SubspaceTopology F) -> point_set RTop), normal_sep X -> closed F -> continuous f -> exists g:point_set X -> point_set RTop, continuous g /\ (forall x:point_set (SubspaceTopology F), g (subspace_inc F x) = f x).