Homeomorphisms #
This file defines homeomorphisms between two topological spaces. They are bijections with both
directions continuous. We denote homeomorphisms with the notation ≃ₜ.
Main definitions #
Homeomorph X Y: The type of homeomorphisms fromXtoY. This type can be denoted using the following notation:X ≃ₜ Y.
Main results #
- Pretty much every topological property is preserved under homeomorphisms.
Homeomorph.homeomorphOfContinuousOpen: A continuous bijection that is an open map is a homeomorphism.
Homeomorphism between X and Y, also called topological isomorphism
- toFun : X → Y
- invFun : Y → X
- left_inv : Function.LeftInverse self.invFun self.toFun
- right_inv : Function.RightInverse self.invFun self.toFun
- continuous_toFun : Continuous self.toFun
The forward map of a homeomorphism is a continuous function.
- continuous_invFun : Continuous self.invFun
The inverse map of a homeomorphism is a continuous function.
Instances For
The forward map of a homeomorphism is a continuous function.
The inverse map of a homeomorphism is a continuous function.
Homeomorphism between X and Y, also called topological isomorphism
Equations
- «term_≃ₜ_» = Lean.ParserDescr.trailingNode `term_≃ₜ_ 25 25 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol " ≃ₜ ") (Lean.ParserDescr.cat `term 26))
Instances For
Equations
- Homeomorph.instCoeFunForall = { coe := DFunLike.coe }
The unique homeomorphism between two empty types.
Equations
- Homeomorph.empty = let __spread.0 := Equiv.equivOfIsEmpty X Y; { toEquiv := __spread.0, continuous_toFun := ⋯, continuous_invFun := ⋯ }
Instances For
Inverse of a homeomorphism.
Equations
- h.symm = { toEquiv := h.symm, continuous_toFun := ⋯, continuous_invFun := ⋯ }
Instances For
See Note [custom simps projection]
Equations
- Homeomorph.Simps.symm_apply h = ⇑h.symm
Instances For
Identity map as a homeomorphism.
Equations
- Homeomorph.refl X = { toEquiv := Equiv.refl X, continuous_toFun := ⋯, continuous_invFun := ⋯ }
Instances For
Composition of two homeomorphisms.
Equations
- h₁.trans h₂ = { toEquiv := h₁.trans h₂.toEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }
Instances For
Change the homeomorphism f to make the inverse function definitionally equal to g.
Equations
- f.changeInv g hg = { toFun := ⇑f, invFun := g, left_inv := ⋯, right_inv := ⋯, continuous_toFun := ⋯, continuous_invFun := ⋯ }
Instances For
Homeomorphism given an embedding.
Equations
- Homeomorph.ofEmbedding f hf = { toEquiv := Equiv.ofInjective f ⋯, continuous_toFun := ⋯, continuous_invFun := ⋯ }
Instances For
If h : X → Y is a homeomorphism, h(s) is compact iff s is.
If h : X → Y is a homeomorphism, h⁻¹(s) is compact iff s is.
If h : X → Y is a homeomorphism, s is σ-compact iff h(s) is.
If h : X → Y is a homeomorphism, h⁻¹(s) is σ-compact iff s is.
If the codomain of a homeomorphism is a locally connected space, then the domain is also a locally connected space.
The codomain of a homeomorphism is a locally compact space if and only if the domain is a locally compact space.
If a bijective map e : X ≃ Y is continuous and open, then it is a homeomorphism.
Equations
- Homeomorph.homeomorphOfContinuousOpen e h₁ h₂ = { toEquiv := e, continuous_toFun := h₁, continuous_invFun := ⋯ }
Instances For
A homeomorphism h : X ≃ₜ Y lifts to a homeomorphism between subtypes corresponding to
predicates p : X → Prop and q : Y → Prop so long as p = q ∘ h.
Equations
- h.subtype h_iff = let __spread.0 := h.subtypeEquiv h_iff; { toEquiv := __spread.0, continuous_toFun := ⋯, continuous_invFun := ⋯ }
Instances For
A homeomorphism h : X ≃ₜ Y lifts to a homeomorphism between sets s : Set X and t : Set Y
whenever h maps s onto t.
Equations
- h.sets h_eq = h.subtype ⋯
Instances For
If two sets are equal, then they are homeomorphic.
Equations
- Homeomorph.setCongr h = { toEquiv := Equiv.setCongr h, continuous_toFun := ⋯, continuous_invFun := ⋯ }
Instances For
Sum of two homeomorphisms.
Equations
- h₁.sumCongr h₂ = { toEquiv := h₁.sumCongr h₂.toEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }
Instances For
Product of two homeomorphisms.
Equations
- h₁.prodCongr h₂ = { toEquiv := h₁.prodCongr h₂.toEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }
Instances For
X × Y is homeomorphic to Y × X.
Equations
- Homeomorph.prodComm X Y = { toEquiv := Equiv.prodComm X Y, continuous_toFun := ⋯, continuous_invFun := ⋯ }
Instances For
(X × Y) × Z is homeomorphic to X × (Y × Z).
Equations
- Homeomorph.prodAssoc X Y Z = { toEquiv := Equiv.prodAssoc X Y Z, continuous_toFun := ⋯, continuous_invFun := ⋯ }
Instances For
X × {*} is homeomorphic to X.
Equations
- Homeomorph.prodPUnit X = { toEquiv := Equiv.prodPUnit X, continuous_toFun := ⋯, continuous_invFun := ⋯ }
Instances For
{*} × X is homeomorphic to X.
Equations
- Homeomorph.punitProd X = (Homeomorph.prodComm PUnit.{u_6 + 1} X).trans (Homeomorph.prodPUnit X)
Instances For
If both X and Y have a unique element, then X ≃ₜ Y.
Equations
- Homeomorph.homeomorphOfUnique X Y = let __src := Equiv.equivOfUnique X Y; { toEquiv := __src, continuous_toFun := ⋯, continuous_invFun := ⋯ }
Instances For
Equiv.piCongrLeft as a homeomorphism: this is the natural homeomorphism
Π i, Y (e i) ≃ₜ Π j, Y j obtained from a bijection ι ≃ ι'.
Equations
- Homeomorph.piCongrLeft e = { toEquiv := Equiv.piCongrLeft Y e, continuous_toFun := ⋯, continuous_invFun := ⋯ }
Instances For
Equiv.piCongrRight as a homeomorphism: this is the natural homeomorphism
Π i, Y₁ i ≃ₜ Π j, Y₂ i obtained from homeomorphisms Y₁ i ≃ₜ Y₂ i for each i.
Equations
- Homeomorph.piCongrRight F = { toEquiv := Equiv.piCongrRight fun (i : ι) => (F i).toEquiv, continuous_toFun := ⋯, continuous_invFun := ⋯ }
Instances For
Equiv.piCongr as a homeomorphism: this is the natural homeomorphism
Π i₁, Y₁ i ≃ₜ Π i₂, Y₂ i₂ obtained from a bijection ι₁ ≃ ι₂ and homeomorphisms
Y₁ i₁ ≃ₜ Y₂ (e i₁) for each i₁ : ι₁.
Equations
- Homeomorph.piCongr e F = (Homeomorph.piCongrRight F).trans (Homeomorph.piCongrLeft e)
Instances For
(X ⊕ Y) × Z is homeomorphic to X × Z ⊕ Y × Z.
Equations
- Homeomorph.sumProdDistrib = (Homeomorph.homeomorphOfContinuousOpen (Equiv.sumProdDistrib X Y Z).symm ⋯ ⋯).symm
Instances For
X × (Y ⊕ Z) is homeomorphic to X × Y ⊕ X × Z.
Equations
- Homeomorph.prodSumDistrib = (Homeomorph.prodComm X (Y ⊕ Z)).trans (Homeomorph.sumProdDistrib.trans ((Homeomorph.prodComm Y X).sumCongr (Homeomorph.prodComm Z X)))
Instances For
(Σ i, X i) × Y is homeomorphic to Σ i, (X i × Y).
Equations
- Homeomorph.sigmaProdDistrib = (Homeomorph.homeomorphOfContinuousOpen (Equiv.sigmaProdDistrib X Y).symm ⋯ ⋯).symm
Instances For
If ι has a unique element, then ι → X is homeomorphic to X.
Equations
- Homeomorph.funUnique ι X = { toEquiv := Equiv.funUnique ι X, continuous_toFun := ⋯, continuous_invFun := ⋯ }
Instances For
Homeomorphism between dependent functions Π i : Fin 2, X i and X 0 × X 1.
Equations
- Homeomorph.piFinTwo X = { toEquiv := piFinTwoEquiv X, continuous_toFun := ⋯, continuous_invFun := ⋯ }
Instances For
Homeomorphism between X² = Fin 2 → X and X × X.
Equations
- Homeomorph.finTwoArrow = let __src := Homeomorph.piFinTwo fun (x : Fin 2) => X; { toEquiv := finTwoArrowEquiv X, continuous_toFun := ⋯, continuous_invFun := ⋯ }
Instances For
A subset of a topological space is homeomorphic to its image under a homeomorphism.
Equations
- e.image s = { toEquiv := e.image s, continuous_toFun := ⋯, continuous_invFun := ⋯ }
Instances For
Set.univ X is homeomorphic to X.
Equations
- Homeomorph.Set.univ X = { toEquiv := Equiv.Set.univ X, continuous_toFun := ⋯, continuous_invFun := ⋯ }
Instances For
s ×ˢ t is homeomorphic to s × t.
Equations
- Homeomorph.Set.prod s t = { toEquiv := Equiv.Set.prod s t, continuous_toFun := ⋯, continuous_invFun := ⋯ }
Instances For
The topological space Π i, Y i can be split as a product by separating the indices in ι
depending on whether they satisfy a predicate p or not.
Equations
- Homeomorph.piEquivPiSubtypeProd p Y = { toEquiv := Equiv.piEquivPiSubtypeProd p Y, continuous_toFun := ⋯, continuous_invFun := ⋯ }
Instances For
A product of topological spaces can be split as the binary product of one of the spaces and the product of all the remaining spaces.
Equations
- Homeomorph.piSplitAt i Y = { toEquiv := Equiv.piSplitAt i Y, continuous_toFun := ⋯, continuous_invFun := ⋯ }
Instances For
A product of copies of a topological space can be split as the binary product of one copy and the product of all the remaining copies.
Equations
- Homeomorph.funSplitAt Y i = Homeomorph.piSplitAt i fun (a : ι) => Y
Instances For
An equiv between topological spaces respecting openness is a homeomorphism.
Equations
- e.toHomeomorph he = { toEquiv := e, continuous_toFun := ⋯, continuous_invFun := ⋯ }
Instances For
An inducing equiv between topological spaces is a homeomorphism.
Equations
- f.toHomeomorphOfInducing hf = { toEquiv := f, continuous_toFun := ⋯, continuous_invFun := ⋯ }
Instances For
Continuous equivalences from a compact space to a T2 space are homeomorphisms.
This is not true when T2 is weakened to T1
(see Continuous.homeoOfEquivCompactToT2.t1_counterexample).
Equations
- hf.homeoOfEquivCompactToT2 = { toEquiv := f, continuous_toFun := hf, continuous_invFun := ⋯ }