mathlib documentation

topology.homeomorph

Homeomorphisms #

This file defines homeomorphisms between two topological spaces. They are bijections with both directions continuous. We denote homeomorphisms with the notation ≃ₜ.

Main definitions #

Main results #

@[nolint]
structure homeomorph (α : Type u_5) (β : Type u_6) [topological_space α] [topological_space β] :
Type (max u_5 u_6)

Homeomorphism between α and β, also called topological isomorphism

@[protected, instance]
def homeomorph.has_coe_to_fun {α : Type u_1} {β : Type u_2} [topological_space α] [topological_space β] :
has_coe_to_fun ≃ₜ β) (λ (_x : α ≃ₜ β), α → β)
Equations
@[simp]
theorem homeomorph.homeomorph_mk_coe {α : Type u_1} {β : Type u_2} [topological_space α] [topological_space β] (a : α β) (b : continuous a.to_fun . "continuity'") (c : continuous a.inv_fun . "continuity'") :
@[simp]
theorem homeomorph.coe_to_equiv {α : Type u_1} {β : Type u_2} [topological_space α] [topological_space β] (h : α ≃ₜ β) :
@[protected]
def homeomorph.symm {α : Type u_1} {β : Type u_2} [topological_space α] [topological_space β] (h : α ≃ₜ β) :
β ≃ₜ α

Inverse of a homeomorphism.

Equations
def homeomorph.simps.apply {α : Type u_1} {β : Type u_2} [topological_space α] [topological_space β] (h : α ≃ₜ β) :
α → β

See Note [custom simps projection]. We need to specify this projection explicitly in this case, because it is a composition of multiple projections.

Equations
def homeomorph.simps.symm_apply {α : Type u_1} {β : Type u_2} [topological_space α] [topological_space β] (h : α ≃ₜ β) :
β → α

See Note [custom simps projection]

Equations
@[ext]
theorem homeomorph.ext {α : Type u_1} {β : Type u_2} [topological_space α] [topological_space β] {h h' : α ≃ₜ β} (H : ∀ (x : α), h x = h' x) :
h = h'
@[protected]
def homeomorph.refl (α : Type u_1) [topological_space α] :
α ≃ₜ α

Identity map as a homeomorphism.

Equations
@[simp]
theorem homeomorph.refl_apply (α : Type u_1) [topological_space α] :
@[protected]
def homeomorph.trans {α : Type u_1} {β : Type u_2} {γ : Type u_3} [topological_space α] [topological_space β] [topological_space γ] (h₁ : α ≃ₜ β) (h₂ : β ≃ₜ γ) :
α ≃ₜ γ

Composition of two homeomorphisms.

Equations
@[simp]
theorem homeomorph.trans_apply {α : Type u_1} {β : Type u_2} {γ : Type u_3} [topological_space α] [topological_space β] [topological_space γ] (h₁ : α ≃ₜ β) (h₂ : β ≃ₜ γ) (a : α) :
(h₁.trans h₂) a = h₂ (h₁ a)
@[simp]
theorem homeomorph.homeomorph_mk_coe_symm {α : Type u_1} {β : Type u_2} [topological_space α] [topological_space β] (a : α β) (b : continuous a.to_fun . "continuity'") (c : continuous a.inv_fun . "continuity'") :
@[simp]
@[protected, continuity]
theorem homeomorph.continuous {α : Type u_1} {β : Type u_2} [topological_space α] [topological_space β] (h : α ≃ₜ β) :
@[protected, continuity]
theorem homeomorph.continuous_symm {α : Type u_1} {β : Type u_2} [topological_space α] [topological_space β] (h : α ≃ₜ β) :
@[simp]
theorem homeomorph.apply_symm_apply {α : Type u_1} {β : Type u_2} [topological_space α] [topological_space β] (h : α ≃ₜ β) (x : β) :
h ((h.symm) x) = x
@[simp]
theorem homeomorph.symm_apply_apply {α : Type u_1} {β : Type u_2} [topological_space α] [topological_space β] (h : α ≃ₜ β) (x : α) :
(h.symm) (h x) = x
@[protected]
theorem homeomorph.bijective {α : Type u_1} {β : Type u_2} [topological_space α] [topological_space β] (h : α ≃ₜ β) :
@[protected]
theorem homeomorph.injective {α : Type u_1} {β : Type u_2} [topological_space α] [topological_space β] (h : α ≃ₜ β) :
@[protected]
theorem homeomorph.surjective {α : Type u_1} {β : Type u_2} [topological_space α] [topological_space β] (h : α ≃ₜ β) :
def homeomorph.change_inv {α : Type u_1} {β : Type u_2} [topological_space α] [topological_space β] (f : α ≃ₜ β) (g : β → α) (hg : function.right_inverse g f) :
α ≃ₜ β

Change the homeomorphism f to make the inverse function definitionally equal to g.

Equations
@[simp]
theorem homeomorph.symm_comp_self {α : Type u_1} {β : Type u_2} [topological_space α] [topological_space β] (h : α ≃ₜ β) :
@[simp]
theorem homeomorph.self_comp_symm {α : Type u_1} {β : Type u_2} [topological_space α] [topological_space β] (h : α ≃ₜ β) :
@[simp]
theorem homeomorph.range_coe {α : Type u_1} {β : Type u_2} [topological_space α] [topological_space β] (h : α ≃ₜ β) :
theorem homeomorph.image_symm {α : Type u_1} {β : Type u_2} [topological_space α] [topological_space β] (h : α ≃ₜ β) :
theorem homeomorph.preimage_symm {α : Type u_1} {β : Type u_2} [topological_space α] [topological_space β] (h : α ≃ₜ β) :
@[simp]
theorem homeomorph.image_preimage {α : Type u_1} {β : Type u_2} [topological_space α] [topological_space β] (h : α ≃ₜ β) (s : set β) :
h '' (h ⁻¹' s) = s
@[simp]
theorem homeomorph.preimage_image {α : Type u_1} {β : Type u_2} [topological_space α] [topological_space β] (h : α ≃ₜ β) (s : set α) :
h ⁻¹' (h '' s) = s
@[protected]
theorem homeomorph.inducing {α : Type u_1} {β : Type u_2} [topological_space α] [topological_space β] (h : α ≃ₜ β) :
theorem homeomorph.induced_eq {α : Type u_1} {β : Type u_2} [topological_space α] [topological_space β] (h : α ≃ₜ β) :
@[protected]
theorem homeomorph.quotient_map {α : Type u_1} {β : Type u_2} [topological_space α] [topological_space β] (h : α ≃ₜ β) :
theorem homeomorph.coinduced_eq {α : Type u_1} {β : Type u_2} [topological_space α] [topological_space β] (h : α ≃ₜ β) :
@[protected]
theorem homeomorph.embedding {α : Type u_1} {β : Type u_2} [topological_space α] [topological_space β] (h : α ≃ₜ β) :
noncomputable def homeomorph.of_embedding {α : Type u_1} {β : Type u_2} [topological_space α] [topological_space β] (f : α → β) (hf : embedding f) :

Homeomorphism given an embedding.

Equations
theorem homeomorph.compact_image {α : Type u_1} {β : Type u_2} [topological_space α] [topological_space β] {s : set α} (h : α ≃ₜ β) :
theorem homeomorph.compact_preimage {α : Type u_1} {β : Type u_2} [topological_space α] [topological_space β] {s : set β} (h : α ≃ₜ β) :
@[protected]
theorem homeomorph.compact_space {α : Type u_1} {β : Type u_2} [topological_space α] [topological_space β] [compact_space α] (h : α ≃ₜ β) :
@[protected]
theorem homeomorph.t0_space {α : Type u_1} {β : Type u_2} [topological_space α] [topological_space β] [t0_space α] (h : α ≃ₜ β) :
@[protected]
theorem homeomorph.t1_space {α : Type u_1} {β : Type u_2} [topological_space α] [topological_space β] [t1_space α] (h : α ≃ₜ β) :
@[protected]
theorem homeomorph.t2_space {α : Type u_1} {β : Type u_2} [topological_space α] [topological_space β] [t2_space α] (h : α ≃ₜ β) :
@[protected]
theorem homeomorph.regular_space {α : Type u_1} {β : Type u_2} [topological_space α] [topological_space β] [regular_space α] (h : α ≃ₜ β) :
@[protected]
theorem homeomorph.dense_embedding {α : Type u_1} {β : Type u_2} [topological_space α] [topological_space β] (h : α ≃ₜ β) :
@[simp]
theorem homeomorph.is_open_preimage {α : Type u_1} {β : Type u_2} [topological_space α] [topological_space β] (h : α ≃ₜ β) {s : set β} :
@[simp]
theorem homeomorph.is_open_image {α : Type u_1} {β : Type u_2} [topological_space α] [topological_space β] (h : α ≃ₜ β) {s : set α} :
@[protected]
theorem homeomorph.is_open_map {α : Type u_1} {β : Type u_2} [topological_space α] [topological_space β] (h : α ≃ₜ β) :
@[simp]
theorem homeomorph.is_closed_preimage {α : Type u_1} {β : Type u_2} [topological_space α] [topological_space β] (h : α ≃ₜ β) {s : set β} :
@[simp]
theorem homeomorph.is_closed_image {α : Type u_1} {β : Type u_2} [topological_space α] [topological_space β] (h : α ≃ₜ β) {s : set α} :
@[protected]
theorem homeomorph.is_closed_map {α : Type u_1} {β : Type u_2} [topological_space α] [topological_space β] (h : α ≃ₜ β) :
@[protected]
theorem homeomorph.open_embedding {α : Type u_1} {β : Type u_2} [topological_space α] [topological_space β] (h : α ≃ₜ β) :
@[protected]
theorem homeomorph.closed_embedding {α : Type u_1} {β : Type u_2} [topological_space α] [topological_space β] (h : α ≃ₜ β) :
@[protected]
theorem homeomorph.normal_space {α : Type u_1} {β : Type u_2} [topological_space α] [topological_space β] [normal_space α] (h : α ≃ₜ β) :
theorem homeomorph.preimage_closure {α : Type u_1} {β : Type u_2} [topological_space α] [topological_space β] (h : α ≃ₜ β) (s : set β) :
theorem homeomorph.image_closure {α : Type u_1} {β : Type u_2} [topological_space α] [topological_space β] (h : α ≃ₜ β) (s : set α) :
theorem homeomorph.preimage_interior {α : Type u_1} {β : Type u_2} [topological_space α] [topological_space β] (h : α ≃ₜ β) (s : set β) :
theorem homeomorph.image_interior {α : Type u_1} {β : Type u_2} [topological_space α] [topological_space β] (h : α ≃ₜ β) (s : set α) :
theorem homeomorph.preimage_frontier {α : Type u_1} {β : Type u_2} [topological_space α] [topological_space β] (h : α ≃ₜ β) (s : set β) :
theorem has_compact_support.comp_homeomorph {α : Type u_1} {β : Type u_2} [topological_space α] [topological_space β] {M : Type u_3} [has_zero M] {f : β → M} (hf : has_compact_support f) (φ : α ≃ₜ β) :
theorem has_compact_mul_support.comp_homeomorph {α : Type u_1} {β : Type u_2} [topological_space α] [topological_space β] {M : Type u_3} [has_one M] {f : β → M} (hf : has_compact_mul_support f) (φ : α ≃ₜ β) :
@[simp]
theorem homeomorph.map_nhds_eq {α : Type u_1} {β : Type u_2} [topological_space α] [topological_space β] (h : α ≃ₜ β) (x : α) :
theorem homeomorph.symm_map_nhds_eq {α : Type u_1} {β : Type u_2} [topological_space α] [topological_space β] (h : α ≃ₜ β) (x : α) :
theorem homeomorph.nhds_eq_comap {α : Type u_1} {β : Type u_2} [topological_space α] [topological_space β] (h : α ≃ₜ β) (x : α) :
@[simp]
theorem homeomorph.comap_nhds_eq {α : Type u_1} {β : Type u_2} [topological_space α] [topological_space β] (h : α ≃ₜ β) (y : β) :
def homeomorph.homeomorph_of_continuous_open {α : Type u_1} {β : Type u_2} [topological_space α] [topological_space β] (e : α β) (h₁ : continuous e) (h₂ : is_open_map e) :
α ≃ₜ β

If an bijective map e : α ≃ β is continuous and open, then it is a homeomorphism.

Equations
@[simp]
theorem homeomorph.comp_continuous_on_iff {α : Type u_1} {β : Type u_2} {γ : Type u_3} [topological_space α] [topological_space β] [topological_space γ] (h : α ≃ₜ β) (f : γ → α) (s : set γ) :
@[simp]
theorem homeomorph.comp_continuous_iff {α : Type u_1} {β : Type u_2} {γ : Type u_3} [topological_space α] [topological_space β] [topological_space γ] (h : α ≃ₜ β) {f : γ → α} :
@[simp]
theorem homeomorph.comp_continuous_iff' {α : Type u_1} {β : Type u_2} {γ : Type u_3} [topological_space α] [topological_space β] [topological_space γ] (h : α ≃ₜ β) {f : β → γ} :
theorem homeomorph.comp_continuous_at_iff {α : Type u_1} {β : Type u_2} {γ : Type u_3} [topological_space α] [topological_space β] [topological_space γ] (h : α ≃ₜ β) (f : γ → α) (x : γ) :
theorem homeomorph.comp_continuous_at_iff' {α : Type u_1} {β : Type u_2} {γ : Type u_3} [topological_space α] [topological_space β] [topological_space γ] (h : α ≃ₜ β) (f : β → γ) (x : α) :
theorem homeomorph.comp_continuous_within_at_iff {α : Type u_1} {β : Type u_2} {γ : Type u_3} [topological_space α] [topological_space β] [topological_space γ] (h : α ≃ₜ β) (f : γ → α) (s : set γ) (x : γ) :
@[simp]
theorem homeomorph.comp_is_open_map_iff {α : Type u_1} {β : Type u_2} {γ : Type u_3} [topological_space α] [topological_space β] [topological_space γ] (h : α ≃ₜ β) {f : γ → α} :
@[simp]
theorem homeomorph.comp_is_open_map_iff' {α : Type u_1} {β : Type u_2} {γ : Type u_3} [topological_space α] [topological_space β] [topological_space γ] (h : α ≃ₜ β) {f : β → γ} :
def homeomorph.set_congr {α : Type u_1} [topological_space α] {s t : set α} (h : s = t) :

If two sets are equal, then they are homeomorphic.

Equations
def homeomorph.sum_congr {α : Type u_1} {β : Type u_2} {γ : Type u_3} {δ : Type u_4} [topological_space α] [topological_space β] [topological_space γ] [topological_space δ] (h₁ : α ≃ₜ β) (h₂ : γ ≃ₜ δ) :
α γ ≃ₜ β δ

Sum of two homeomorphisms.

Equations
def homeomorph.prod_congr {α : Type u_1} {β : Type u_2} {γ : Type u_3} {δ : Type u_4} [topological_space α] [topological_space β] [topological_space γ] [topological_space δ] (h₁ : α ≃ₜ β) (h₂ : γ ≃ₜ δ) :
α × γ ≃ₜ β × δ

Product of two homeomorphisms.

Equations
@[simp]
theorem homeomorph.prod_congr_symm {α : Type u_1} {β : Type u_2} {γ : Type u_3} {δ : Type u_4} [topological_space α] [topological_space β] [topological_space γ] [topological_space δ] (h₁ : α ≃ₜ β) (h₂ : γ ≃ₜ δ) :
(h₁.prod_congr h₂).symm = h₁.symm.prod_congr h₂.symm
@[simp]
theorem homeomorph.coe_prod_congr {α : Type u_1} {β : Type u_2} {γ : Type u_3} {δ : Type u_4} [topological_space α] [topological_space β] [topological_space γ] [topological_space δ] (h₁ : α ≃ₜ β) (h₂ : γ ≃ₜ δ) :
(h₁.prod_congr h₂) = prod.map h₁ h₂
def homeomorph.prod_comm (α : Type u_1) (β : Type u_2) [topological_space α] [topological_space β] :
α × β ≃ₜ β × α

α × β is homeomorphic to β × α.

Equations
@[simp]
theorem homeomorph.prod_comm_symm (α : Type u_1) (β : Type u_2) [topological_space α] [topological_space β] :
@[simp]
theorem homeomorph.coe_prod_comm (α : Type u_1) (β : Type u_2) [topological_space α] [topological_space β] :
def homeomorph.prod_assoc (α : Type u_1) (β : Type u_2) (γ : Type u_3) [topological_space α] [topological_space β] [topological_space γ] :
× β) × γ ≃ₜ α × β × γ

(α × β) × γ is homeomorphic to α × (β × γ).

Equations
def homeomorph.prod_punit (α : Type u_1) [topological_space α] :

α × {*} is homeomorphic to α.

Equations
def homeomorph.punit_prod (α : Type u_1) [topological_space α] :

{*} × α is homeomorphic to α.

Equations
def homeomorph.ulift {α : Type u} [topological_space α] :

ulift α is homeomorphic to α.

Equations
def homeomorph.sum_prod_distrib {α : Type u_1} {β : Type u_2} {γ : Type u_3} [topological_space α] [topological_space β] [topological_space γ] :
β) × γ ≃ₜ α × γ β × γ

(α ⊕ β) × γ is homeomorphic to α × γ ⊕ β × γ.

Equations
def homeomorph.prod_sum_distrib {α : Type u_1} {β : Type u_2} {γ : Type u_3} [topological_space α] [topological_space β] [topological_space γ] :
α × γ) ≃ₜ α × β α × γ

α × (β ⊕ γ) is homeomorphic to α × β ⊕ α × γ.

Equations
def homeomorph.sigma_prod_distrib {β : Type u_2} [topological_space β] {ι : Type u_5} {σ : ι → Type u_6} [Π (i : ι), topological_space (σ i)] :
(Σ (i : ι), σ i) × β ≃ₜ Σ (i : ι), σ i × β

(Σ i, σ i) × β is homeomorphic to Σ i, (σ i × β).

Equations
def homeomorph.fun_unique (ι : Type u_1) (α : Type u_2) [unique ι] [topological_space α] :
(ι → α) ≃ₜ α

If ι has a unique element, then ι → α is homeomorphic to α.

Equations
@[simp]
theorem homeomorph.fun_unique_apply (ι : Type u_1) (α : Type u_2) [unique ι] [topological_space α] :
@[simp]
theorem homeomorph.fun_unique_symm_apply (ι : Type u_1) (α : Type u_2) [unique ι] [topological_space α] :
((homeomorph.fun_unique ι α).symm) = λ (x : α) (b : ι), x
@[simp]
theorem homeomorph.pi_fin_two_symm_apply (α : fin 2Type u) [Π (i : fin 2), topological_space (α i)] :
def homeomorph.pi_fin_two (α : fin 2Type u) [Π (i : fin 2), topological_space (α i)] :
(Π (i : fin 2), α i) ≃ₜ α 0 × α 1

Homeomorphism between dependent functions Π i : fin 2, α i and α 0 × α 1.

Equations
@[simp]
theorem homeomorph.pi_fin_two_apply (α : fin 2Type u) [Π (i : fin 2), topological_space (α i)] :
(homeomorph.pi_fin_two α) = λ (f : Π (i : fin 2), α i), (f 0, f 1)
@[simp]
theorem homeomorph.fin_two_arrow_apply {α : Type u_1} [topological_space α] :
homeomorph.fin_two_arrow = λ (f : fin 2 → α), (f 0, f 1)
@[simp]
theorem homeomorph.fin_two_arrow_symm_apply {α : Type u_1} [topological_space α] :
(homeomorph.fin_two_arrow.symm) = λ (x : α × α), ![x.fst, x.snd]
def homeomorph.fin_two_arrow {α : Type u_1} [topological_space α] :
(fin 2 → α) ≃ₜ α × α

Homeomorphism between α² = fin 2 → α and α × α.

Equations
def homeomorph.image {α : Type u_1} {β : Type u_2} [topological_space α] [topological_space β] (e : α ≃ₜ β) (s : set α) :

A subset of a topological space is homeomorphic to its image under a homeomorphism.

Equations
@[simp]
theorem equiv.to_homeomorph_of_inducing_symm_apply {α : Type u_1} {β : Type u_2} [topological_space α] [topological_space β] (f : α β) (hf : inducing f) (ᾰ : β) :
@[simp]
theorem equiv.to_homeomorph_of_inducing_apply {α : Type u_1} {β : Type u_2} [topological_space α] [topological_space β] (f : α β) (hf : inducing f) (ᾰ : α) :
def equiv.to_homeomorph_of_inducing {α : Type u_1} {β : Type u_2} [topological_space α] [topological_space β] (f : α β) (hf : inducing f) :
α ≃ₜ β

An inducing equiv between topological spaces is a homeomorphism.

Equations
theorem continuous.continuous_symm_of_equiv_compact_to_t2 {α : Type u_1} {β : Type u_2} [topological_space α] [topological_space β] [compact_space α] [t2_space β] {f : α β} (hf : continuous f) :
def continuous.homeo_of_equiv_compact_to_t2 {α : Type u_1} {β : Type u_2} [topological_space α] [topological_space β] [compact_space α] [t2_space β] {f : α β} (hf : continuous f) :
α ≃ₜ β

Continuous equivalences from a compact space to a T2 space are homeomorphisms.

This is not true when T2 is weakened to T1 (see continuous.homeo_of_equiv_compact_to_t2.t1_counterexample).

Equations
@[simp]
theorem continuous.homeo_of_equiv_compact_to_t2_apply {α : Type u_1} {β : Type u_2} [topological_space α] [topological_space β] [compact_space α] [t2_space β] {f : α β} (hf : continuous f) (ᾰ : α) :
@[simp]
theorem continuous.homeo_of_equiv_compact_to_t2_symm_apply {α : Type u_1} {β : Type u_2} [topological_space α] [topological_space β] [compact_space α] [t2_space β] {f : α β} (hf : continuous f) (ᾰ : β) :