MATHLIBANNEX / EXACT SOURCE v0.4.0
MathlibAnnex.IsometryEquiv.existsUnique_affineExtension_ball
theorem existsUnique_affineExtension_ball
{c : E} {d : F} {r R : ℝ} (f : ball c r ≃ᵢ ball d R)
(hr : 0 < r) (hR : 0 < R) :
∃! A : E ≃ᵃⁱ[ℝ] F,
∀ x : ball c r, A (x : E) = ((f x : ball d R) : F)1 import MathlibAnnex.Analysis.Normed.Affine.IsometryExtension.Convex 2 import Mathlib.Analysis.Normed.Module.Connected 3 import Mathlib.Analysis.Normed.Module.RCLike.Real 4 5 /-! 6 # Ball extension corollaries 7 8 The closed-ball theorem first transports the center using the bounded 9 point-reflection theorem, then applies the convex ambient-interior corollary. 10 -/ 11 12 open Metric Set AffineIsometryEquiv Bornology 13 14 namespace MathlibAnnex 15 16 noncomputable section 17 18 variable {E F : Type*} 19 [NormedAddCommGroup E] [NormedSpace ℝ E] 20 [NormedAddCommGroup F] [NormedSpace ℝ F] 21 22 namespace IsometryEquiv 23 24 /-- A surjective isometry between positive-radius open balls extends to a 25 unique ambient real affine isometry equivalence. -/ 26 theorem existsUnique_affineExtension_ball 27 {c : E} {d : F} {r R : ℝ} (f : ball c r ≃ᵢ ball d R) 28 (hr : 0 < r) (hR : 0 < R) : 29 ∃! A : E ≃ᵃⁱ[ℝ] F, 30 ∀ x : ball c r, A (x : E) = ((f x : ball d R) : F) := by 31 have _htc : IsConnected (ball d R) := isConnected_ball hR 32 exact MathlibAnnex.IsometryEquiv.existsUnique_affineExtension 33 f isOpen_ball (isConnected_ball hr) isOpen_ball 34 35 private theorem mapsTo_pointReflection_closedBall (c : E) (r : ℝ) : 36 MapsTo (pointReflection ℝ c) (closedBall c r) (closedBall c r) := by 37 intro x hx 38 rw [mem_closedBall, dist_pointReflection_fixed] 39 exact hx 40 41 /-- A surjective isometry between closed balls of the same positive radius 42 extends to a unique ambient real affine isometry equivalence. -/ 43 theorem existsUnique_affineExtension_closedBall 44 {c : E} {d : F} {r : ℝ} (f : closedBall c r ≃ᵢ closedBall d r) 45 (hr : 0 < r) : 46 ∃! A : E ≃ᵃⁱ[ℝ] F, 47 ∀ x : closedBall c r, 48 A (x : E) = ((f x : closedBall d r) : F) := by 49 let cc : closedBall c r := ⟨c, mem_closedBall_self hr.le⟩ 50 let dd : closedBall d r := ⟨d, mem_closedBall_self hr.le⟩ 51 have hcenter : f cc = dd := 52 MathlibAnnex.IsometryEquiv.map_center_of_mapsTo_pointReflection 53 f cc.property dd.property isBounded_closedBall 54 (mapsTo_pointReflection_closedBall c r) 55 (mapsTo_pointReflection_closedBall d r) 56 have hcenter_val : ((f cc : closedBall d r) : F) = d := 57 congrArg Subtype.val hcenter 58 have hfi : ∀ x : closedBall c r, 59 (x : E) ∈ interior (closedBall c r) ↔ 60 ((f x : closedBall d r) : F) ∈ interior (closedBall d r) := by 61 intro x 62 rw [interior_closedBall c hr.ne', interior_closedBall d hr.ne', 63 mem_ball, mem_ball] 64 have hdist : dist ((f x : closedBall d r) : F) d = dist (x : E) c := by 65 calc 66 dist ((f x : closedBall d r) : F) d = 67 dist ((f x : closedBall d r) : F) 68 ((f cc : closedBall d r) : F) := by rw [hcenter_val] 69 _ = dist (f x) (f cc) := rfl 70 _ = dist x cc := f.dist_eq x cc 71 _ = dist (x : E) c := rfl 72 rw [hdist] 73 have hsint : (interior (closedBall c r)).Nonempty := by 74 rw [interior_closedBall c hr.ne'] 75 exact nonempty_ball.mpr hr 76 exact 77 MathlibAnnex.IsometryEquiv.existsUnique_affineExtension_of_convex 78 f (convex_closedBall c r) hsint hfi 79 80 end IsometryEquiv 81 82 end 83 84 end MathlibAnnex