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.

In addition to the above, this file provides

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 : MDiff f) :
MDiff (g ∘ 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 : MDiff[s] f) :
MDiff[s] fun (y : M) => ContinuousLinearMap.precomp F₃ (f y)
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 : MDiff f) :
MDiff 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 : MDiff[s] f) :
MDiff[s] fun (y : M) => ContinuousLinearMap.postcomp F₁ (f y)
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 : MDiff f) :
MDiff 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 ∘SL 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 ∘SL 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 : MDiff[s] g) (hf : MDiff[s] f) :
MDiff[s] fun (x : M) => g x ∘SL f x
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 : MDiff g) (hf : MDiff f) :
MDiff fun (x : M) => g x ∘SL 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 : MDiff[s] g) (hf : MDiff[s] f) :
MDiff[s] fun (x : M) => (g x) (f x)
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 : MDiff g) (hf : MDiff f) :
MDiff 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 : MDiff[s] fun (x : M) => ↑(f x).symm) (hg : MDiff[s] fun (x : M) => ↑(g x)) :
MDiff[s] fun (y : M) => ↑((f y).arrowCongr (g y))
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 : MDiff fun (x : M) => ↑(f x).symm) (hg : MDiff fun (x : M) => ↑(g x)) :
MDiff 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 : MDiff[s] g) (hf : MDiff[s] f) :
MDiff[s] fun (x : M) => (g x).prodMap (f x)
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 : MDiff g) (hf : MDiff f) :
MDiff 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 ∘SL f')) {g' : TangentSpace I x β†’L[π•œ] V} (hg : HasMFDerivAt I (modelWithCornersSelf π•œ V) g x (↑(NormedSpace.fromTangentSpace (g x)).symm ∘SL 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 : MDiff[s] f) (hg : MDiff[s] g) :
MDiff[s] fun (p : M) => f p β€’ g p
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 : MDiff f) (hg : MDiff g) :
MDiff 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) :

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)) ∘SL mfderiv% (f β€’ g) x = f x β€’ ↑(NormedSpace.fromTangentSpace (g x)) ∘SL mfderiv% g x + ContinuousLinearMap.toSpanSingleton π•œ (g x) ∘SL ↑(NormedSpace.fromTangentSpace (f x)) ∘SL 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)) ∘SL mfderiv% (f β€’ g) x = f x β€’ ↑(NormedSpace.fromTangentSpace (g x)) ∘SL mfderiv% g x + ContinuousLinearMap.toSpanSingleton π•œ (g x) ∘SL ↑(NormedSpace.fromTangentSpace (f x)) ∘SL 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.

Exterior derivative of a vector-valued function #

noncomputable def mvfderiv {π•œ : 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] (g : M β†’ F) (x : M) :
TangentSpace I x β†’L[π•œ] F

The exterior derivative of a vector-valued function on M, as a section of the cotangent bundle.

Future: this could be generalised to functions into additive torsors over abelian Lie groups.

Equations
Instances For
    @[deprecated mvfderiv (since := "2026-05-17")]
    def extDerivFun {π•œ : 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] (g : M β†’ F) (x : M) :
    TangentSpace I x β†’L[π•œ] F

    Alias of mvfderiv.


    The exterior derivative of a vector-valued function on M, as a section of the cotangent bundle.

    Future: this could be generalised to functions into additive torsors over abelian Lie groups.

    Equations
    Instances For

      d% f x (scoped to the Manifold namespace) elaborates to mvfderiv I J f x, trying to determine I and J from the local context.

      Equations
      • One or more equations did not get rendered due to their size.
      Instances For

        Delaborator for mvfderiv.

        Equations
        • One or more equations did not get rendered due to their size.
        Instances For
          theorem mvfderiv_const {π•œ : 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] (c : F) {x : M} :
          (d% fun (x : M) => c) x = 0
          @[simp]
          theorem mvfderiv_add {π•œ : 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] {g g' : M β†’ F} {x : M} (hg : MDiffAt g x) (hg' : MDiffAt g' x) :
          d% (g + g') x = d% g x + d% g' x
          theorem mvfderiv_fun_add {π•œ : 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] {g g' : M β†’ F} {x : M} (hg : MDiffAt g x) (hg' : MDiffAt g' x) :
          (d% fun (i : M) => g i + g' i) x = d% g x + d% g' x

          Eta-expanded form of mvfderiv_add

          @[deprecated mvfderiv_add (since := "2026-05-17")]
          theorem extDerivFun_add {π•œ : 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] {g g' : M β†’ F} {x : M} (hg : MDiffAt g x) (hg' : MDiffAt g' x) :
          d% (g + g') x = d% g x + d% g' x

          Alias of mvfderiv_add.

          @[simp]
          theorem mvfderiv_sub {π•œ : 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] {g g' : M β†’ F} {x : M} (hg : MDiffAt g x) (hg' : MDiffAt g' x) :
          d% (g - g') x = d% g x - d% g' x
          theorem mvfderiv_fun_sub {π•œ : 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] {g g' : M β†’ F} {x : M} (hg : MDiffAt g x) (hg' : MDiffAt g' x) :
          (d% fun (i : M) => g i - g' i) x = d% g x - d% g' x

          Eta-expanded form of mvfderiv_sub

          @[simp]
          theorem mvfderiv_neg {π•œ : 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] {g : M β†’ F} {x : M} :
          d% (-g) x = -d% g x
          theorem mvfderiv_fun_neg {π•œ : 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] {g : M β†’ F} {x : M} :
          (d% fun (i : M) => -g i) x = -d% g x

          Eta-expanded form of mvfderiv_neg

          @[simp]
          theorem mvfderiv_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] {F : Type u_8} [NormedAddCommGroup F] [NormedSpace π•œ F] {x : M} {a : M β†’ π•œ} (ha : MDiffAt a x) {g : M β†’ F} (hg : MDiffAt g x) :
          d% (a β€’ g) x = a x β€’ d% g x + (d% a x).smulRight (g x)
          theorem mvfderiv_fun_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] {F : Type u_8} [NormedAddCommGroup F] [NormedSpace π•œ F] {x : M} {a : M β†’ π•œ} (ha : MDiffAt a x) {g : M β†’ F} (hg : MDiffAt g x) :
          (d% fun (i : M) => a i β€’ g i) x = a x β€’ d% g x + (d% a x).smulRight (g x)

          Eta-expanded form of mvfderiv_smul

          @[simp]
          theorem mvfderiv_mul {π•œ : 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 g : M β†’ π•œ} {x : M} (hf : MDiffAt f x) (hg : MDiffAt g x) :
          d% (f * g) x = f x β€’ d% g x + g x β€’ d% f x
          theorem mvfderiv_fun_mul {π•œ : 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 g : M β†’ π•œ} {x : M} (hf : MDiffAt f x) (hg : MDiffAt g x) :
          (d% fun (i : M) => f i * g i) x = f x β€’ d% g x + g x β€’ d% f x

          Eta-expanded form of mvfderiv_mul

          @[simp]
          theorem mvfderiv_zero {π•œ : 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] {x : M} :
          d% 0 x = 0
          @[deprecated mvfderiv_zero (since := "2026-05-17")]
          theorem extDerivFun_zero {π•œ : 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] {x : M} :
          d% 0 x = 0

          Alias of mvfderiv_zero.