@@ -128,6 +128,84 @@ theorem mdifferentiableWithinAt_zeroSection {t : Set B} {x : B} :
128128
129129end Bundle
130130
131+ section coordChange
132+
133+ variable [(x : B) → AddCommMonoid (E x)] [(x : B) → Module 𝕜 (E x)]
134+ variable (e e' : Trivialization F (π F E)) [MemTrivializationAtlas e] [MemTrivializationAtlas e']
135+ [VectorBundle 𝕜 F E] [ContMDiffVectorBundle 1 F E IB]
136+ variable {IB}
137+
138+ theorem mdifferentiableOn_coordChangeL :
139+ MDifferentiableOn IB 𝓘(𝕜, F →L[𝕜] F) (fun b : B ↦ (e.coordChangeL 𝕜 e' b : F →L[𝕜] F))
140+ (e.baseSet ∩ e'.baseSet) :=
141+ (contMDiffOn_coordChangeL e e').mdifferentiableOn le_rfl
142+
143+ theorem mdifferentiableOn_symm_coordChangeL :
144+ MDifferentiableOn IB 𝓘(𝕜, F →L[𝕜] F) (fun b : B ↦ ((e.coordChangeL 𝕜 e' b).symm : F →L[𝕜] F))
145+ (e.baseSet ∩ e'.baseSet) :=
146+ (contMDiffOn_symm_coordChangeL e e').mdifferentiableOn le_rfl
147+
148+ variable {e e'}
149+
150+ theorem mdifferentiableAt_coordChangeL {x : B}
151+ (h : x ∈ e.baseSet) (h' : x ∈ e'.baseSet) :
152+ MDifferentiableAt IB 𝓘(𝕜, F →L[𝕜] F) (fun b : B ↦ (e.coordChangeL 𝕜 e' b : F →L[𝕜] F)) x :=
153+ (contMDiffAt_coordChangeL h h').mdifferentiableAt le_rfl
154+
155+ variable {s : Set M} {f : M → B} {g : M → F} {x : M}
156+
157+ protected theorem MDifferentiableWithinAt.coordChangeL (hf : MDifferentiableWithinAt IM IB f s x)
158+ (he : f x ∈ e.baseSet) (he' : f x ∈ e'.baseSet) :
159+ MDifferentiableWithinAt IM 𝓘(𝕜, F →L[𝕜] F)
160+ (fun y ↦ (e.coordChangeL 𝕜 e' (f y) : F →L[𝕜] F)) s x :=
161+ (mdifferentiableAt_coordChangeL he he').comp_mdifferentiableWithinAt _ hf
162+
163+ protected theorem MDifferentiableAt.coordChangeL
164+ (hf : MDifferentiableAt IM IB f x) (he : f x ∈ e.baseSet) (he' : f x ∈ e'.baseSet) :
165+ MDifferentiableAt IM 𝓘(𝕜, F →L[𝕜] F) (fun y ↦ (e.coordChangeL 𝕜 e' (f y) : F →L[𝕜] F)) x :=
166+ MDifferentiableWithinAt.coordChangeL hf he he'
167+
168+ protected theorem MDifferentiableOn.coordChangeL
169+ (hf : MDifferentiableOn IM IB f s) (he : MapsTo f s e.baseSet) (he' : MapsTo f s e'.baseSet) :
170+ MDifferentiableOn IM 𝓘(𝕜, F →L[𝕜] F) (fun y ↦ (e.coordChangeL 𝕜 e' (f y) : F →L[𝕜] F)) s :=
171+ fun x hx ↦ (hf x hx).coordChangeL (he hx) (he' hx)
172+
173+ protected theorem MDifferentiable.coordChangeL
174+ (hf : MDifferentiable IM IB f) (he : ∀ x, f x ∈ e.baseSet) (he' : ∀ x, f x ∈ e'.baseSet) :
175+ MDifferentiable IM 𝓘(𝕜, F →L[𝕜] F) (fun y ↦ (e.coordChangeL 𝕜 e' (f y) : F →L[𝕜] F)) := fun x ↦
176+ (hf x).coordChangeL (he x) (he' x)
177+
178+ protected theorem MDifferentiableWithinAt.coordChange
179+ (hf : MDifferentiableWithinAt IM IB f s x) (hg : MDifferentiableWithinAt IM 𝓘(𝕜, F) g s x)
180+ (he : f x ∈ e.baseSet) (he' : f x ∈ e'.baseSet) :
181+ MDifferentiableWithinAt IM 𝓘(𝕜, F) (fun y ↦ e.coordChange e' (f y) (g y)) s x := by
182+ refine ((hf.coordChangeL he he').clm_apply hg).congr_of_eventuallyEq ?_ ?_
183+ · have : e.baseSet ∩ e'.baseSet ∈ 𝓝 (f x) :=
184+ (e.open_baseSet.inter e'.open_baseSet).mem_nhds ⟨he, he'⟩
185+ filter_upwards [hf.continuousWithinAt this] with y hy
186+ exact (Trivialization.coordChangeL_apply' e e' hy (g y)).symm
187+ · exact (Trivialization.coordChangeL_apply' e e' ⟨he, he'⟩ (g x)).symm
188+
189+ protected theorem MDifferentiableAt.coordChange
190+ (hf : MDifferentiableAt IM IB f x) (hg : MDifferentiableAt IM 𝓘(𝕜, F) g x)
191+ (he : f x ∈ e.baseSet) (he' : f x ∈ e'.baseSet) :
192+ MDifferentiableAt IM 𝓘(𝕜, F) (fun y ↦ e.coordChange e' (f y) (g y)) x :=
193+ MDifferentiableWithinAt.coordChange hf hg he he'
194+
195+ protected theorem MDifferentiableOn.coordChange
196+ (hf : MDifferentiableOn IM IB f s) (hg : MDifferentiableOn IM 𝓘(𝕜, F) g s)
197+ (he : MapsTo f s e.baseSet) (he' : MapsTo f s e'.baseSet) :
198+ MDifferentiableOn IM 𝓘(𝕜, F) (fun y ↦ e.coordChange e' (f y) (g y)) s := fun x hx ↦
199+ (hf x hx).coordChange (hg x hx) (he hx) (he' hx)
200+
201+ protected theorem MDifferentiable.coordChange
202+ (hf : MDifferentiable IM IB f) (hg : MDifferentiable IM 𝓘(𝕜, F) g)
203+ (he : ∀ x, f x ∈ e.baseSet) (he' : ∀ x, f x ∈ e'.baseSet) :
204+ MDifferentiable IM 𝓘(𝕜, F) (fun y ↦ e.coordChange e' (f y) (g y)) := fun x ↦
205+ (hf x).coordChange (hg x) (he x) (he' x)
206+
207+ end coordChange
208+
131209end
132210
133211section
0 commit comments