Documentation

Mathlib.Geometry.Manifold.MFDeriv.NormedSpace

Equivalence of manifold differentiability with the basic definition for functions between #

vector spaces

The API in this file is mostly copied from Mathlib/Geometry/Manifold/ContMDiff/NormedSpace.lean, providing the same statements for higher smoothness. In this file, we do the same for differentiability.

theorem DifferentiableWithinAt.comp_mdifferentiableWithinAt {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {H : Type u_3} [TopologicalSpace H] {I : ModelWithCorners ๐•œ E H} {M : Type u_4} [TopologicalSpace M] [ChartedSpace H M] {F : Type u_8} [NormedAddCommGroup F] [NormedSpace ๐•œ F] {F' : Type u_11} [NormedAddCommGroup F'] [NormedSpace ๐•œ F'] {g : F โ†’ F'} {f : M โ†’ F} {s : Set M} {t : Set F} {x : M} (hg : DifferentiableWithinAt ๐•œ g t (f x)) (hf : MDiffAt[s] f x) (h : Set.MapsTo f s t) :
MDiffAt[s] (g โˆ˜ f) x
theorem DifferentiableAt.comp_mdifferentiableWithinAt {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {H : Type u_3} [TopologicalSpace H] {I : ModelWithCorners ๐•œ E H} {M : Type u_4} [TopologicalSpace M] [ChartedSpace H M] {F : Type u_8} [NormedAddCommGroup F] [NormedSpace ๐•œ F] {F' : Type u_11} [NormedAddCommGroup F'] [NormedSpace ๐•œ F'] {g : F โ†’ F'} {f : M โ†’ F} {s : Set M} {x : M} (hg : DifferentiableAt ๐•œ g (f x)) (hf : MDiffAt[s] f x) :
MDiffAt[s] (g โˆ˜ f) x
theorem DifferentiableAt.comp_mdifferentiableAt {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {H : Type u_3} [TopologicalSpace H] {I : ModelWithCorners ๐•œ E H} {M : Type u_4} [TopologicalSpace M] [ChartedSpace H M] {F : Type u_8} [NormedAddCommGroup F] [NormedSpace ๐•œ F] {F' : Type u_11} [NormedAddCommGroup F'] [NormedSpace ๐•œ F'] {g : F โ†’ F'} {f : M โ†’ F} {x : M} (hg : DifferentiableAt ๐•œ g (f x)) (hf : MDiffAt f x) :
MDiffAt (g โˆ˜ f) x
theorem Differentiable.comp_mdifferentiableWithinAt {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {H : Type u_3} [TopologicalSpace H] {I : ModelWithCorners ๐•œ E H} {M : Type u_4} [TopologicalSpace M] [ChartedSpace H M] {F : Type u_8} [NormedAddCommGroup F] [NormedSpace ๐•œ F] {F' : Type u_11} [NormedAddCommGroup F'] [NormedSpace ๐•œ F'] {g : F โ†’ F'} {f : M โ†’ F} {s : Set M} {x : M} (hg : Differentiable ๐•œ g) (hf : MDiffAt[s] f x) :
MDiffAt[s] (g โˆ˜ f) x
theorem Differentiable.comp_mdifferentiableAt {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {H : Type u_3} [TopologicalSpace H] {I : ModelWithCorners ๐•œ E H} {M : Type u_4} [TopologicalSpace M] [ChartedSpace H M] {F : Type u_8} [NormedAddCommGroup F] [NormedSpace ๐•œ F] {F' : Type u_11} [NormedAddCommGroup F'] [NormedSpace ๐•œ F'] {g : F โ†’ F'} {f : M โ†’ F} {x : M} (hg : Differentiable ๐•œ g) (hf : MDiffAt f x) :
MDiffAt (g โˆ˜ f) x
theorem Differentiable.comp_mdifferentiable {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {H : Type u_3} [TopologicalSpace H] {I : ModelWithCorners ๐•œ E H} {M : Type u_4} [TopologicalSpace M] [ChartedSpace H M] {F : Type u_8} [NormedAddCommGroup F] [NormedSpace ๐•œ F] {F' : Type u_11} [NormedAddCommGroup F'] [NormedSpace ๐•œ F'] {g : F โ†’ F'} {f : M โ†’ F} (hg : Differentiable ๐•œ g) (hf : MDifferentiable I (modelWithCornersSelf ๐•œ F) f) :
theorem MDifferentiableWithinAt.differentiableWithinAt_comp_extChartAt_symm {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {H : Type u_3} [TopologicalSpace H] {I : ModelWithCorners ๐•œ E H} {M : Type u_4} [TopologicalSpace M] [ChartedSpace H M] {s : Set M} {x : M} {F : Type u_18} [NormedAddCommGroup F] [NormedSpace ๐•œ F] {f : M โ†’ F} (hf : MDiffAt[s] f x) :
DifferentiableWithinAt ๐•œ (f โˆ˜ โ†‘(extChartAt I x).symm) (โ†‘(extChartAt I x).symm โปยน' s โˆฉ Set.range โ†‘I) (โ†‘(extChartAt I x) x)
theorem DifferentiableWithinAt.mdifferentiableWithinAt_of_comp_extChartAt_symm {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {H : Type u_3} [TopologicalSpace H] {I : ModelWithCorners ๐•œ E H} {M : Type u_4} [TopologicalSpace M] [ChartedSpace H M] {s : Set M} {x : M} {F : Type u_18} [NormedAddCommGroup F] [NormedSpace ๐•œ F] {f : M โ†’ F} [IsManifold I 1 M] (hf : DifferentiableWithinAt ๐•œ (f โˆ˜ โ†‘(extChartAt I x).symm) (โ†‘(extChartAt I x).symm โปยน' s โˆฉ Set.range โ†‘I) (โ†‘(extChartAt I x) x)) :
MDiffAt[s] f x

Linear maps between normed spaces are differentiable #

theorem MDifferentiableWithinAt.clm_precomp {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {H : Type u_3} [TopologicalSpace H] {I : ModelWithCorners ๐•œ E H} {M : Type u_4} [TopologicalSpace M] [ChartedSpace H M] {Fโ‚ : Type u_14} [NormedAddCommGroup Fโ‚] [NormedSpace ๐•œ Fโ‚] {Fโ‚‚ : Type u_15} [NormedAddCommGroup Fโ‚‚] [NormedSpace ๐•œ Fโ‚‚] {Fโ‚ƒ : Type u_16} [NormedAddCommGroup Fโ‚ƒ] [NormedSpace ๐•œ Fโ‚ƒ] {f : M โ†’ Fโ‚ โ†’L[๐•œ] Fโ‚‚} {s : Set M} {x : M} (hf : MDiffAt[s] f x) :
(MDiffAt[s] fun (y : M) => ContinuousLinearMap.precomp Fโ‚ƒ (f y)) x
theorem MDifferentiableAt.clm_precomp {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {H : Type u_3} [TopologicalSpace H] {I : ModelWithCorners ๐•œ E H} {M : Type u_4} [TopologicalSpace M] [ChartedSpace H M] {Fโ‚ : Type u_14} [NormedAddCommGroup Fโ‚] [NormedSpace ๐•œ Fโ‚] {Fโ‚‚ : Type u_15} [NormedAddCommGroup Fโ‚‚] [NormedSpace ๐•œ Fโ‚‚] {Fโ‚ƒ : Type u_16} [NormedAddCommGroup Fโ‚ƒ] [NormedSpace ๐•œ Fโ‚ƒ] {f : M โ†’ Fโ‚ โ†’L[๐•œ] Fโ‚‚} {x : M} (hf : MDiffAt f x) :
(MDiffAt fun (y : M) => ContinuousLinearMap.precomp Fโ‚ƒ (f y)) x
theorem MDifferentiableOn.clm_precomp {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {H : Type u_3} [TopologicalSpace H] {I : ModelWithCorners ๐•œ E H} {M : Type u_4} [TopologicalSpace M] [ChartedSpace H M] {Fโ‚ : Type u_14} [NormedAddCommGroup Fโ‚] [NormedSpace ๐•œ Fโ‚] {Fโ‚‚ : Type u_15} [NormedAddCommGroup Fโ‚‚] [NormedSpace ๐•œ Fโ‚‚] {Fโ‚ƒ : Type u_16} [NormedAddCommGroup Fโ‚ƒ] [NormedSpace ๐•œ Fโ‚ƒ] {f : M โ†’ Fโ‚ โ†’L[๐•œ] Fโ‚‚} {s : Set M} (hf : MDifferentiableOn I (modelWithCornersSelf ๐•œ (Fโ‚ โ†’L[๐•œ] Fโ‚‚)) f s) :
MDifferentiableOn I (modelWithCornersSelf ๐•œ ((Fโ‚‚ โ†’L[๐•œ] Fโ‚ƒ) โ†’L[๐•œ] Fโ‚ โ†’L[๐•œ] Fโ‚ƒ)) (fun (y : M) => ContinuousLinearMap.precomp Fโ‚ƒ (f y)) s
theorem MDifferentiable.clm_precomp {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {H : Type u_3} [TopologicalSpace H] {I : ModelWithCorners ๐•œ E H} {M : Type u_4} [TopologicalSpace M] [ChartedSpace H M] {Fโ‚ : Type u_14} [NormedAddCommGroup Fโ‚] [NormedSpace ๐•œ Fโ‚] {Fโ‚‚ : Type u_15} [NormedAddCommGroup Fโ‚‚] [NormedSpace ๐•œ Fโ‚‚] {Fโ‚ƒ : Type u_16} [NormedAddCommGroup Fโ‚ƒ] [NormedSpace ๐•œ Fโ‚ƒ] {f : M โ†’ Fโ‚ โ†’L[๐•œ] Fโ‚‚} (hf : MDifferentiable I (modelWithCornersSelf ๐•œ (Fโ‚ โ†’L[๐•œ] Fโ‚‚)) f) :
MDifferentiable I (modelWithCornersSelf ๐•œ ((Fโ‚‚ โ†’L[๐•œ] Fโ‚ƒ) โ†’L[๐•œ] Fโ‚ โ†’L[๐•œ] Fโ‚ƒ)) fun (y : M) => ContinuousLinearMap.precomp Fโ‚ƒ (f y)
theorem MDifferentiableWithinAt.clm_postcomp {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {H : Type u_3} [TopologicalSpace H] {I : ModelWithCorners ๐•œ E H} {M : Type u_4} [TopologicalSpace M] [ChartedSpace H M] {Fโ‚ : Type u_14} [NormedAddCommGroup Fโ‚] [NormedSpace ๐•œ Fโ‚] {Fโ‚‚ : Type u_15} [NormedAddCommGroup Fโ‚‚] [NormedSpace ๐•œ Fโ‚‚] {Fโ‚ƒ : Type u_16} [NormedAddCommGroup Fโ‚ƒ] [NormedSpace ๐•œ Fโ‚ƒ] {f : M โ†’ Fโ‚‚ โ†’L[๐•œ] Fโ‚ƒ} {s : Set M} {x : M} (hf : MDiffAt[s] f x) :
(MDiffAt[s] fun (y : M) => ContinuousLinearMap.postcomp Fโ‚ (f y)) x
theorem MDifferentiableAt.clm_postcomp {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {H : Type u_3} [TopologicalSpace H] {I : ModelWithCorners ๐•œ E H} {M : Type u_4} [TopologicalSpace M] [ChartedSpace H M] {Fโ‚ : Type u_14} [NormedAddCommGroup Fโ‚] [NormedSpace ๐•œ Fโ‚] {Fโ‚‚ : Type u_15} [NormedAddCommGroup Fโ‚‚] [NormedSpace ๐•œ Fโ‚‚] {Fโ‚ƒ : Type u_16} [NormedAddCommGroup Fโ‚ƒ] [NormedSpace ๐•œ Fโ‚ƒ] {f : M โ†’ Fโ‚‚ โ†’L[๐•œ] Fโ‚ƒ} {x : M} (hf : MDiffAt f x) :
(MDiffAt fun (y : M) => ContinuousLinearMap.postcomp Fโ‚ (f y)) x
theorem MDifferentiableOn.clm_postcomp {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {H : Type u_3} [TopologicalSpace H] {I : ModelWithCorners ๐•œ E H} {M : Type u_4} [TopologicalSpace M] [ChartedSpace H M] {Fโ‚ : Type u_14} [NormedAddCommGroup Fโ‚] [NormedSpace ๐•œ Fโ‚] {Fโ‚‚ : Type u_15} [NormedAddCommGroup Fโ‚‚] [NormedSpace ๐•œ Fโ‚‚] {Fโ‚ƒ : Type u_16} [NormedAddCommGroup Fโ‚ƒ] [NormedSpace ๐•œ Fโ‚ƒ] {f : M โ†’ Fโ‚‚ โ†’L[๐•œ] Fโ‚ƒ} {s : Set M} (hf : MDifferentiableOn I (modelWithCornersSelf ๐•œ (Fโ‚‚ โ†’L[๐•œ] Fโ‚ƒ)) f s) :
MDifferentiableOn I (modelWithCornersSelf ๐•œ ((Fโ‚ โ†’L[๐•œ] Fโ‚‚) โ†’L[๐•œ] Fโ‚ โ†’L[๐•œ] Fโ‚ƒ)) (fun (y : M) => ContinuousLinearMap.postcomp Fโ‚ (f y)) s
theorem MDifferentiable.clm_postcomp {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {H : Type u_3} [TopologicalSpace H] {I : ModelWithCorners ๐•œ E H} {M : Type u_4} [TopologicalSpace M] [ChartedSpace H M] {Fโ‚ : Type u_14} [NormedAddCommGroup Fโ‚] [NormedSpace ๐•œ Fโ‚] {Fโ‚‚ : Type u_15} [NormedAddCommGroup Fโ‚‚] [NormedSpace ๐•œ Fโ‚‚] {Fโ‚ƒ : Type u_16} [NormedAddCommGroup Fโ‚ƒ] [NormedSpace ๐•œ Fโ‚ƒ] {f : M โ†’ Fโ‚‚ โ†’L[๐•œ] Fโ‚ƒ} (hf : MDifferentiable I (modelWithCornersSelf ๐•œ (Fโ‚‚ โ†’L[๐•œ] Fโ‚ƒ)) f) :
MDifferentiable I (modelWithCornersSelf ๐•œ ((Fโ‚ โ†’L[๐•œ] Fโ‚‚) โ†’L[๐•œ] Fโ‚ โ†’L[๐•œ] Fโ‚ƒ)) fun (y : M) => ContinuousLinearMap.postcomp Fโ‚ (f y)
theorem MDifferentiableWithinAt.clm_comp {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {H : Type u_3} [TopologicalSpace H] {I : ModelWithCorners ๐•œ E H} {M : Type u_4} [TopologicalSpace M] [ChartedSpace H M] {Fโ‚ : Type u_14} [NormedAddCommGroup Fโ‚] [NormedSpace ๐•œ Fโ‚] {Fโ‚‚ : Type u_15} [NormedAddCommGroup Fโ‚‚] [NormedSpace ๐•œ Fโ‚‚] {Fโ‚ƒ : Type u_16} [NormedAddCommGroup Fโ‚ƒ] [NormedSpace ๐•œ Fโ‚ƒ] {g : M โ†’ Fโ‚ โ†’L[๐•œ] Fโ‚ƒ} {f : M โ†’ Fโ‚‚ โ†’L[๐•œ] Fโ‚} {s : Set M} {x : M} (hg : MDiffAt[s] g x) (hf : MDiffAt[s] f x) :
(MDiffAt[s] fun (x : M) => (g x).comp (f x)) x
theorem MDifferentiableAt.clm_comp {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {H : Type u_3} [TopologicalSpace H] {I : ModelWithCorners ๐•œ E H} {M : Type u_4} [TopologicalSpace M] [ChartedSpace H M] {Fโ‚ : Type u_14} [NormedAddCommGroup Fโ‚] [NormedSpace ๐•œ Fโ‚] {Fโ‚‚ : Type u_15} [NormedAddCommGroup Fโ‚‚] [NormedSpace ๐•œ Fโ‚‚] {Fโ‚ƒ : Type u_16} [NormedAddCommGroup Fโ‚ƒ] [NormedSpace ๐•œ Fโ‚ƒ] {g : M โ†’ Fโ‚ โ†’L[๐•œ] Fโ‚ƒ} {f : M โ†’ Fโ‚‚ โ†’L[๐•œ] Fโ‚} {x : M} (hg : MDiffAt g x) (hf : MDiffAt f x) :
(MDiffAt fun (x : M) => (g x).comp (f x)) x
theorem MDifferentiableOn.clm_comp {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {H : Type u_3} [TopologicalSpace H] {I : ModelWithCorners ๐•œ E H} {M : Type u_4} [TopologicalSpace M] [ChartedSpace H M] {Fโ‚ : Type u_14} [NormedAddCommGroup Fโ‚] [NormedSpace ๐•œ Fโ‚] {Fโ‚‚ : Type u_15} [NormedAddCommGroup Fโ‚‚] [NormedSpace ๐•œ Fโ‚‚] {Fโ‚ƒ : Type u_16} [NormedAddCommGroup Fโ‚ƒ] [NormedSpace ๐•œ Fโ‚ƒ] {g : M โ†’ Fโ‚ โ†’L[๐•œ] Fโ‚ƒ} {f : M โ†’ Fโ‚‚ โ†’L[๐•œ] Fโ‚} {s : Set M} (hg : MDifferentiableOn I (modelWithCornersSelf ๐•œ (Fโ‚ โ†’L[๐•œ] Fโ‚ƒ)) g s) (hf : MDifferentiableOn I (modelWithCornersSelf ๐•œ (Fโ‚‚ โ†’L[๐•œ] Fโ‚)) f s) :
MDifferentiableOn I (modelWithCornersSelf ๐•œ (Fโ‚‚ โ†’L[๐•œ] Fโ‚ƒ)) (fun (x : M) => (g x).comp (f x)) s
theorem MDifferentiable.clm_comp {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {H : Type u_3} [TopologicalSpace H] {I : ModelWithCorners ๐•œ E H} {M : Type u_4} [TopologicalSpace M] [ChartedSpace H M] {Fโ‚ : Type u_14} [NormedAddCommGroup Fโ‚] [NormedSpace ๐•œ Fโ‚] {Fโ‚‚ : Type u_15} [NormedAddCommGroup Fโ‚‚] [NormedSpace ๐•œ Fโ‚‚] {Fโ‚ƒ : Type u_16} [NormedAddCommGroup Fโ‚ƒ] [NormedSpace ๐•œ Fโ‚ƒ] {g : M โ†’ Fโ‚ โ†’L[๐•œ] Fโ‚ƒ} {f : M โ†’ Fโ‚‚ โ†’L[๐•œ] Fโ‚} (hg : MDifferentiable I (modelWithCornersSelf ๐•œ (Fโ‚ โ†’L[๐•œ] Fโ‚ƒ)) g) (hf : MDifferentiable I (modelWithCornersSelf ๐•œ (Fโ‚‚ โ†’L[๐•œ] Fโ‚)) f) :
MDifferentiable I (modelWithCornersSelf ๐•œ (Fโ‚‚ โ†’L[๐•œ] Fโ‚ƒ)) fun (x : M) => (g x).comp (f x)
theorem MDifferentiableWithinAt.clm_apply {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {H : Type u_3} [TopologicalSpace H] {I : ModelWithCorners ๐•œ E H} {M : Type u_4} [TopologicalSpace M] [ChartedSpace H M] {Fโ‚ : Type u_14} [NormedAddCommGroup Fโ‚] [NormedSpace ๐•œ Fโ‚] {Fโ‚‚ : Type u_15} [NormedAddCommGroup Fโ‚‚] [NormedSpace ๐•œ Fโ‚‚] {g : M โ†’ Fโ‚ โ†’L[๐•œ] Fโ‚‚} {f : M โ†’ Fโ‚} {s : Set M} {x : M} (hg : MDiffAt[s] g x) (hf : MDiffAt[s] f x) :
(MDiffAt[s] fun (x : M) => (g x) (f x)) x

Applying a linear map to a vector is differentiable within a set. Version in vector spaces. For a version in nontrivial vector bundles, see MDifferentiableWithinAt.clm_apply_of_inCoordinates.

theorem MDifferentiableAt.clm_apply {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {H : Type u_3} [TopologicalSpace H] {I : ModelWithCorners ๐•œ E H} {M : Type u_4} [TopologicalSpace M] [ChartedSpace H M] {Fโ‚ : Type u_14} [NormedAddCommGroup Fโ‚] [NormedSpace ๐•œ Fโ‚] {Fโ‚‚ : Type u_15} [NormedAddCommGroup Fโ‚‚] [NormedSpace ๐•œ Fโ‚‚] {g : M โ†’ Fโ‚ โ†’L[๐•œ] Fโ‚‚} {f : M โ†’ Fโ‚} {x : M} (hg : MDiffAt g x) (hf : MDiffAt f x) :
(MDiffAt fun (x : M) => (g x) (f x)) x

Applying a linear map to a vector is differentiable. Version in vector spaces. For a version in nontrivial vector bundles, see MDifferentiableAt.clm_apply_of_inCoordinates.

theorem MDifferentiableOn.clm_apply {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {H : Type u_3} [TopologicalSpace H] {I : ModelWithCorners ๐•œ E H} {M : Type u_4} [TopologicalSpace M] [ChartedSpace H M] {Fโ‚ : Type u_14} [NormedAddCommGroup Fโ‚] [NormedSpace ๐•œ Fโ‚] {Fโ‚‚ : Type u_15} [NormedAddCommGroup Fโ‚‚] [NormedSpace ๐•œ Fโ‚‚] {g : M โ†’ Fโ‚ โ†’L[๐•œ] Fโ‚‚} {f : M โ†’ Fโ‚} {s : Set M} (hg : MDifferentiableOn I (modelWithCornersSelf ๐•œ (Fโ‚ โ†’L[๐•œ] Fโ‚‚)) g s) (hf : MDifferentiableOn I (modelWithCornersSelf ๐•œ Fโ‚) f s) :
MDifferentiableOn I (modelWithCornersSelf ๐•œ Fโ‚‚) (fun (x : M) => (g x) (f x)) s
theorem MDifferentiable.clm_apply {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {H : Type u_3} [TopologicalSpace H] {I : ModelWithCorners ๐•œ E H} {M : Type u_4} [TopologicalSpace M] [ChartedSpace H M] {Fโ‚ : Type u_14} [NormedAddCommGroup Fโ‚] [NormedSpace ๐•œ Fโ‚] {Fโ‚‚ : Type u_15} [NormedAddCommGroup Fโ‚‚] [NormedSpace ๐•œ Fโ‚‚] {g : M โ†’ Fโ‚ โ†’L[๐•œ] Fโ‚‚} {f : M โ†’ Fโ‚} (hg : MDifferentiable I (modelWithCornersSelf ๐•œ (Fโ‚ โ†’L[๐•œ] Fโ‚‚)) g) (hf : MDifferentiable I (modelWithCornersSelf ๐•œ Fโ‚) f) :
MDifferentiable I (modelWithCornersSelf ๐•œ Fโ‚‚) fun (x : M) => (g x) (f x)
theorem MDifferentiableWithinAt.cle_arrowCongr {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {H : Type u_3} [TopologicalSpace H] {I : ModelWithCorners ๐•œ E H} {M : Type u_4} [TopologicalSpace M] [ChartedSpace H M] {Fโ‚ : Type u_14} [NormedAddCommGroup Fโ‚] [NormedSpace ๐•œ Fโ‚] {Fโ‚‚ : Type u_15} [NormedAddCommGroup Fโ‚‚] [NormedSpace ๐•œ Fโ‚‚] {Fโ‚ƒ : Type u_16} [NormedAddCommGroup Fโ‚ƒ] [NormedSpace ๐•œ Fโ‚ƒ] {Fโ‚„ : Type u_17} [NormedAddCommGroup Fโ‚„] [NormedSpace ๐•œ Fโ‚„] {f : M โ†’ Fโ‚ โ‰ƒL[๐•œ] Fโ‚‚} {g : M โ†’ Fโ‚ƒ โ‰ƒL[๐•œ] Fโ‚„} {s : Set M} {x : M} (hf : (MDiffAt[s] fun (x : M) => โ†‘(f x).symm) x) (hg : (MDiffAt[s] fun (x : M) => โ†‘(g x)) x) :
(MDiffAt[s] fun (y : M) => โ†‘((f y).arrowCongr (g y))) x
theorem MDifferentiableAt.cle_arrowCongr {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {H : Type u_3} [TopologicalSpace H] {I : ModelWithCorners ๐•œ E H} {M : Type u_4} [TopologicalSpace M] [ChartedSpace H M] {Fโ‚ : Type u_14} [NormedAddCommGroup Fโ‚] [NormedSpace ๐•œ Fโ‚] {Fโ‚‚ : Type u_15} [NormedAddCommGroup Fโ‚‚] [NormedSpace ๐•œ Fโ‚‚] {Fโ‚ƒ : Type u_16} [NormedAddCommGroup Fโ‚ƒ] [NormedSpace ๐•œ Fโ‚ƒ] {Fโ‚„ : Type u_17} [NormedAddCommGroup Fโ‚„] [NormedSpace ๐•œ Fโ‚„] {f : M โ†’ Fโ‚ โ‰ƒL[๐•œ] Fโ‚‚} {g : M โ†’ Fโ‚ƒ โ‰ƒL[๐•œ] Fโ‚„} {x : M} (hf : (MDiffAt fun (x : M) => โ†‘(f x).symm) x) (hg : (MDiffAt fun (x : M) => โ†‘(g x)) x) :
(MDiffAt fun (y : M) => โ†‘((f y).arrowCongr (g y))) x
theorem MDifferentiableOn.cle_arrowCongr {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {H : Type u_3} [TopologicalSpace H] {I : ModelWithCorners ๐•œ E H} {M : Type u_4} [TopologicalSpace M] [ChartedSpace H M] {Fโ‚ : Type u_14} [NormedAddCommGroup Fโ‚] [NormedSpace ๐•œ Fโ‚] {Fโ‚‚ : Type u_15} [NormedAddCommGroup Fโ‚‚] [NormedSpace ๐•œ Fโ‚‚] {Fโ‚ƒ : Type u_16} [NormedAddCommGroup Fโ‚ƒ] [NormedSpace ๐•œ Fโ‚ƒ] {Fโ‚„ : Type u_17} [NormedAddCommGroup Fโ‚„] [NormedSpace ๐•œ Fโ‚„] {f : M โ†’ Fโ‚ โ‰ƒL[๐•œ] Fโ‚‚} {g : M โ†’ Fโ‚ƒ โ‰ƒL[๐•œ] Fโ‚„} {s : Set M} (hf : MDifferentiableOn I (modelWithCornersSelf ๐•œ (Fโ‚‚ โ†’L[๐•œ] Fโ‚)) (fun (x : M) => โ†‘(f x).symm) s) (hg : MDifferentiableOn I (modelWithCornersSelf ๐•œ (Fโ‚ƒ โ†’L[๐•œ] Fโ‚„)) (fun (x : M) => โ†‘(g x)) s) :
MDifferentiableOn I (modelWithCornersSelf ๐•œ ((Fโ‚ โ†’L[๐•œ] Fโ‚ƒ) โ†’L[๐•œ] Fโ‚‚ โ†’L[๐•œ] Fโ‚„)) (fun (y : M) => โ†‘((f y).arrowCongr (g y))) s
theorem MDifferentiable.cle_arrowCongr {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {H : Type u_3} [TopologicalSpace H] {I : ModelWithCorners ๐•œ E H} {M : Type u_4} [TopologicalSpace M] [ChartedSpace H M] {Fโ‚ : Type u_14} [NormedAddCommGroup Fโ‚] [NormedSpace ๐•œ Fโ‚] {Fโ‚‚ : Type u_15} [NormedAddCommGroup Fโ‚‚] [NormedSpace ๐•œ Fโ‚‚] {Fโ‚ƒ : Type u_16} [NormedAddCommGroup Fโ‚ƒ] [NormedSpace ๐•œ Fโ‚ƒ] {Fโ‚„ : Type u_17} [NormedAddCommGroup Fโ‚„] [NormedSpace ๐•œ Fโ‚„] {f : M โ†’ Fโ‚ โ‰ƒL[๐•œ] Fโ‚‚} {g : M โ†’ Fโ‚ƒ โ‰ƒL[๐•œ] Fโ‚„} (hf : MDifferentiable I (modelWithCornersSelf ๐•œ (Fโ‚‚ โ†’L[๐•œ] Fโ‚)) fun (x : M) => โ†‘(f x).symm) (hg : MDifferentiable I (modelWithCornersSelf ๐•œ (Fโ‚ƒ โ†’L[๐•œ] Fโ‚„)) fun (x : M) => โ†‘(g x)) :
MDifferentiable I (modelWithCornersSelf ๐•œ ((Fโ‚ โ†’L[๐•œ] Fโ‚ƒ) โ†’L[๐•œ] Fโ‚‚ โ†’L[๐•œ] Fโ‚„)) fun (y : M) => โ†‘((f y).arrowCongr (g y))
theorem MDifferentiableWithinAt.clm_prodMap {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {H : Type u_3} [TopologicalSpace H] {I : ModelWithCorners ๐•œ E H} {M : Type u_4} [TopologicalSpace M] [ChartedSpace H M] {Fโ‚ : Type u_14} [NormedAddCommGroup Fโ‚] [NormedSpace ๐•œ Fโ‚] {Fโ‚‚ : Type u_15} [NormedAddCommGroup Fโ‚‚] [NormedSpace ๐•œ Fโ‚‚] {Fโ‚ƒ : Type u_16} [NormedAddCommGroup Fโ‚ƒ] [NormedSpace ๐•œ Fโ‚ƒ] {Fโ‚„ : Type u_17} [NormedAddCommGroup Fโ‚„] [NormedSpace ๐•œ Fโ‚„] {g : M โ†’ Fโ‚ โ†’L[๐•œ] Fโ‚ƒ} {f : M โ†’ Fโ‚‚ โ†’L[๐•œ] Fโ‚„} {s : Set M} {x : M} (hg : MDiffAt[s] g x) (hf : MDiffAt[s] f x) :
(MDiffAt[s] fun (x : M) => (g x).prodMap (f x)) x
theorem MDifferentiableAt.clm_prodMap {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {H : Type u_3} [TopologicalSpace H] {I : ModelWithCorners ๐•œ E H} {M : Type u_4} [TopologicalSpace M] [ChartedSpace H M] {Fโ‚ : Type u_14} [NormedAddCommGroup Fโ‚] [NormedSpace ๐•œ Fโ‚] {Fโ‚‚ : Type u_15} [NormedAddCommGroup Fโ‚‚] [NormedSpace ๐•œ Fโ‚‚] {Fโ‚ƒ : Type u_16} [NormedAddCommGroup Fโ‚ƒ] [NormedSpace ๐•œ Fโ‚ƒ] {Fโ‚„ : Type u_17} [NormedAddCommGroup Fโ‚„] [NormedSpace ๐•œ Fโ‚„] {g : M โ†’ Fโ‚ โ†’L[๐•œ] Fโ‚ƒ} {f : M โ†’ Fโ‚‚ โ†’L[๐•œ] Fโ‚„} {x : M} (hg : MDiffAt g x) (hf : MDiffAt f x) :
(MDiffAt fun (x : M) => (g x).prodMap (f x)) x
theorem MDifferentiableOn.clm_prodMap {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {H : Type u_3} [TopologicalSpace H] {I : ModelWithCorners ๐•œ E H} {M : Type u_4} [TopologicalSpace M] [ChartedSpace H M] {Fโ‚ : Type u_14} [NormedAddCommGroup Fโ‚] [NormedSpace ๐•œ Fโ‚] {Fโ‚‚ : Type u_15} [NormedAddCommGroup Fโ‚‚] [NormedSpace ๐•œ Fโ‚‚] {Fโ‚ƒ : Type u_16} [NormedAddCommGroup Fโ‚ƒ] [NormedSpace ๐•œ Fโ‚ƒ] {Fโ‚„ : Type u_17} [NormedAddCommGroup Fโ‚„] [NormedSpace ๐•œ Fโ‚„] {g : M โ†’ Fโ‚ โ†’L[๐•œ] Fโ‚ƒ} {f : M โ†’ Fโ‚‚ โ†’L[๐•œ] Fโ‚„} {s : Set M} (hg : MDifferentiableOn I (modelWithCornersSelf ๐•œ (Fโ‚ โ†’L[๐•œ] Fโ‚ƒ)) g s) (hf : MDifferentiableOn I (modelWithCornersSelf ๐•œ (Fโ‚‚ โ†’L[๐•œ] Fโ‚„)) f s) :
MDifferentiableOn I (modelWithCornersSelf ๐•œ (Fโ‚ ร— Fโ‚‚ โ†’L[๐•œ] Fโ‚ƒ ร— Fโ‚„)) (fun (x : M) => (g x).prodMap (f x)) s
theorem MDifferentiable.clm_prodMap {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {H : Type u_3} [TopologicalSpace H] {I : ModelWithCorners ๐•œ E H} {M : Type u_4} [TopologicalSpace M] [ChartedSpace H M] {Fโ‚ : Type u_14} [NormedAddCommGroup Fโ‚] [NormedSpace ๐•œ Fโ‚] {Fโ‚‚ : Type u_15} [NormedAddCommGroup Fโ‚‚] [NormedSpace ๐•œ Fโ‚‚] {Fโ‚ƒ : Type u_16} [NormedAddCommGroup Fโ‚ƒ] [NormedSpace ๐•œ Fโ‚ƒ] {Fโ‚„ : Type u_17} [NormedAddCommGroup Fโ‚„] [NormedSpace ๐•œ Fโ‚„] {g : M โ†’ Fโ‚ โ†’L[๐•œ] Fโ‚ƒ} {f : M โ†’ Fโ‚‚ โ†’L[๐•œ] Fโ‚„} (hg : MDifferentiable I (modelWithCornersSelf ๐•œ (Fโ‚ โ†’L[๐•œ] Fโ‚ƒ)) g) (hf : MDifferentiable I (modelWithCornersSelf ๐•œ (Fโ‚‚ โ†’L[๐•œ] Fโ‚„)) f) :
MDifferentiable I (modelWithCornersSelf ๐•œ (Fโ‚ ร— Fโ‚‚ โ†’L[๐•œ] Fโ‚ƒ ร— Fโ‚„)) fun (x : M) => (g x).prodMap (f x)

Differentiability of scalar multiplication #

theorem HasMFDerivAt.smul {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {H : Type u_3} [TopologicalSpace H] {I : ModelWithCorners ๐•œ E H} {M : Type u_4} [TopologicalSpace M] [ChartedSpace H M] {x : M} {V : Type u_18} [NormedAddCommGroup V] [NormedSpace ๐•œ V] {f : M โ†’ ๐•œ} {g : M โ†’ V} {f' : TangentSpace I x โ†’L[๐•œ] ๐•œ} (hs : HasMFDerivAt I (modelWithCornersSelf ๐•œ ๐•œ) f x ((โ†‘(NormedSpace.fromTangentSpace (f x)).symm).comp f')) {g' : TangentSpace I x โ†’L[๐•œ] V} (hg : HasMFDerivAt I (modelWithCornersSelf ๐•œ V) g x ((โ†‘(NormedSpace.fromTangentSpace (g x)).symm).comp g')) :

Given maps f, g from a manifold into a field ๐•œ and ๐•œ-vector space V, respectively, if at some point x, f has differential f' : TangentSpace I x โ†’L[๐•œ] ๐•œ and g has differential g' : TangentSpace I x โ†’L[๐•œ] V (both phrased using the predicate HasMFDerivAt), it follows that their scalar multiplication f โ€ข g has differential f x โ€ข g' + toSpanSingleton ๐•œ (g x) โˆ˜L f'.

In fact, the statement above is not literally true, because, for example, the differential of g really takes values in the tangent space to V at g x, rather than in V itself. Of course, this tangent space can be canonically identified with V.

This lemma phrases the formula using the equiv NormedSpace.fromTangentSpace, which provides this canonical identification. (It would also be possible to phrase the formula without this equiv, instead using casting and definitional abuse.)

theorem MDifferentiableWithinAt.smul {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {H : Type u_3} [TopologicalSpace H] {I : ModelWithCorners ๐•œ E H} {M : Type u_4} [TopologicalSpace M] [ChartedSpace H M] {s : Set M} {x : M} {V : Type u_18} [NormedAddCommGroup V] [NormedSpace ๐•œ V] {f : M โ†’ ๐•œ} {g : M โ†’ V} (hf : MDiffAt[s] f x) (hg : MDiffAt[s] g x) :
(MDiffAt[s] fun (p : M) => f p โ€ข g p) x
theorem MDifferentiableAt.smul {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {H : Type u_3} [TopologicalSpace H] {I : ModelWithCorners ๐•œ E H} {M : Type u_4} [TopologicalSpace M] [ChartedSpace H M] {x : M} {V : Type u_18} [NormedAddCommGroup V] [NormedSpace ๐•œ V] {f : M โ†’ ๐•œ} {g : M โ†’ V} (hf : MDiffAt f x) (hg : MDiffAt g x) :
(MDiffAt fun (p : M) => f p โ€ข g p) x
theorem MDifferentiableOn.smul {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {H : Type u_3} [TopologicalSpace H] {I : ModelWithCorners ๐•œ E H} {M : Type u_4} [TopologicalSpace M] [ChartedSpace H M] {s : Set M} {V : Type u_18} [NormedAddCommGroup V] [NormedSpace ๐•œ V] {f : M โ†’ ๐•œ} {g : M โ†’ V} (hf : MDifferentiableOn I (modelWithCornersSelf ๐•œ ๐•œ) f s) (hg : MDifferentiableOn I (modelWithCornersSelf ๐•œ V) g s) :
MDifferentiableOn I (modelWithCornersSelf ๐•œ V) (fun (p : M) => f p โ€ข g p) s
theorem MDifferentiable.smul {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {H : Type u_3} [TopologicalSpace H] {I : ModelWithCorners ๐•œ E H} {M : Type u_4} [TopologicalSpace M] [ChartedSpace H M] {V : Type u_18} [NormedAddCommGroup V] [NormedSpace ๐•œ V] {f : M โ†’ ๐•œ} {g : M โ†’ V} (hf : MDifferentiable I (modelWithCornersSelf ๐•œ ๐•œ) f) (hg : MDifferentiable I (modelWithCornersSelf ๐•œ V) g) :
MDifferentiable I (modelWithCornersSelf ๐•œ V) fun (p : M) => f p โ€ข g p
theorem mfderiv_smul {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {H : Type u_3} [TopologicalSpace H] {I : ModelWithCorners ๐•œ E H} {M : Type u_4} [TopologicalSpace M] [ChartedSpace H M] {x : M} {V : Type u_18} [NormedAddCommGroup V] [NormedSpace ๐•œ V] {f : M โ†’ ๐•œ} {g : M โ†’ V} (hf : MDiffAt f x) (hg : MDiffAt g x) :
mfderiv% (f โ€ข g) x = f x โ€ข (โ†‘(NormedSpace.fromTangentSpace ((f โ€ข g) x)).symm).comp ((โ†‘(NormedSpace.fromTangentSpace (g x))).comp (mfderiv% g x)) + (ContinuousLinearMap.toSpanSingleton ๐•œ ((NormedSpace.fromTangentSpace ((f โ€ข g) x)).symm (g x))).comp ((โ†‘(NormedSpace.fromTangentSpace (f x))).comp (mfderiv% f x))

Given maps f, g from a manifold into a field ๐•œ and ๐•œ-vector space V, respectively, the formula for the mfderiv (differential) of their scalar multiplication f โ€ข g.

Mathematically speaking the formula is d(f โ€ข g) = f โ€ข dg + df โŠ— g, i.e. mfderiv% (f โ€ข g) x = f x โ€ข mfderiv% g x + toSpanSingleton ๐•œ (g x) โˆ˜L mfderiv% f x, but this doesn't typecheck because mfderiv% (f โ€ข g) x and mfderiv% g x take values in different tangent spaces -- respectively the tangent spaces to V at (f โ€ข g) x and g x. Of course, both these tangent spaces can be canonically identified with V.

This lemma phrases the formula using the equiv NormedSpace.fromTangentSpace, which provides this canonical identification. (It would also be possible to phrase the formula without this equiv, instead using casting and definitional abuse.)

It is good practice to use the equiv NormedSpace.fromTangentSpace throughout a computation. If this is done, typically mfderiv% (f โ€ข g) x will only turn up paired with this equiv (i.e., in an expression (fromTangentSpace _) โˆ˜L mfderiv% (f โ€ข g) x), and the more convenient lemma fromTangentSpace_mfderiv_smul (see below) can be used instead.

theorem fromTangentSpace_mfderiv_smul {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {H : Type u_3} [TopologicalSpace H] {I : ModelWithCorners ๐•œ E H} {M : Type u_4} [TopologicalSpace M] [ChartedSpace H M] {x : M} {V : Type u_18} [NormedAddCommGroup V] [NormedSpace ๐•œ V] {f : M โ†’ ๐•œ} {g : M โ†’ V} (hf : MDiffAt f x) (hg : MDiffAt g x) :
(โ†‘(NormedSpace.fromTangentSpace ((f โ€ข g) x))).comp (mfderiv% (f โ€ข g) x) = f x โ€ข (โ†‘(NormedSpace.fromTangentSpace (g x))).comp (mfderiv% g x) + (ContinuousLinearMap.toSpanSingleton ๐•œ (g x)).comp ((โ†‘(NormedSpace.fromTangentSpace (f x))).comp (mfderiv% f x))

Given maps f, g from a manifold into a field ๐•œ and ๐•œ-vector space V, respectively, the formula for the mfderiv (differential) of their scalar multiplication f โ€ข g.

Mathematically speaking the formula is d(f โ€ข g) = f โ€ข dg + df โŠ— g, i.e. mfderiv% (f โ€ข g) x = f x โ€ข mfderiv% g x + toSpanSingleton ๐•œ (g x) โˆ˜L mfderiv% f x, but this doesn't typecheck because mfderiv% (f โ€ข g) x and mfderiv% g x take values in different tangent spaces -- respectively the tangent spaces to V at (f โ€ข g) x and g x. Of course, both these tangent spaces can be canonically identified with V.

This lemma phrases the formula using the equiv NormedSpace.fromTangentSpace, which provides this canonical identification. (It would also be possible to phrase the formula without this equiv, instead using casting and definitional abuse.)

theorem fromTangentSpace_mfderiv_smul' {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {H : Type u_3} [TopologicalSpace H] {I : ModelWithCorners ๐•œ E H} {M : Type u_4} [TopologicalSpace M] [ChartedSpace H M] {x : M} {V : Type u_18} [NormedAddCommGroup V] [NormedSpace ๐•œ V] {f : M โ†’ ๐•œ} {g : M โ†’ V} (hf : MDiffAt f x) (hg : MDiffAt g x) :
(โ†‘(NormedSpace.fromTangentSpace (f x โ€ข g x))).comp (mfderiv% (f โ€ข g) x) = f x โ€ข (โ†‘(NormedSpace.fromTangentSpace (g x))).comp (mfderiv% g x) + (ContinuousLinearMap.toSpanSingleton ๐•œ (g x)).comp ((โ†‘(NormedSpace.fromTangentSpace (f x))).comp (mfderiv% f x))

Given maps f, g from a manifold into a field ๐•œ and ๐•œ-vector space V, respectively, the formula for the mfderiv (differential) of their scalar multiplication f โ€ข g.

Mathematically speaking the formula is d(f โ€ข g) = f โ€ข dg + df โŠ— g, but to get it to typecheck we need a phrasing involving the canonical identification NormedSpace.fromTangentSpace between the vector space V and the tangent space to this vector space at any point. This is because two different tangent spaces (at (f โ€ข g) x and g x) appear in the equation.

This is a defeq variant of the main lemma fromTangentSpace_mfderiv_smul, in which we work in the tangent space at f x โ€ข g x (the simp-normal form) rather than at (f โ€ข g) x.

theorem fromTangentSpace_mfderiv_smul_apply {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {H : Type u_3} [TopologicalSpace H] {I : ModelWithCorners ๐•œ E H} {M : Type u_4} [TopologicalSpace M] [ChartedSpace H M] {x : M} {V : Type u_18} [NormedAddCommGroup V] [NormedSpace ๐•œ V] {f : M โ†’ ๐•œ} {g : M โ†’ V} (hf : MDiffAt f x) (hg : MDiffAt g x) (v : TangentSpace I x) :
(NormedSpace.fromTangentSpace ((f โ€ข g) x)) ((mfderiv% (f โ€ข g) x) v) = f x โ€ข (NormedSpace.fromTangentSpace (g x)) ((mfderiv% g x) v) + (NormedSpace.fromTangentSpace (f x)) ((mfderiv% f x) v) โ€ข g x

Given maps f, g from a manifold into a field ๐•œ and ๐•œ-vector space V, respectively, the formula for the mfderiv (differential) of their scalar multiplication f โ€ข g in the direction of the tangent vector v.

Mathematically speaking the formula is d(f โ€ข g)(v) = f โ€ข dg(v) + df(v) โ€ข g, but to get it to typecheck we need a phrasing involving the canonical identification NormedSpace.fromTangentSpace between the vector space V and the tangent space to this vector space at any point. This is because two different tangent spaces (at (f โ€ข g) x and g x) appear in the equation.

theorem fromTangentSpace_mfderiv_smul_apply' {๐•œ : Type u_1} [NontriviallyNormedField ๐•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace ๐•œ E] {H : Type u_3} [TopologicalSpace H] {I : ModelWithCorners ๐•œ E H} {M : Type u_4} [TopologicalSpace M] [ChartedSpace H M] {x : M} {V : Type u_18} [NormedAddCommGroup V] [NormedSpace ๐•œ V] {f : M โ†’ ๐•œ} {g : M โ†’ V} (hf : MDiffAt f x) (hg : MDiffAt g x) (v : TangentSpace I x) :
(NormedSpace.fromTangentSpace (f x โ€ข g x)) ((mfderiv% (f โ€ข g) x) v) = f x โ€ข (NormedSpace.fromTangentSpace (g x)) ((mfderiv% g x) v) + (NormedSpace.fromTangentSpace (f x)) ((mfderiv% f x) v) โ€ข g x

Given maps f, g from a manifold into a field ๐•œ and ๐•œ-vector space V, respectively, the formula for the mfderiv (differential) of their scalar multiplication f โ€ข g in the direction of the tangent vector v.

Mathematically speaking the formula is d(f โ€ข g)(v) = f โ€ข dg(v) + df(v) โ€ข g, but to get it to typecheck we need a phrasing involving the canonical identification NormedSpace.fromTangentSpace between the vector space V and the tangent space to this vector space at any point. This is because two different tangent spaces (at (f โ€ข g) x and g x) appear in the equation.

This is a defeq variant of the main lemma fromTangentSpace_mfderiv_smul_apply, in which we work in the tangent space at f x โ€ข g x (the simp-normal form) rather than at (f โ€ข g) x.