Documentation

TauCeti.Geometry.Manifold.MFDeriv.Prod

Derivatives of maps that factor through a projection #

A map g ∘ Prod.fst on a product M × N depends on the first factor only, and its derivative at p is the derivative of g at p.1 applied to the first component of a tangent vector; similarly for g ∘ Prod.snd. No differentiability hypothesis is needed: when g is not differentiable at p.1, neither is g ∘ Prod.fst at p, since g is recovered from it by composing with x ↦ (x, p.2), so both derivatives vanish.

These are the chain-rule identities used to differentiate functions of one factor along vector fields on a product manifold.

Main results #

theorem TauCeti.mfderiv_comp_fst {𝕜 : 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] {E' : Type u_5} [NormedAddCommGroup E'] [NormedSpace 𝕜 E'] {H' : Type u_6} [TopologicalSpace H'] {J : ModelWithCorners 𝕜 E' H'} {N : Type u_7} [TopologicalSpace N] [ChartedSpace H' N] {E'' : Type u_8} [NormedAddCommGroup E''] [NormedSpace 𝕜 E''] {H'' : Type u_9} [TopologicalSpace H''] {I'' : ModelWithCorners 𝕜 E'' H''} {M'' : Type u_10} [TopologicalSpace M''] [ChartedSpace H'' M''] (g : M → M'') (p : M × N) :
mfderiv% (g ∘ Prod.fst) p = mfderiv% g p.1 ∘SL ContinuousLinearMap.fst 𝕜 (TangentSpace I p.1) (TangentSpace J p.2)

The derivative of g ∘ Prod.fst at p is the derivative of g at p.1 applied to the first component. No differentiability is needed: both sides vanish when g is not differentiable.

theorem TauCeti.mfderiv_comp_snd {𝕜 : 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] {E' : Type u_5} [NormedAddCommGroup E'] [NormedSpace 𝕜 E'] {H' : Type u_6} [TopologicalSpace H'] {J : ModelWithCorners 𝕜 E' H'} {N : Type u_7} [TopologicalSpace N] [ChartedSpace H' N] {E'' : Type u_8} [NormedAddCommGroup E''] [NormedSpace 𝕜 E''] {H'' : Type u_9} [TopologicalSpace H''] {I'' : ModelWithCorners 𝕜 E'' H''} {M'' : Type u_10} [TopologicalSpace M''] [ChartedSpace H'' M''] (g : N → M'') (p : M × N) :
mfderiv% (g ∘ Prod.snd) p = mfderiv% g p.2 ∘SL ContinuousLinearMap.snd 𝕜 (TangentSpace I p.1) (TangentSpace J p.2)

The derivative of g ∘ Prod.snd at p is the derivative of g at p.2 applied to the second component. No differentiability is needed: both sides vanish when g is not differentiable.

theorem TauCeti.mfderiv_snd_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] {E' : Type u_5} [NormedAddCommGroup E'] [NormedSpace 𝕜 E'] {H' : Type u_6} [TopologicalSpace H'] {J : ModelWithCorners 𝕜 E' H'} {N : Type u_7} [TopologicalSpace N] [ChartedSpace H' N] (p : M × N) (v : TangentSpace (I.prod J) p) :
(mfderiv% Prod.snd p) v = v.2

The derivative of the second projection sends a tangent vector on a product to its second component.

theorem TauCeti.mfderiv_swap {𝕜 : 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] {E' : Type u_5} [NormedAddCommGroup E'] [NormedSpace 𝕜 E'] {H' : Type u_6} [TopologicalSpace H'] {J : ModelWithCorners 𝕜 E' H'} {N : Type u_7} [TopologicalSpace N] [ChartedSpace H' N] (p : M × N) :

The derivative of the exchange of factors Prod.swap : M × N → N × M exchanges the two components of a tangent vector.

theorem TauCeti.mvfderiv_comp_fst_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] {E' : Type u_5} [NormedAddCommGroup E'] [NormedSpace 𝕜 E'] {H' : Type u_6} [TopologicalSpace H'] {J : ModelWithCorners 𝕜 E' H'} {N : Type u_7} [TopologicalSpace N] [ChartedSpace H' N] {F : Type u_11} [NormedAddCommGroup F] [NormedSpace 𝕜 F] (g : M → F) (p : M × N) (v : TangentSpace (I.prod J) p) :
(d% (g ∘ Prod.fst) p) v = (d% g p.1) v.1

The derivative of a vector-valued function of the first factor, read on a product.

theorem TauCeti.mvfderiv_comp_snd_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] {E' : Type u_5} [NormedAddCommGroup E'] [NormedSpace 𝕜 E'] {H' : Type u_6} [TopologicalSpace H'] {J : ModelWithCorners 𝕜 E' H'} {N : Type u_7} [TopologicalSpace N] [ChartedSpace H' N] {F : Type u_11} [NormedAddCommGroup F] [NormedSpace 𝕜 F] (g : N → F) (p : M × N) (v : TangentSpace (I.prod J) p) :
(d% (g ∘ Prod.snd) p) v = (d% g p.2) v.2

The derivative of a vector-valued function of the second factor, read on a product.

theorem TauCeti.mvfderiv_comp_fst_mul_comp_snd_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] {E' : Type u_5} [NormedAddCommGroup E'] [NormedSpace 𝕜 E'] {H' : Type u_6} [TopologicalSpace H'] {J : ModelWithCorners 𝕜 E' H'} {N : Type u_7} [TopologicalSpace N] [ChartedSpace H' N] {g : M → 𝕜} {h : N → 𝕜} {p : M × N} (hg : MDiffAt g p.1) (hh : MDiffAt h p.2) (v : TangentSpace (I.prod J) p) :
((d% fun (q : M × N) => g q.1 * h q.2) p) v = (d% g p.1) v.1 * h p.2 + g p.1 * (d% h p.2) v.2

Product rule on a product. The derivative of (x, y) ↦ g x * h y sends a tangent vector (u, w) at p to dg(u) * h p.2 + g p.1 * dh(w).

theorem TauCeti.mvfderiv_comp_snd_apply_eq_smul_deriv {𝕜 : 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_11} [NormedAddCommGroup F] [NormedSpace 𝕜 F] (g : 𝕜 → F) (p : M × 𝕜) (v : TangentSpace (I.prod (modelWithCornersSelf 𝕜 𝕜)) p) :
(d% (g ∘ Prod.snd) p) v = v.2 • deriv g p.2

The derivative of a vector-valued function of a scalar second factor, read on a product: the scalar component v.2 of a tangent vector is sent to v.2 • g'(p.2).

theorem TauCeti.mvfderiv_curry_right {𝕜 : 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] {E' : Type u_5} [NormedAddCommGroup E'] [NormedSpace 𝕜 E'] {H' : Type u_6} [TopologicalSpace H'] {J : ModelWithCorners 𝕜 E' H'} {N : Type u_7} [TopologicalSpace N] [ChartedSpace H' N] {F : Type u_11} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {f : M × N → F} (p : M) (x : N) (hf : MDiffAt f (p, x)) :

The derivative of a slice with fixed first coordinate is the product derivative composed with the inclusion of the second tangent factor.

theorem HasDerivAt.mvfderiv_comp_fst_apply {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {E' : Type u_5} [NormedAddCommGroup E'] [NormedSpace 𝕜 E'] {H' : Type u_6} [TopologicalSpace H'] {J : ModelWithCorners 𝕜 E' H'} {N : Type u_7} [TopologicalSpace N] [ChartedSpace H' N] {F : Type u_11} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {g : 𝕜 → F} {g' : F} {p : 𝕜 × N} (hg : HasDerivAt g g' p.1) (v : TangentSpace ((modelWithCornersSelf 𝕜 𝕜).prod J) p) :
(d% (g ∘ Prod.fst) p) v = (NormedSpace.fromTangentSpace p.1) v.1 • g'

The derivative of a function of the scalar coordinate of 𝕜 × N, with derivative g' at p.1, sends a tangent vector (s, v) at p to s • g'.

theorem TauCeti.mfderiv_prodMap_comp_prodMkLeft {𝕜 : 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] {E' : Type u_5} [NormedAddCommGroup E'] [NormedSpace 𝕜 E'] {H' : Type u_6} [TopologicalSpace H'] {J : ModelWithCorners 𝕜 E' H'} {N : Type u_7} [TopologicalSpace N] [ChartedSpace H' N] {E'' : Type u_8} [NormedAddCommGroup E''] [NormedSpace 𝕜 E''] {H'' : Type u_9} [TopologicalSpace H''] {I'' : ModelWithCorners 𝕜 E'' H''} {M'' : Type u_10} [TopologicalSpace M''] [ChartedSpace H'' M''] {F' : Type u_12} [NormedAddCommGroup F'] [NormedSpace 𝕜 F'] {G' : Type u_13} [TopologicalSpace G'] {J'' : ModelWithCorners 𝕜 F' G'} {N'' : Type u_14} [TopologicalSpace N''] [ChartedSpace G' N''] {f : M → M''} {g : N → N''} {x : M} {y : N} (hg : MDiffAt g y) :
mfderiv% (Prod.map f g) (x, y) ∘SL (mfderiv% fun (x' : M) => (x', y)) x = (mfderiv% fun (x' : M'') => (x', g y)) (f x) ∘SL mfderiv% f x

Composing the differential of Prod.map f g at (x, y) with the differential of the horizontal slice inclusion x' ↦ (x', y) equals the differential of x' ↦ (x', g y) composed with df_x. Differentiability is needed only for g at y: when f is not differentiable at x, neither is Prod.map f g at (x, y), so both sides vanish.

theorem TauCeti.mfderiv_prodMap_comp_prodMkRight {𝕜 : 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] {E' : Type u_5} [NormedAddCommGroup E'] [NormedSpace 𝕜 E'] {H' : Type u_6} [TopologicalSpace H'] {J : ModelWithCorners 𝕜 E' H'} {N : Type u_7} [TopologicalSpace N] [ChartedSpace H' N] {E'' : Type u_8} [NormedAddCommGroup E''] [NormedSpace 𝕜 E''] {H'' : Type u_9} [TopologicalSpace H''] {I'' : ModelWithCorners 𝕜 E'' H''} {M'' : Type u_10} [TopologicalSpace M''] [ChartedSpace H'' M''] {F' : Type u_12} [NormedAddCommGroup F'] [NormedSpace 𝕜 F'] {G' : Type u_13} [TopologicalSpace G'] {J'' : ModelWithCorners 𝕜 F' G'} {N'' : Type u_14} [TopologicalSpace N''] [ChartedSpace G' N''] {f : M → M''} {g : N → N''} {x : M} {y : N} (hf : MDiffAt f x) :
mfderiv% (Prod.map f g) (x, y) ∘SL (mfderiv% fun (y' : N) => (x, y')) y = (mfderiv% fun (y' : N'') => (f x, y')) (g y) ∘SL mfderiv% g y

Composing the differential of Prod.map f g at (x, y) with the differential of the vertical slice inclusion y' ↦ (x, y') equals the differential of y' ↦ (f x, y') composed with dg_y. Differentiability is needed only for f at x: when g is not differentiable at y, neither is Prod.map f g at (x, y), so both sides vanish.

theorem MDifferentiableAt.hasLeftInverse_mfderiv_fst_prod_iff {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {E : Type u_2} {E' : Type u_3} {F : Type u_4} [NormedAddCommGroup E] [NormedSpace 𝕜 E] [NormedAddCommGroup E'] [NormedSpace 𝕜 E'] [NormedAddCommGroup F] [NormedSpace 𝕜 F] {H : Type u_5} {H' : Type u_6} {G : Type u_7} [TopologicalSpace H] [TopologicalSpace H'] [TopologicalSpace G] {I : ModelWithCorners 𝕜 E H} {I' : ModelWithCorners 𝕜 E' H'} {J : ModelWithCorners 𝕜 F G} {M : Type u_8} {M' : Type u_9} {N : Type u_10} [TopologicalSpace M] [ChartedSpace H M] [TopologicalSpace M'] [ChartedSpace H' M'] [TopologicalSpace N] [ChartedSpace G N] {f : M × M' → N} {p : M × M'} (hf : MDiffAt f p) :
((mfderiv% fun (q : M × M') => (q.1, f q)) p).HasLeftInverse ↔ ((mfderiv% fun (x : M') => f (p.1, x)) p.2).HasLeftInverse

The differential of a parameter-preserving map has a continuous linear left inverse if and only if the differential of its slice at the fixed parameter does. This holds for manifolds with corners and infinite-dimensional models.

theorem MDifferentiableAt.mfderiv_fst_apply {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {E : Type u_2} {F : Type u_3} {F' : Type u_4} [NormedAddCommGroup E] [NormedSpace 𝕜 E] [NormedAddCommGroup F] [NormedSpace 𝕜 F] [NormedAddCommGroup F'] [NormedSpace 𝕜 F'] {H : Type u_6} {G : Type u_7} {G' : Type u_8} [TopologicalSpace H] [TopologicalSpace G] [TopologicalSpace G'] {I : ModelWithCorners 𝕜 E H} {J : ModelWithCorners 𝕜 F G} {J' : ModelWithCorners 𝕜 F' G'} {M : Type u_10} {N : Type u_11} {N' : Type u_12} [TopologicalSpace M] [ChartedSpace H M] [TopologicalSpace N] [ChartedSpace G N] [TopologicalSpace N'] [ChartedSpace G' N'] {f : M → N × N'} {x : M} (hf : MDiffAt f x) (v : TangentSpace I x) :
((mfderiv% fun (y : M) => (f y).1) x) v = ((mfderiv% f x) v).1

The differential of the first coordinate of a map into a product is the first coordinate of its differential.

theorem MDifferentiableAt.mfderiv_snd_apply {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {E : Type u_2} {F : Type u_3} {F' : Type u_4} [NormedAddCommGroup E] [NormedSpace 𝕜 E] [NormedAddCommGroup F] [NormedSpace 𝕜 F] [NormedAddCommGroup F'] [NormedSpace 𝕜 F'] {H : Type u_6} {G : Type u_7} {G' : Type u_8} [TopologicalSpace H] [TopologicalSpace G] [TopologicalSpace G'] {I : ModelWithCorners 𝕜 E H} {J : ModelWithCorners 𝕜 F G} {J' : ModelWithCorners 𝕜 F' G'} {M : Type u_10} {N : Type u_11} {N' : Type u_12} [TopologicalSpace M] [ChartedSpace H M] [TopologicalSpace N] [ChartedSpace G N] [TopologicalSpace N'] [ChartedSpace G' N'] {f : M → N × N'} {x : M} (hf : MDiffAt f x) (v : TangentSpace I x) :
((mfderiv% fun (y : M) => (f y).2) x) v = ((mfderiv% f x) v).2

The differential of the second coordinate of a map into a product is the second coordinate of its differential.

theorem MDifferentiableAt.mfderiv_snd_eq_mfderiv_fst_of_fiberProduct {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {E : Type u_2} {F : Type u_3} {F' : Type u_4} {F'' : Type u_5} [NormedAddCommGroup E] [NormedSpace 𝕜 E] [NormedAddCommGroup F] [NormedSpace 𝕜 F] [NormedAddCommGroup F'] [NormedSpace 𝕜 F'] [NormedAddCommGroup F''] [NormedSpace 𝕜 F''] {H : Type u_6} {G : Type u_7} {G' : Type u_8} {G'' : Type u_9} [TopologicalSpace H] [TopologicalSpace G] [TopologicalSpace G'] [TopologicalSpace G''] {I : ModelWithCorners 𝕜 E H} {J : ModelWithCorners 𝕜 F G} {J' : ModelWithCorners 𝕜 F' G'} {J'' : ModelWithCorners 𝕜 F'' G''} {M : Type u_10} {N : Type u_11} {N' : Type u_12} {N'' : Type u_13} [TopologicalSpace M] [ChartedSpace H M] [TopologicalSpace N] [ChartedSpace G N] [TopologicalSpace N'] [ChartedSpace G' N'] [TopologicalSpace N''] [ChartedSpace G'' N''] {f : M → N × N'} {x : M} {g : M → N' × N''} (hf : MDiffAt f x) (hg : MDiffAt g x) (hfg : ∀ (y : M), (f y).2 = (g y).1) (v : TangentSpace I x) :
((mfderiv% f x) v).2 = ((mfderiv% g x) v).1

Differentiating a fibre-product condition: if the second coordinate of f agrees everywhere with the first coordinate of g, then so do the corresponding coordinates of their differentials.