Documentation

TauCeti.Geometry.Manifold.MFDeriv.NormedSpace

Derivatives of vector-valued functions #

For a function g from a manifold to a normed space F, Mathlib has two derivatives at x: mfderiv I π“˜(π•œ, F) g x, with values in the tangent space TangentSpace π“˜(π•œ, F) (g x), and mvfderiv I g x, with values in F itself. They differ by the identification of the tangent space with F. The canonical identification relates their vanishing, injectivity and ranges.

Main results #

theorem NormedSpace.fromTangentSpace_apply {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace π•œ E] (x : E) (v : TangentSpace (modelWithCornersSelf π•œ E) x) :

The canonical model-space tangent identification preserves the underlying vector. Use this equation explicitly: automatic simplification can change an equality's codomain from the tangent fibre to the model, whose normed-space instances are distinct.

theorem NormedSpace.fromTangentSpace_symm_apply {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace π•œ E] (x v : E) :

The inverse model-space tangent identification preserves the underlying vector. As with fromTangentSpace_apply, this equation is for explicit tangent/model conversions.

theorem TauCeti.mvfderiv_eq_fderiv_apply {π•œ : Type u_1} [NontriviallyNormedField π•œ] {F : Type u_5} [NormedAddCommGroup F] [NormedSpace π•œ F] {F' : Type u_6} [NormedAddCommGroup F'] [NormedSpace π•œ F'] (f : F β†’ F') (x : F) (v : TangentSpace (modelWithCornersSelf π•œ F) x) :
(d% f x) v = (fderiv π•œ f x) v

For maps between normed spaces, the vector-valued manifold derivative applied to a tangent vector is the FrΓ©chet derivative applied to the same vector. Not @[simp]: mvfderiv_eq_fderiv already rewrites the left-hand side.

@[simp]
theorem mvfderiv_apply_eq_mfderiv_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_5} [NormedAddCommGroup F] [NormedSpace π•œ F] (f : M β†’ F) (x : M) (v : TangentSpace I x) :
(d% f x) v = (mfderiv% f x) v

For a normed vector-space target, evaluating mvfderiv agrees with evaluating mfderiv under the canonical tangent-space identification.

@[simp]
theorem Submodule.map_mvfderiv_eq_map_mfderiv {π•œ : 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_5} [NormedAddCommGroup F] [NormedSpace π•œ F] {x : M} (S : Submodule π•œ (TangentSpace I x)) (f : M β†’ F) :
map (↑(d% f x)) S = map (↑(mfderiv% f x)) S

The image of a tangent submodule under the vector-valued derivative agrees with its image under the manifold derivative into the self model of the target.

theorem Filter.EventuallyEq.mvfderiv_eq {π•œ : 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_5} [NormedAddCommGroup F] [NormedSpace π•œ F] {f₁ f : M β†’ F} {x : M} (hf : f₁ =αΆ [nhds x] f) :
d% f₁ x = d% f x

The derivative at x of a vector-valued function, read in the target space, depends only on the germ of the function at x.

theorem TauCeti.mvfderiv_apply_of_eventuallyEq_extChartAt {π•œ : 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] [IsManifold I 1 M] {f : M β†’ E} {x : M} (hf : f =αΆ [nhds x] ↑(extChartAt I x)) (v : TangentSpace I x) :
(d% f x) v = v

A map into the model space with the germ of the extended chart at x has the identity as derivative at x, a tangent vector at x being read as a vector of the model space.

theorem TauCeti.mvfderiv_comp_apply_of_differentiableAt {π•œ : 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_5} [NormedAddCommGroup F] [NormedSpace π•œ F] {F' : Type u_6} [NormedAddCommGroup F'] [NormedSpace π•œ F'] {g : M β†’ F} {Ο† : F β†’ F'} {x : M} (hΟ† : DifferentiableAt π•œ Ο† (g x)) (hg : MDiffAt g x) (v : TangentSpace I x) :
(d% (Ο† ∘ g) x) v = (fderiv π•œ Ο† (g x)) ((d% g x) v)

The chain rule for a vector-valued function on a manifold followed by a map between normed spaces that is differentiable at the relevant point, evaluated on a tangent vector.

theorem TauCeti.mvfderiv_scalar_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] {g : M β†’ π•œ} {Ο† : π•œ β†’ π•œ} {x : M} (hg : MDiffAt g x) (hΟ† : DifferentiableAt π•œ Ο† (g x)) :
d% (Ο† ∘ g) x = deriv Ο† (g x) β€’ d% g x

The chain rule for a scalar function on a manifold followed by a scalar function differentiable at the relevant point: the derivative is scaled by Ο†'(g x).

theorem ContinuousLinearMap.mvfderiv_comp_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_5} [NormedAddCommGroup F] [NormedSpace π•œ F] {F' : Type u_6} [NormedAddCommGroup F'] [NormedSpace π•œ F'] (L : F β†’L[π•œ] F') {g : M β†’ F} {x : M} (hg : MDiffAt g x) (v : TangentSpace I x) :
(d% (⇑L ∘ g) x) v = L ((d% g x) v)

The chain rule for a vector-valued function on a manifold followed by a continuous linear map, evaluated on a tangent vector: the derivative of L ∘ g is L applied to the derivative of g.

theorem MDifferentiableAt.mvfderiv_prod_eq_add_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_6} [NormedAddCommGroup F'] [NormedSpace π•œ F'] {E' : Type u_7} [NormedAddCommGroup E'] [NormedSpace π•œ E'] {H' : Type u_8} [TopologicalSpace H'] {I' : ModelWithCorners π•œ E' H'} {M' : Type u_9} [TopologicalSpace M'] [ChartedSpace H' M'] {f : M Γ— M' β†’ F'} {p : M Γ— M'} (hf : MDiffAt f p) (v : TangentSpace (I.prod I') p) :
(d% f p) v = ((d% fun (y : M) => f (y, p.2)) p.1) v.1 + ((d% fun (y : M') => f (p.1, y)) p.2) v.2

The vector-valued derivative on a product is the sum of its partial derivatives.

theorem MDifferentiableAt.mfderiv_prodMk_id_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_5} [NormedAddCommGroup F] [NormedSpace π•œ F] {u : F β†’ M} {x : F} (hu : MDiffAt u x) (v : TangentSpace (modelWithCornersSelf π•œ F) x) :
((mfderiv% fun (y : F) => (y, u y)) x) v = (v, (mfderiv% u x) v)

The derivative of a graph map, evaluated in the product tangent space.

theorem TauCeti.fderiv_comp_graph_apply_of_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_5} [NormedAddCommGroup F] [NormedSpace π•œ F] {F' : Type u_6} [NormedAddCommGroup F'] [NormedSpace π•œ F'] {u : F β†’ M} {f : F β†’ M β†’ F'} {x : F} (hu : MDiffAt u x) (hf : MDiffAt (Function.uncurry f) (x, u x)) (v : F) :
(fderiv π•œ (fun (y : F) => f y (u y)) x) v = (fderiv π•œ (fun (y : F) => f y (u x)) x) v + (d% (f x) (u x)) ((mfderiv% u x) v)

The chain rule along the graph of a manifold-valued map on a normed space, splitting the result into the derivative in the domain variable and the derivative in the manifold variable.

theorem TauCeti.continuous_fderiv_of_contMDiff {π•œ : 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_5} [NormedAddCommGroup F] [NormedSpace π•œ F] {F' : Type u_6} [NormedAddCommGroup F'] [NormedSpace π•œ F'] {u : F β†’ M} {f : F β†’ M β†’ F'} (hu : ContMDiff (modelWithCornersSelf π•œ F) I 1 u) (hf : ContMDiff ((modelWithCornersSelf π•œ F).prod I) (modelWithCornersSelf π•œ F') 1 (Function.uncurry f)) :
Continuous fun (y : F) => fderiv π•œ (fun (w : F) => f w (u y)) y

Along a CΒΉ map u : F β†’ M from a normed space to a manifold, the derivative in the domain variable of a CΒΉ family f : F β†’ M β†’ F', taken at (y, u y), depends continuously on y. It is a partial derivative of the CΒΉ map (w, y) ↦ f w (u y) on F Γ— F.

theorem TauCeti.mvfderiv_const_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_5} [NormedAddCommGroup F] [NormedSpace π•œ F] {R : Type u_7} [Semiring R] [Module R F] [SMulCommClass π•œ R F] [ContinuousConstSMul R F] {g : M β†’ F} {x : M} (hg : MDiffAt g x) (c : R) :
(d% fun (y : M) => c β€’ g y) x = c β€’ d% g x

The derivative of a vector-valued function, read in the target space, commutes with multiplication by a constant scalar acting continuously on the target, such as a complex scalar on a complex normed space regarded as a real one.

@[simp]
theorem TauCeti.mvfderiv_const_smul_field {π•œ : 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_5} [NormedAddCommGroup F] [NormedSpace π•œ F] (g : M β†’ F) (x : M) (c : π•œ) :
d% (c β€’ g) x = c β€’ d% g x

A version of TauCeti.mvfderiv_const_smul without differentiability hypothesis, for a scalar in the base field: the derivative of a vector-valued function, read in the target space, commutes with multiplication by any constant.

theorem TauCeti.mvfderiv_fun_sum {π•œ : 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_5} [NormedAddCommGroup F] [NormedSpace π•œ F] {ΞΉ : Type u_7} {u : Finset ΞΉ} {f : ΞΉ β†’ M β†’ F} {x : M} (hf : βˆ€ i ∈ u, MDiffAt (f i) x) :
(d% fun (y : M) => βˆ‘ i ∈ u, f i y) x = βˆ‘ i ∈ u, d% (f i) x

The derivative of a finite sum of vector-valued functions, read in the target space, is the sum of their derivatives at a point where each summand is differentiable. This is the manifold version of fderiv_fun_sum.

theorem TauCeti.range_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_5} [NormedAddCommGroup F] [NormedSpace π•œ F] {g : M β†’ F} {x : M} :
(↑(d% g x)).range = Submodule.map (↑↑(NormedSpace.fromTangentSpace (g x))) (↑(mfderiv% g x)).range

The range of the vector-valued derivative is the image of the manifold derivative's range under the canonical identification of the target tangent space with its model.

theorem TauCeti.mvfderiv_eq_zero_iff {π•œ : 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_5} [NormedAddCommGroup F] [NormedSpace π•œ F] {g : M β†’ F} {x : M} :
d% g x = 0 ↔ mfderiv% g x = 0

The derivative of a vector-valued function, read in the target space, vanishes exactly when its manifold derivative does.

theorem TauCeti.injective_mvfderiv_iff {π•œ : 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_5} [NormedAddCommGroup F] [NormedSpace π•œ F] {g : M β†’ F} {x : M} :
Function.Injective ⇑(d% g x) ↔ Function.Injective ⇑(mfderiv% g x)

The derivative of a vector-valued function, read in the target space, is injective if and only if its manifold derivative is.

theorem TauCeti.mdifferentiableAt_of_mvfderiv_apply_ne_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_5} [NormedAddCommGroup F] [NormedSpace π•œ F] {g : M β†’ F} {x : M} {v : TangentSpace I x} (h : (d% g x) v β‰  0) :
MDiffAt g x

A vector-valued function whose derivative does not vanish on some tangent vector is differentiable there.

@[simp]
theorem TauCeti.mfderiv_neg_eq_zero_iff {π•œ : 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_5} [NormedAddCommGroup F] [NormedSpace π•œ F] {g : M β†’ F} {x : M} :
mfderiv% (-g) x = 0 ↔ mfderiv% g x = 0

The derivative of -g vanishes at x if and only if the derivative of g does.

theorem TauCeti.mvfderiv_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] {ΞΉ : Type u_7} [Fintype ΞΉ] {F'' : ΞΉ β†’ Type u_8} [(i : ΞΉ) β†’ NormedAddCommGroup (F'' i)] [(i : ΞΉ) β†’ NormedSpace π•œ (F'' i)] {Ξ¦ : M β†’ (i : ΞΉ) β†’ F'' i} {x : M} (hΞ¦ : MDiffAt Ξ¦ x) (i : ΞΉ) :
(d% fun (y : M) => Φ y i) x = ContinuousLinearMap.proj i ∘SL d% Φ x

The derivative of a component of a function into a finite product of normed spaces is the component of its derivative, at a point where the function is differentiable. This is the manifold version of fderiv_apply.

theorem TauCeti.mfderiv_apply_eq_zero_of_const_line {π•œ : 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_5} [NormedAddCommGroup F] [NormedSpace π•œ F] {f : F β†’ M} {z w : F} (hconst : βˆ€ (t : π•œ), f (z + t β€’ w) = f z) :
(mfderiv% f z) w = 0

The derivative of a map from a normed space vanishes on a direction w along which the map is constant.