Require Export TopologicalSpaces.
Require Export Continuity.
Inductive homeomorphism {X Y:TopologicalSpace}
(f:point_set X -> point_set Y) : Prop :=
| intro_homeomorphism: forall g:point_set Y -> point_set X,
continuous f -> continuous g ->
(forall x:point_set X, g (f x) = x) ->
(forall y:point_set Y, f (g y) = y) -> homeomorphism f.
Definition open_map {X Y:TopologicalSpace}
(f:point_set X -> point_set Y) : Prop :=
forall U:Ensemble (point_set X), open U -> open (Im U f).

Lemma invertible_open_map_is_homeomorphism: forall {X Y:TopologicalSpace}
(f:point_set X -> point_set Y),
invertible f -> continuous f -> open_map f -> homeomorphism f.