@@ -524,6 +524,12 @@ theorem contMDiff_neg_sphere {n : ℕ} [Fact (finrank ℝ E = n + 1)] :
524524 exact contMDiff_coe_sphere
525525#align cont_mdiff_neg_sphere contMDiff_neg_sphere
526526
527+ private lemma stereographic'_neg {n : ℕ} [Fact (finrank ℝ E = n + 1 )] (v : sphere (0 : E) 1 ) :
528+ stereographic' n (-v) v = 0 := by
529+ dsimp [stereographic']
530+ simp only [AddEquivClass.map_eq_zero_iff]
531+ apply stereographic_neg_apply
532+
527533/-- Consider the differential of the inclusion of the sphere in `E` at the point `v` as a continuous
528534linear map from `TangentSpace (𝓡 n) v` to `E`. The range of this map is the orthogonal complement
529535of `v` in `E`.
@@ -547,10 +553,7 @@ theorem range_mfderiv_coe_sphere {n : ℕ} [Fact (finrank ℝ E = n + 1)] (v : s
547553 suffices
548554 LinearMap.range (fderiv ℝ ((stereoInvFunAux (-v : E) ∘ (↑)) ∘ U.symm) 0 ) = (ℝ ∙ (v : E))ᗮ by
549555 convert this using 3 -- sloooow, 800ms
550- show stereographic' n (-v) v = 0
551- dsimp [stereographic']
552- simp only [AddEquivClass.map_eq_zero_iff]
553- apply stereographic_neg_apply
556+ apply stereographic'_neg
554557 have :
555558 HasFDerivAt (stereoInvFunAux (-v : E) ∘ (Subtype.val : (ℝ ∙ (↑(-v) : E))ᗮ → E))
556559 (ℝ ∙ (↑(-v) : E))ᗮ.subtypeL (U.symm 0 ) := by
@@ -585,11 +588,8 @@ theorem mfderiv_coe_sphere_injective {n : ℕ} [Fact (finrank ℝ E = n + 1)] (v
585588 let U := (OrthonormalBasis.fromOrthogonalSpanSingleton
586589 (𝕜 := ℝ) n (ne_zero_of_mem_unit_sphere (-v))).repr
587590 suffices Injective (fderiv ℝ ((stereoInvFunAux (-v : E) ∘ (↑)) ∘ U.symm) 0 ) by
588- have h : stereographic' n (-v) v = 0 := by
589- dsimp [stereographic']
590- simp only [AddEquivClass.map_eq_zero_iff]
591- apply stereographic_neg_apply
592591 convert this using 3 -- slow, takes 380ms
592+ apply stereographic'_neg
593593 have : HasFDerivAt (stereoInvFunAux (-v : E) ∘ (Subtype.val : (ℝ ∙ (↑(-v) : E))ᗮ → E))
594594 (ℝ ∙ (↑(-v) : E))ᗮ.subtypeL (U.symm 0 ) := by
595595 simp only [coe_neg_sphere, map_zero]
0 commit comments