@@ -58,34 +58,6 @@ variable {M : Type*} [TopologicalSpace M] [ChartedSpace H M]
5858 {n : WithTop ℕ∞} [IsManifold I n M] [IsManifold I' n M']
5959variable {f : M → M'} {x : M} {n : WithTop ℕ∞}
6060
61- -- TODO: move to the right place!
62- /-- If `f : E → F` has injective differential at `x`, it is differentiable at `x`. -/
63- lemma differentiableAt_of_fderiv_injective {f : E → F} {x : E} (hf : Injective (fderiv 𝕜 f x)) :
64- DifferentiableAt 𝕜 f x := by
65- replace hf : LinearMap.ker (fderiv 𝕜 f x).toLinearMap = ⊥ := by
66- rw [LinearMap.ker_eq_bot]; exact hf
67- by_cases h: Subsingleton E
68- · exact differentiable_of_subsingleton.differentiableAt
69- · by_contra h'
70- have : (⊥ : Submodule 𝕜 E) = ⊤ := by
71- simp [fderiv_zero_of_not_differentiableAt h', ← hf]
72- have : Subsingleton (Submodule 𝕜 E) := subsingleton_of_bot_eq_top this
73- simp_all only [Submodule.subsingleton_iff]
74-
75- -- TODO: move to e.g. ContMDiff.Basic
76- /-- If `f : M → M'` has injective differential at `x`, it is `MDifferentiable` at `x`. -/
77- lemma mdifferentiableAt_of_mfderiv_injective {f : M → M'} (hf : Injective (mfderiv I I' f x)) :
78- MDifferentiableAt I I' f x := by
79- replace hf : LinearMap.ker (mfderiv I I' f x).toLinearMap = ⊥ := by
80- rw [LinearMap.ker_eq_bot]; exact hf
81- by_cases h: Subsingleton E
82- · exact mdifferentiable_of_subsingleton.mdifferentiableAt
83- · by_contra h'
84- have : (⊥ : Submodule 𝕜 (TangentSpace I x)) = ⊤ := by
85- simp [mfderiv_zero_of_not_mdifferentiableAt h', ← hf]
86- have : Subsingleton (Submodule 𝕜 E) := subsingleton_of_bot_eq_top this
87- simp_all only [Submodule.subsingleton_iff]
88-
8961variable (I I' f x) in
9062/-- We say a map `f : M → M` splits at `x` if `mfderiv I I' f x` splits,
9163i.e. has a continuous left inverse. -/
0 commit comments