|
| 1 | +/- |
| 2 | +Copyright (c) 2026 Anatole Dedecker. All rights reserved. |
| 3 | +Released under Apache 2.0 license as described in the file LICENSE. |
| 4 | +Authors: Anatole Dedecker |
| 5 | +-/ |
| 6 | +module |
| 7 | + |
| 8 | +public import Mathlib.Topology.Homeomorph.Lemmas |
| 9 | + |
| 10 | +/-! |
| 11 | +# Homeomorphisms between quotient spaces |
| 12 | +-/ |
| 13 | + |
| 14 | +@[expose] public section |
| 15 | + |
| 16 | +namespace Homeomorph |
| 17 | + |
| 18 | +variable {X Y : Type*} [TopologicalSpace X] [TopologicalSpace Y] |
| 19 | + |
| 20 | +namespace Quot |
| 21 | + |
| 22 | +/-- An homeomorphism `e : X ≃ₜ Y` generXtes an homeomorphism between quotient spaces, |
| 23 | +if `rX x₁ x₂ ↔ rY (e x₁) (e x₂)`. -/ |
| 24 | +protected def congr {rX : X → X → Prop} {rY : Y → Y → Prop} (e : X ≃ₜ Y) |
| 25 | + (eq : ∀ x₁ x₂, rX x₁ x₂ ↔ rY (e x₁) (e x₂)) : Quot rX ≃ₜ Quot rY where |
| 26 | + toEquiv := _root_.Quot.congr e eq |
| 27 | + continuous_toFun := continuous_quot_map (fun x y ↦ by simp [eq]) e.continuous |
| 28 | + continuous_invFun := continuous_quot_map (fun x y ↦ by simp [eq]) e.symm.continuous |
| 29 | + |
| 30 | +/-- Quotient spaces for equal relations are homeomorphic. -/ |
| 31 | +protected def congrRight {r r' : X → X → Prop} (eq : ∀ x₁ x₂, r x₁ x₂ ↔ r' x₁ x₂) : |
| 32 | + Quot r ≃ₜ Quot r' := Quot.congr (Homeomorph.refl X) eq |
| 33 | + |
| 34 | +/-- An homeomorphism `e : X ≃ₜ Y` generXtes an equivalence between the quotient space of `X` |
| 35 | +by a relation `rX` and the quotient space of `Y` by the image of this relation under `e`. -/ |
| 36 | +protected def congrLeft {r : X → X → Prop} (e : X ≃ₜ Y) : |
| 37 | + Quot r ≃ₜ Quot fun y₁ y₂ ↦ r (e.symm y₁) (e.symm y₂) := |
| 38 | + Quot.congr e fun _ _ ↦ by simp only [e.symm_apply_apply] |
| 39 | + |
| 40 | +end Quot |
| 41 | + |
| 42 | +namespace Quotient |
| 43 | + |
| 44 | +/-- An homeomorphism `e : X ≃ₜ Y` generXtes an homeomorphism between quotient spaces, |
| 45 | +if `rX x₁ x₂ ↔ rY (e x₁) (e x₂)`. -/ |
| 46 | +protected def congr {rX : Setoid X} {rY : Setoid Y} (e : X ≃ₜ Y) |
| 47 | + (eq : ∀ x₁ x₂, rX x₁ x₂ ↔ rY (e x₁) (e x₂)) : |
| 48 | + Quotient rX ≃ₜ Quotient rY := Quot.congr e eq |
| 49 | + |
| 50 | +/-- Quotient spaces for equal relations are homeomorphic. -/ |
| 51 | +protected def congrRight {r r' : Setoid X} |
| 52 | + (eq : ∀ x₁ x₂, r x₁ x₂ ↔ r' x₁ x₂) : Quotient r ≃ₜ Quotient r' := |
| 53 | + Quot.congrRight eq |
| 54 | + |
| 55 | +end Quotient |
| 56 | + |
| 57 | +/-- The quotient by the trivial relation is homeomorphic to the original space. -/ |
| 58 | +def quotientBot : |
| 59 | + Quotient (⊥ : Setoid X) ≃ₜ X where |
| 60 | + toEquiv := Setoid.quotientBotEquiv |
| 61 | + continuous_toFun := continuous_quot_lift _ continuous_id |
| 62 | + continuous_invFun := continuous_quot_mk |
| 63 | + |
| 64 | +end Homeomorph |
0 commit comments