|
| 1 | +/- |
| 2 | +Copyright (c) 2025 Bjørn Kjos-Hanssen. All rights reserved. |
| 3 | +Released under Apache 2.0 license as described in the file LICENSE. |
| 4 | +Authors: Bjørn Kjos-Hanssen, Oliver Nash |
| 5 | +-/ |
| 6 | +import Mathlib.Topology.Compactification.OnePoint.Basic |
| 7 | +import Mathlib.Geometry.Manifold.Instances.Sphere |
| 8 | + |
| 9 | +/-! |
| 10 | +
|
| 11 | +# One-point compactification of Euclidean space is homeomorphic to the sphere. |
| 12 | +
|
| 13 | +-/ |
| 14 | + |
| 15 | +open Function Metric Module Set Submodule |
| 16 | + |
| 17 | +noncomputable section |
| 18 | + |
| 19 | +/-- A homeomorphism from the one-point compactification of a hyperplane in Euclidean space to the |
| 20 | +sphere. -/ |
| 21 | +def onePointHyperplaneHomeoUnitSphere |
| 22 | + {E : Type*} [NormedAddCommGroup E] [InnerProductSpace ℝ E] [FiniteDimensional ℝ E] |
| 23 | + {v : E} (hv : ‖v‖ = 1) : |
| 24 | + OnePoint (ℝ ∙ v)ᗮ ≃ₜ sphere (0 : E) 1 := |
| 25 | + OnePoint.equivOfIsEmbeddingOfRangeEq _ _ |
| 26 | + (isOpenEmbedding_stereographic_symm hv).toIsEmbedding (range_stereographic_symm hv) |
| 27 | + |
| 28 | +/-- A homeomorphism from the one-point compactification of a finite-dimensional real vector space to |
| 29 | +the sphere. -/ |
| 30 | +def onePointEquivSphereOfFinrankEq {ι V : Type*} [Fintype ι] |
| 31 | + [AddCommGroup V] [Module ℝ V] [FiniteDimensional ℝ V] |
| 32 | + [TopologicalSpace V] [IsTopologicalAddGroup V] [ContinuousSMul ℝ V] [T2Space V] |
| 33 | + (h : finrank ℝ V + 1 = Fintype.card ι) : |
| 34 | + OnePoint V ≃ₜ sphere (0 : EuclideanSpace ℝ ι) 1 := by |
| 35 | + classical |
| 36 | + have : Nonempty ι := Fintype.card_pos_iff.mp <| by omega |
| 37 | + let v : EuclideanSpace ℝ ι := .single (Classical.arbitrary ι) 1 |
| 38 | + have hv : ‖v‖ = 1 := by simp [v] |
| 39 | + have hv₀ : v ≠ 0 := fun contra ↦ by simp [contra] at hv |
| 40 | + have : Fact (finrank ℝ (EuclideanSpace ℝ ι) = finrank ℝ V + 1) := ⟨by simp [h]⟩ |
| 41 | + have hV : finrank ℝ V = finrank ℝ (ℝ ∙ v)ᗮ := (finrank_orthogonal_span_singleton hv₀).symm |
| 42 | + letI e : V ≃ₜ (ℝ ∙ v)ᗮ := (FiniteDimensional.nonempty_continuousLinearEquiv_of_finrank_eq hV).some |
| 43 | + exact e.onePointCongr.trans <| onePointHyperplaneHomeoUnitSphere hv |
0 commit comments