Documentation

Mathlib.Analysis.Calculus.FDeriv.Mul

Multiplicative operations on derivatives #

For detailed documentation of the Fréchet derivative, see the module docstring of Mathlib/Analysis/Calculus/FDeriv/Basic.lean.

This file contains the usual formulas (and existence assertions) for the derivative of

Derivative of the product of a scalar-valued function and a vector-valued function #

If c is a differentiable scalar-valued function and f is a differentiable vector-valued function, then fun x ↦ c x • f x is differentiable as well. Lemmas in this section work for functions c taking values in the base field, as well as in a normed algebra over the base field: e.g., they work for c : E → ℂ and f : E → F provided that F is a complex normed vector space.

theorem HasStrictFDerivAt.smul {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {F : Type u_3} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {f : E → F} {f' : E →L[𝕜] F} {x : E} {𝕜' : Type u_5} [NormedRing 𝕜'] [NormedAlgebra 𝕜 𝕜'] [Module 𝕜' F] [IsBoundedSMul 𝕜' F] [IsScalarTower 𝕜 𝕜' F] {c : E → 𝕜'} {c' : E →L[𝕜] 𝕜'} (hc : HasStrictFDerivAt c c' x) (hf : HasStrictFDerivAt f f' x) :
HasStrictFDerivAt (c • f) (c x • f' + c'.smulRight (f x)) x
theorem HasStrictFDerivAt.fun_smul {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {F : Type u_3} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {f : E → F} {f' : E →L[𝕜] F} {x : E} {𝕜' : Type u_5} [NormedRing 𝕜'] [NormedAlgebra 𝕜 𝕜'] [Module 𝕜' F] [IsBoundedSMul 𝕜' F] [IsScalarTower 𝕜 𝕜' F] {c : E → 𝕜'} {c' : E →L[𝕜] 𝕜'} (hc : HasStrictFDerivAt c c' x) (hf : HasStrictFDerivAt f f' x) :
HasStrictFDerivAt (fun (i : E) => c i • f i) (c x • f' + c'.smulRight (f x)) x

Eta-expanded form of HasStrictFDerivAt.smul

theorem HasFDerivWithinAt.smul {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {F : Type u_3} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {f : E → F} {f' : E →L[𝕜] F} {x : E} {s : Set E} {𝕜' : Type u_5} [NormedRing 𝕜'] [NormedAlgebra 𝕜 𝕜'] [Module 𝕜' F] [IsBoundedSMul 𝕜' F] [IsScalarTower 𝕜 𝕜' F] {c : E → 𝕜'} {c' : E →L[𝕜] 𝕜'} (hc : HasFDerivWithinAt c c' s x) (hf : HasFDerivWithinAt f f' s x) :
HasFDerivWithinAt (c • f) (c x • f' + c'.smulRight (f x)) s x
theorem HasFDerivWithinAt.fun_smul {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {F : Type u_3} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {f : E → F} {f' : E →L[𝕜] F} {x : E} {s : Set E} {𝕜' : Type u_5} [NormedRing 𝕜'] [NormedAlgebra 𝕜 𝕜'] [Module 𝕜' F] [IsBoundedSMul 𝕜' F] [IsScalarTower 𝕜 𝕜' F] {c : E → 𝕜'} {c' : E →L[𝕜] 𝕜'} (hc : HasFDerivWithinAt c c' s x) (hf : HasFDerivWithinAt f f' s x) :
HasFDerivWithinAt (fun (i : E) => c i • f i) (c x • f' + c'.smulRight (f x)) s x

Eta-expanded form of HasFDerivWithinAt.smul

theorem HasFDerivAt.smul {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {F : Type u_3} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {f : E → F} {f' : E →L[𝕜] F} {x : E} {𝕜' : Type u_5} [NormedRing 𝕜'] [NormedAlgebra 𝕜 𝕜'] [Module 𝕜' F] [IsBoundedSMul 𝕜' F] [IsScalarTower 𝕜 𝕜' F] {c : E → 𝕜'} {c' : E →L[𝕜] 𝕜'} (hc : HasFDerivAt c c' x) (hf : HasFDerivAt f f' x) :
HasFDerivAt (c • f) (c x • f' + c'.smulRight (f x)) x
theorem HasFDerivAt.fun_smul {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {F : Type u_3} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {f : E → F} {f' : E →L[𝕜] F} {x : E} {𝕜' : Type u_5} [NormedRing 𝕜'] [NormedAlgebra 𝕜 𝕜'] [Module 𝕜' F] [IsBoundedSMul 𝕜' F] [IsScalarTower 𝕜 𝕜' F] {c : E → 𝕜'} {c' : E →L[𝕜] 𝕜'} (hc : HasFDerivAt c c' x) (hf : HasFDerivAt f f' x) :
HasFDerivAt (fun (i : E) => c i • f i) (c x • f' + c'.smulRight (f x)) x

Eta-expanded form of HasFDerivAt.smul

theorem DifferentiableWithinAt.smul {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {F : Type u_3} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {f : E → F} {x : E} {s : Set E} {𝕜' : Type u_5} [NormedRing 𝕜'] [NormedAlgebra 𝕜 𝕜'] [Module 𝕜' F] [IsBoundedSMul 𝕜' F] [IsScalarTower 𝕜 𝕜' F] {c : E → 𝕜'} (hc : DifferentiableWithinAt 𝕜 c s x) (hf : DifferentiableWithinAt 𝕜 f s x) :
theorem DifferentiableWithinAt.fun_smul {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {F : Type u_3} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {f : E → F} {x : E} {s : Set E} {𝕜' : Type u_5} [NormedRing 𝕜'] [NormedAlgebra 𝕜 𝕜'] [Module 𝕜' F] [IsBoundedSMul 𝕜' F] [IsScalarTower 𝕜 𝕜' F] {c : E → 𝕜'} (hc : DifferentiableWithinAt 𝕜 c s x) (hf : DifferentiableWithinAt 𝕜 f s x) :
DifferentiableWithinAt 𝕜 (fun (i : E) => c i • f i) s x

Eta-expanded form of DifferentiableWithinAt.smul

@[simp]
theorem DifferentiableAt.smul {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {F : Type u_3} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {f : E → F} {x : E} {𝕜' : Type u_5} [NormedRing 𝕜'] [NormedAlgebra 𝕜 𝕜'] [Module 𝕜' F] [IsBoundedSMul 𝕜' F] [IsScalarTower 𝕜 𝕜' F] {c : E → 𝕜'} (hc : DifferentiableAt 𝕜 c x) (hf : DifferentiableAt 𝕜 f x) :
DifferentiableAt 𝕜 (c • f) x
@[simp]
theorem DifferentiableAt.fun_smul {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {F : Type u_3} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {f : E → F} {x : E} {𝕜' : Type u_5} [NormedRing 𝕜'] [NormedAlgebra 𝕜 𝕜'] [Module 𝕜' F] [IsBoundedSMul 𝕜' F] [IsScalarTower 𝕜 𝕜' F] {c : E → 𝕜'} (hc : DifferentiableAt 𝕜 c x) (hf : DifferentiableAt 𝕜 f x) :
DifferentiableAt 𝕜 (fun (i : E) => c i • f i) x

Eta-expanded form of DifferentiableAt.smul

theorem DifferentiableOn.smul {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {F : Type u_3} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {f : E → F} {s : Set E} {𝕜' : Type u_5} [NormedRing 𝕜'] [NormedAlgebra 𝕜 𝕜'] [Module 𝕜' F] [IsBoundedSMul 𝕜' F] [IsScalarTower 𝕜 𝕜' F] {c : E → 𝕜'} (hc : DifferentiableOn 𝕜 c s) (hf : DifferentiableOn 𝕜 f s) :
DifferentiableOn 𝕜 (c • f) s
theorem DifferentiableOn.fun_smul {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {F : Type u_3} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {f : E → F} {s : Set E} {𝕜' : Type u_5} [NormedRing 𝕜'] [NormedAlgebra 𝕜 𝕜'] [Module 𝕜' F] [IsBoundedSMul 𝕜' F] [IsScalarTower 𝕜 𝕜' F] {c : E → 𝕜'} (hc : DifferentiableOn 𝕜 c s) (hf : DifferentiableOn 𝕜 f s) :
DifferentiableOn 𝕜 (fun (i : E) => c i • f i) s

Eta-expanded form of DifferentiableOn.smul

@[simp]
theorem Differentiable.smul {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {F : Type u_3} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {f : E → F} {𝕜' : Type u_5} [NormedRing 𝕜'] [NormedAlgebra 𝕜 𝕜'] [Module 𝕜' F] [IsBoundedSMul 𝕜' F] [IsScalarTower 𝕜 𝕜' F] {c : E → 𝕜'} (hc : Differentiable 𝕜 c) (hf : Differentiable 𝕜 f) :
Differentiable 𝕜 (c • f)
@[simp]
theorem Differentiable.fun_smul {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {F : Type u_3} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {f : E → F} {𝕜' : Type u_5} [NormedRing 𝕜'] [NormedAlgebra 𝕜 𝕜'] [Module 𝕜' F] [IsBoundedSMul 𝕜' F] [IsScalarTower 𝕜 𝕜' F] {c : E → 𝕜'} (hc : Differentiable 𝕜 c) (hf : Differentiable 𝕜 f) :
Differentiable 𝕜 fun (i : E) => c i • f i

Eta-expanded form of Differentiable.smul

theorem fderivWithin_fun_smul {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {F : Type u_3} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {f : E → F} {x : E} {s : Set E} {𝕜' : Type u_5} [NormedRing 𝕜'] [NormedAlgebra 𝕜 𝕜'] [Module 𝕜' F] [IsBoundedSMul 𝕜' F] [IsScalarTower 𝕜 𝕜' F] {c : E → 𝕜'} (hxs : UniqueDiffWithinAt 𝕜 s x) (hc : DifferentiableWithinAt 𝕜 c s x) (hf : DifferentiableWithinAt 𝕜 f s x) :
fderivWithin 𝕜 (fun (y : E) => c y • f y) s x = c x • fderivWithin 𝕜 f s x + (fderivWithin 𝕜 c s x).smulRight (f x)
theorem fderivWithin_smul {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {F : Type u_3} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {f : E → F} {x : E} {s : Set E} {𝕜' : Type u_5} [NormedRing 𝕜'] [NormedAlgebra 𝕜 𝕜'] [Module 𝕜' F] [IsBoundedSMul 𝕜' F] [IsScalarTower 𝕜 𝕜' F] {c : E → 𝕜'} (hxs : UniqueDiffWithinAt 𝕜 s x) (hc : DifferentiableWithinAt 𝕜 c s x) (hf : DifferentiableWithinAt 𝕜 f s x) :
fderivWithin 𝕜 (c • f) s x = c x • fderivWithin 𝕜 f s x + (fderivWithin 𝕜 c s x).smulRight (f x)
theorem fderiv_fun_smul {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {F : Type u_3} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {f : E → F} {x : E} {𝕜' : Type u_5} [NormedRing 𝕜'] [NormedAlgebra 𝕜 𝕜'] [Module 𝕜' F] [IsBoundedSMul 𝕜' F] [IsScalarTower 𝕜 𝕜' F] {c : E → 𝕜'} (hc : DifferentiableAt 𝕜 c x) (hf : DifferentiableAt 𝕜 f x) :
fderiv 𝕜 (fun (y : E) => c y • f y) x = c x • fderiv 𝕜 f x + (fderiv 𝕜 c x).smulRight (f x)
theorem fderiv_smul {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {F : Type u_3} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {f : E → F} {x : E} {𝕜' : Type u_5} [NormedRing 𝕜'] [NormedAlgebra 𝕜 𝕜'] [Module 𝕜' F] [IsBoundedSMul 𝕜' F] [IsScalarTower 𝕜 𝕜' F] {c : E → 𝕜'} (hc : DifferentiableAt 𝕜 c x) (hf : DifferentiableAt 𝕜 f x) :
fderiv 𝕜 (c • f) x = c x • fderiv 𝕜 f x + (fderiv 𝕜 c x).smulRight (f x)
theorem HasStrictFDerivAt.smul_const {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {F : Type u_3} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {x : E} {𝕜' : Type u_5} [NormedRing 𝕜'] [NormedAlgebra 𝕜 𝕜'] [Module 𝕜' F] [IsBoundedSMul 𝕜' F] [IsScalarTower 𝕜 𝕜' F] {c : E → 𝕜'} {c' : E →L[𝕜] 𝕜'} (hc : HasStrictFDerivAt c c' x) (f : F) :
HasStrictFDerivAt (fun (y : E) => c y • f) (c'.smulRight f) x
theorem HasFDerivWithinAt.smul_const {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {F : Type u_3} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {x : E} {s : Set E} {𝕜' : Type u_5} [NormedRing 𝕜'] [NormedAlgebra 𝕜 𝕜'] [Module 𝕜' F] [IsBoundedSMul 𝕜' F] [IsScalarTower 𝕜 𝕜' F] {c : E → 𝕜'} {c' : E →L[𝕜] 𝕜'} (hc : HasFDerivWithinAt c c' s x) (f : F) :
HasFDerivWithinAt (fun (y : E) => c y • f) (c'.smulRight f) s x
theorem HasFDerivAt.smul_const {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {F : Type u_3} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {x : E} {𝕜' : Type u_5} [NormedRing 𝕜'] [NormedAlgebra 𝕜 𝕜'] [Module 𝕜' F] [IsBoundedSMul 𝕜' F] [IsScalarTower 𝕜 𝕜' F] {c : E → 𝕜'} {c' : E →L[𝕜] 𝕜'} (hc : HasFDerivAt c c' x) (f : F) :
HasFDerivAt (fun (y : E) => c y • f) (c'.smulRight f) x
theorem DifferentiableWithinAt.smul_const {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {F : Type u_3} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {x : E} {s : Set E} {𝕜' : Type u_5} [NormedRing 𝕜'] [NormedAlgebra 𝕜 𝕜'] [Module 𝕜' F] [IsBoundedSMul 𝕜' F] [IsScalarTower 𝕜 𝕜' F] {c : E → 𝕜'} (hc : DifferentiableWithinAt 𝕜 c s x) (f : F) :
DifferentiableWithinAt 𝕜 (fun (y : E) => c y • f) s x
theorem DifferentiableAt.smul_const {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {F : Type u_3} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {x : E} {𝕜' : Type u_5} [NormedRing 𝕜'] [NormedAlgebra 𝕜 𝕜'] [Module 𝕜' F] [IsBoundedSMul 𝕜' F] [IsScalarTower 𝕜 𝕜' F] {c : E → 𝕜'} (hc : DifferentiableAt 𝕜 c x) (f : F) :
DifferentiableAt 𝕜 (fun (y : E) => c y • f) x
theorem DifferentiableOn.smul_const {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {F : Type u_3} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {s : Set E} {𝕜' : Type u_5} [NormedRing 𝕜'] [NormedAlgebra 𝕜 𝕜'] [Module 𝕜' F] [IsBoundedSMul 𝕜' F] [IsScalarTower 𝕜 𝕜' F] {c : E → 𝕜'} (hc : DifferentiableOn 𝕜 c s) (f : F) :
DifferentiableOn 𝕜 (fun (y : E) => c y • f) s
theorem Differentiable.smul_const {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {F : Type u_3} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {𝕜' : Type u_5} [NormedRing 𝕜'] [NormedAlgebra 𝕜 𝕜'] [Module 𝕜' F] [IsBoundedSMul 𝕜' F] [IsScalarTower 𝕜 𝕜' F] {c : E → 𝕜'} (hc : Differentiable 𝕜 c) (f : F) :
Differentiable 𝕜 fun (y : E) => c y • f
theorem fderivWithin_smul_const {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {F : Type u_3} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {x : E} {s : Set E} {𝕜' : Type u_5} [NormedRing 𝕜'] [NormedAlgebra 𝕜 𝕜'] [Module 𝕜' F] [IsBoundedSMul 𝕜' F] [IsScalarTower 𝕜 𝕜' F] {c : E → 𝕜'} (hxs : UniqueDiffWithinAt 𝕜 s x) (hc : DifferentiableWithinAt 𝕜 c s x) (f : F) :
fderivWithin 𝕜 (fun (y : E) => c y • f) s x = (fderivWithin 𝕜 c s x).smulRight f
theorem fderiv_smul_const {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {F : Type u_3} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {x : E} {𝕜' : Type u_5} [NormedRing 𝕜'] [NormedAlgebra 𝕜 𝕜'] [Module 𝕜' F] [IsBoundedSMul 𝕜' F] [IsScalarTower 𝕜 𝕜' F] {c : E → 𝕜'} (hc : DifferentiableAt 𝕜 c x) (f : F) :
fderiv 𝕜 (fun (y : E) => c y • f) x = (fderiv 𝕜 c x).smulRight f

Derivative of the product of two functions #

theorem HasStrictFDerivAt.mul' {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {𝔸 : Type u_5} [NormedRing 𝔸] [NormedAlgebra 𝕜 𝔸] {a b : E → 𝔸} {a' b' : E →L[𝕜] 𝔸} {x : E} (ha : HasStrictFDerivAt a a' x) (hb : HasStrictFDerivAt b b' x) :
HasStrictFDerivAt (a * b) (a x • b' + MulOpposite.op (b x) • a') x
theorem HasStrictFDerivAt.fun_mul' {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {𝔸 : Type u_5} [NormedRing 𝔸] [NormedAlgebra 𝕜 𝔸] {a b : E → 𝔸} {a' b' : E →L[𝕜] 𝔸} {x : E} (ha : HasStrictFDerivAt a a' x) (hb : HasStrictFDerivAt b b' x) :
HasStrictFDerivAt (fun (i : E) => a i * b i) (a x • b' + MulOpposite.op (b x) • a') x

Eta-expanded form of HasStrictFDerivAt.mul'

theorem HasStrictFDerivAt.mul {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {x : E} {𝔸' : Type u_6} [NormedCommRing 𝔸'] [NormedAlgebra 𝕜 𝔸'] {c d : E → 𝔸'} {c' d' : E →L[𝕜] 𝔸'} (hc : HasStrictFDerivAt c c' x) (hd : HasStrictFDerivAt d d' x) :
HasStrictFDerivAt (c * d) (c x • d' + d x • c') x
theorem HasStrictFDerivAt.fun_mul {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {x : E} {𝔸' : Type u_6} [NormedCommRing 𝔸'] [NormedAlgebra 𝕜 𝔸'] {c d : E → 𝔸'} {c' d' : E →L[𝕜] 𝔸'} (hc : HasStrictFDerivAt c c' x) (hd : HasStrictFDerivAt d d' x) :
HasStrictFDerivAt (fun (i : E) => c i * d i) (c x • d' + d x • c') x

Eta-expanded form of HasStrictFDerivAt.mul

theorem HasFDerivWithinAt.mul' {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {x : E} {s : Set E} {𝔸 : Type u_5} [NormedRing 𝔸] [NormedAlgebra 𝕜 𝔸] {a b : E → 𝔸} {a' b' : E →L[𝕜] 𝔸} (ha : HasFDerivWithinAt a a' s x) (hb : HasFDerivWithinAt b b' s x) :
HasFDerivWithinAt (a * b) (a x • b' + MulOpposite.op (b x) • a') s x
theorem HasFDerivWithinAt.fun_mul' {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {x : E} {s : Set E} {𝔸 : Type u_5} [NormedRing 𝔸] [NormedAlgebra 𝕜 𝔸] {a b : E → 𝔸} {a' b' : E →L[𝕜] 𝔸} (ha : HasFDerivWithinAt a a' s x) (hb : HasFDerivWithinAt b b' s x) :
HasFDerivWithinAt (fun (i : E) => a i * b i) (a x • b' + MulOpposite.op (b x) • a') s x

Eta-expanded form of HasFDerivWithinAt.mul'

theorem HasFDerivWithinAt.mul {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {x : E} {s : Set E} {𝔸' : Type u_6} [NormedCommRing 𝔸'] [NormedAlgebra 𝕜 𝔸'] {c d : E → 𝔸'} {c' d' : E →L[𝕜] 𝔸'} (hc : HasFDerivWithinAt c c' s x) (hd : HasFDerivWithinAt d d' s x) :
HasFDerivWithinAt (c * d) (c x • d' + d x • c') s x
theorem HasFDerivWithinAt.fun_mul {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {x : E} {s : Set E} {𝔸' : Type u_6} [NormedCommRing 𝔸'] [NormedAlgebra 𝕜 𝔸'] {c d : E → 𝔸'} {c' d' : E →L[𝕜] 𝔸'} (hc : HasFDerivWithinAt c c' s x) (hd : HasFDerivWithinAt d d' s x) :
HasFDerivWithinAt (fun (i : E) => c i * d i) (c x • d' + d x • c') s x

Eta-expanded form of HasFDerivWithinAt.mul

theorem HasFDerivAt.mul' {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {x : E} {𝔸 : Type u_5} [NormedRing 𝔸] [NormedAlgebra 𝕜 𝔸] {a b : E → 𝔸} {a' b' : E →L[𝕜] 𝔸} (ha : HasFDerivAt a a' x) (hb : HasFDerivAt b b' x) :
HasFDerivAt (a * b) (a x • b' + MulOpposite.op (b x) • a') x
theorem HasFDerivAt.fun_mul' {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {x : E} {𝔸 : Type u_5} [NormedRing 𝔸] [NormedAlgebra 𝕜 𝔸] {a b : E → 𝔸} {a' b' : E →L[𝕜] 𝔸} (ha : HasFDerivAt a a' x) (hb : HasFDerivAt b b' x) :
HasFDerivAt (fun (i : E) => a i * b i) (a x • b' + MulOpposite.op (b x) • a') x

Eta-expanded form of HasFDerivAt.mul'

theorem HasFDerivAt.mul {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {x : E} {𝔸' : Type u_6} [NormedCommRing 𝔸'] [NormedAlgebra 𝕜 𝔸'] {c d : E → 𝔸'} {c' d' : E →L[𝕜] 𝔸'} (hc : HasFDerivAt c c' x) (hd : HasFDerivAt d d' x) :
HasFDerivAt (c * d) (c x • d' + d x • c') x
theorem HasFDerivAt.fun_mul {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {x : E} {𝔸' : Type u_6} [NormedCommRing 𝔸'] [NormedAlgebra 𝕜 𝔸'] {c d : E → 𝔸'} {c' d' : E →L[𝕜] 𝔸'} (hc : HasFDerivAt c c' x) (hd : HasFDerivAt d d' x) :
HasFDerivAt (fun (i : E) => c i * d i) (c x • d' + d x • c') x

Eta-expanded form of HasFDerivAt.mul

theorem DifferentiableWithinAt.mul {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {x : E} {s : Set E} {𝔸 : Type u_5} [NormedRing 𝔸] [NormedAlgebra 𝕜 𝔸] {a b : E → 𝔸} (ha : DifferentiableWithinAt 𝕜 a s x) (hb : DifferentiableWithinAt 𝕜 b s x) :
DifferentiableWithinAt 𝕜 (a * b) s x
theorem DifferentiableWithinAt.fun_mul {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {x : E} {s : Set E} {𝔸 : Type u_5} [NormedRing 𝔸] [NormedAlgebra 𝕜 𝔸] {a b : E → 𝔸} (ha : DifferentiableWithinAt 𝕜 a s x) (hb : DifferentiableWithinAt 𝕜 b s x) :
DifferentiableWithinAt 𝕜 (fun (i : E) => a i * b i) s x

Eta-expanded form of DifferentiableWithinAt.mul

@[simp]
theorem DifferentiableAt.mul {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {x : E} {𝔸 : Type u_5} [NormedRing 𝔸] [NormedAlgebra 𝕜 𝔸] {a b : E → 𝔸} (ha : DifferentiableAt 𝕜 a x) (hb : DifferentiableAt 𝕜 b x) :
DifferentiableAt 𝕜 (a * b) x
@[simp]
theorem DifferentiableAt.fun_mul {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {x : E} {𝔸 : Type u_5} [NormedRing 𝔸] [NormedAlgebra 𝕜 𝔸] {a b : E → 𝔸} (ha : DifferentiableAt 𝕜 a x) (hb : DifferentiableAt 𝕜 b x) :
DifferentiableAt 𝕜 (fun (i : E) => a i * b i) x

Eta-expanded form of DifferentiableAt.mul

theorem DifferentiableOn.mul {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {s : Set E} {𝔸 : Type u_5} [NormedRing 𝔸] [NormedAlgebra 𝕜 𝔸] {a b : E → 𝔸} (ha : DifferentiableOn 𝕜 a s) (hb : DifferentiableOn 𝕜 b s) :
DifferentiableOn 𝕜 (a * b) s
theorem DifferentiableOn.fun_mul {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {s : Set E} {𝔸 : Type u_5} [NormedRing 𝔸] [NormedAlgebra 𝕜 𝔸] {a b : E → 𝔸} (ha : DifferentiableOn 𝕜 a s) (hb : DifferentiableOn 𝕜 b s) :
DifferentiableOn 𝕜 (fun (i : E) => a i * b i) s

Eta-expanded form of DifferentiableOn.mul

@[simp]
theorem Differentiable.mul {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {𝔸 : Type u_5} [NormedRing 𝔸] [NormedAlgebra 𝕜 𝔸] {a b : E → 𝔸} (ha : Differentiable 𝕜 a) (hb : Differentiable 𝕜 b) :
Differentiable 𝕜 (a * b)
@[simp]
theorem Differentiable.fun_mul {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {𝔸 : Type u_5} [NormedRing 𝔸] [NormedAlgebra 𝕜 𝔸] {a b : E → 𝔸} (ha : Differentiable 𝕜 a) (hb : Differentiable 𝕜 b) :
Differentiable 𝕜 fun (i : E) => a i * b i

Eta-expanded form of Differentiable.mul

theorem fderivWithin_fun_mul' {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {x : E} {s : Set E} {𝔸 : Type u_5} [NormedRing 𝔸] [NormedAlgebra 𝕜 𝔸] {a b : E → 𝔸} (hxs : UniqueDiffWithinAt 𝕜 s x) (ha : DifferentiableWithinAt 𝕜 a s x) (hb : DifferentiableWithinAt 𝕜 b s x) :
fderivWithin 𝕜 (fun (y : E) => a y * b y) s x = a x • fderivWithin 𝕜 b s x + MulOpposite.op (b x) • fderivWithin 𝕜 a s x
theorem fderivWithin_mul' {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {x : E} {s : Set E} {𝔸 : Type u_5} [NormedRing 𝔸] [NormedAlgebra 𝕜 𝔸] {a b : E → 𝔸} (hxs : UniqueDiffWithinAt 𝕜 s x) (ha : DifferentiableWithinAt 𝕜 a s x) (hb : DifferentiableWithinAt 𝕜 b s x) :
fderivWithin 𝕜 (a * b) s x = a x • fderivWithin 𝕜 b s x + MulOpposite.op (b x) • fderivWithin 𝕜 a s x
theorem fderivWithin_fun_mul {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {x : E} {s : Set E} {𝔸' : Type u_6} [NormedCommRing 𝔸'] [NormedAlgebra 𝕜 𝔸'] {c d : E → 𝔸'} (hxs : UniqueDiffWithinAt 𝕜 s x) (hc : DifferentiableWithinAt 𝕜 c s x) (hd : DifferentiableWithinAt 𝕜 d s x) :
fderivWithin 𝕜 (fun (y : E) => c y * d y) s x = c x • fderivWithin 𝕜 d s x + d x • fderivWithin 𝕜 c s x
theorem fderivWithin_mul {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {x : E} {s : Set E} {𝔸' : Type u_6} [NormedCommRing 𝔸'] [NormedAlgebra 𝕜 𝔸'] {c d : E → 𝔸'} (hxs : UniqueDiffWithinAt 𝕜 s x) (hc : DifferentiableWithinAt 𝕜 c s x) (hd : DifferentiableWithinAt 𝕜 d s x) :
fderivWithin 𝕜 (c * d) s x = c x • fderivWithin 𝕜 d s x + d x • fderivWithin 𝕜 c s x
theorem fderiv_fun_mul' {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {x : E} {𝔸 : Type u_5} [NormedRing 𝔸] [NormedAlgebra 𝕜 𝔸] {a b : E → 𝔸} (ha : DifferentiableAt 𝕜 a x) (hb : DifferentiableAt 𝕜 b x) :
fderiv 𝕜 (fun (y : E) => a y * b y) x = a x • fderiv 𝕜 b x + MulOpposite.op (b x) • fderiv 𝕜 a x
theorem fderiv_mul' {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {x : E} {𝔸 : Type u_5} [NormedRing 𝔸] [NormedAlgebra 𝕜 𝔸] {a b : E → 𝔸} (ha : DifferentiableAt 𝕜 a x) (hb : DifferentiableAt 𝕜 b x) :
fderiv 𝕜 (a * b) x = a x • fderiv 𝕜 b x + MulOpposite.op (b x) • fderiv 𝕜 a x
theorem fderiv_fun_mul {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {x : E} {𝔸' : Type u_6} [NormedCommRing 𝔸'] [NormedAlgebra 𝕜 𝔸'] {c d : E → 𝔸'} (hc : DifferentiableAt 𝕜 c x) (hd : DifferentiableAt 𝕜 d x) :
fderiv 𝕜 (fun (y : E) => c y * d y) x = c x • fderiv 𝕜 d x + d x • fderiv 𝕜 c x
theorem fderiv_mul {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {x : E} {𝔸' : Type u_6} [NormedCommRing 𝔸'] [NormedAlgebra 𝕜 𝔸'] {c d : E → 𝔸'} (hc : DifferentiableAt 𝕜 c x) (hd : DifferentiableAt 𝕜 d x) :
fderiv 𝕜 (c * d) x = c x • fderiv 𝕜 d x + d x • fderiv 𝕜 c x
theorem HasStrictFDerivAt.mul_const' {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {x : E} {𝔸 : Type u_5} [NormedRing 𝔸] [NormedAlgebra 𝕜 𝔸] {a : E → 𝔸} {a' : E →L[𝕜] 𝔸} (ha : HasStrictFDerivAt a a' x) (b : 𝔸) :
HasStrictFDerivAt (fun (y : E) => a y * b) (MulOpposite.op b • a') x
theorem HasStrictFDerivAt.mul_const {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {x : E} {𝔸' : Type u_6} [NormedCommRing 𝔸'] [NormedAlgebra 𝕜 𝔸'] {c : E → 𝔸'} {c' : E →L[𝕜] 𝔸'} (hc : HasStrictFDerivAt c c' x) (d : 𝔸') :
HasStrictFDerivAt (fun (y : E) => c y * d) (d • c') x
theorem HasFDerivWithinAt.mul_const' {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {x : E} {s : Set E} {𝔸 : Type u_5} [NormedRing 𝔸] [NormedAlgebra 𝕜 𝔸] {a : E → 𝔸} {a' : E →L[𝕜] 𝔸} (ha : HasFDerivWithinAt a a' s x) (b : 𝔸) :
HasFDerivWithinAt (fun (y : E) => a y * b) (MulOpposite.op b • a') s x
theorem HasFDerivWithinAt.mul_const {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {x : E} {s : Set E} {𝔸' : Type u_6} [NormedCommRing 𝔸'] [NormedAlgebra 𝕜 𝔸'] {c : E → 𝔸'} {c' : E →L[𝕜] 𝔸'} (hc : HasFDerivWithinAt c c' s x) (d : 𝔸') :
HasFDerivWithinAt (fun (y : E) => c y * d) (d • c') s x
theorem HasFDerivAt.mul_const' {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {x : E} {𝔸 : Type u_5} [NormedRing 𝔸] [NormedAlgebra 𝕜 𝔸] {a : E → 𝔸} {a' : E →L[𝕜] 𝔸} (ha : HasFDerivAt a a' x) (b : 𝔸) :
HasFDerivAt (fun (y : E) => a y * b) (MulOpposite.op b • a') x
theorem HasFDerivAt.mul_const {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {x : E} {𝔸' : Type u_6} [NormedCommRing 𝔸'] [NormedAlgebra 𝕜 𝔸'] {c : E → 𝔸'} {c' : E →L[𝕜] 𝔸'} (hc : HasFDerivAt c c' x) (d : 𝔸') :
HasFDerivAt (fun (y : E) => c y * d) (d • c') x
theorem DifferentiableWithinAt.mul_const {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {x : E} {s : Set E} {𝔸 : Type u_5} [NormedRing 𝔸] [NormedAlgebra 𝕜 𝔸] {a : E → 𝔸} (ha : DifferentiableWithinAt 𝕜 a s x) (b : 𝔸) :
DifferentiableWithinAt 𝕜 (fun (y : E) => a y * b) s x
theorem DifferentiableAt.mul_const {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {x : E} {𝔸 : Type u_5} [NormedRing 𝔸] [NormedAlgebra 𝕜 𝔸] {a : E → 𝔸} (ha : DifferentiableAt 𝕜 a x) (b : 𝔸) :
DifferentiableAt 𝕜 (fun (y : E) => a y * b) x
theorem DifferentiableOn.mul_const {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {s : Set E} {𝔸 : Type u_5} [NormedRing 𝔸] [NormedAlgebra 𝕜 𝔸] {a : E → 𝔸} (ha : DifferentiableOn 𝕜 a s) (b : 𝔸) :
DifferentiableOn 𝕜 (fun (y : E) => a y * b) s
theorem Differentiable.mul_const {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {𝔸 : Type u_5} [NormedRing 𝔸] [NormedAlgebra 𝕜 𝔸] {a : E → 𝔸} (ha : Differentiable 𝕜 a) (b : 𝔸) :
Differentiable 𝕜 fun (y : E) => a y * b
theorem fderivWithin_mul_const' {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {x : E} {s : Set E} {𝔸 : Type u_5} [NormedRing 𝔸] [NormedAlgebra 𝕜 𝔸] {a : E → 𝔸} (hxs : UniqueDiffWithinAt 𝕜 s x) (ha : DifferentiableWithinAt 𝕜 a s x) (b : 𝔸) :
fderivWithin 𝕜 (fun (y : E) => a y * b) s x = MulOpposite.op b • fderivWithin 𝕜 a s x
theorem fderivWithin_mul_const {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {x : E} {s : Set E} {𝔸' : Type u_6} [NormedCommRing 𝔸'] [NormedAlgebra 𝕜 𝔸'] {c : E → 𝔸'} (hxs : UniqueDiffWithinAt 𝕜 s x) (hc : DifferentiableWithinAt 𝕜 c s x) (d : 𝔸') :
fderivWithin 𝕜 (fun (y : E) => c y * d) s x = d • fderivWithin 𝕜 c s x
theorem fderiv_mul_const' {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {x : E} {𝔸 : Type u_5} [NormedRing 𝔸] [NormedAlgebra 𝕜 𝔸] {a : E → 𝔸} (ha : DifferentiableAt 𝕜 a x) (b : 𝔸) :
fderiv 𝕜 (fun (y : E) => a y * b) x = MulOpposite.op b • fderiv 𝕜 a x
theorem fderiv_mul_const {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {x : E} {𝔸' : Type u_6} [NormedCommRing 𝔸'] [NormedAlgebra 𝕜 𝔸'] {c : E → 𝔸'} (hc : DifferentiableAt 𝕜 c x) (d : 𝔸') :
fderiv 𝕜 (fun (y : E) => c y * d) x = d • fderiv 𝕜 c x
theorem HasStrictFDerivAt.const_mul {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {x : E} {𝔸 : Type u_5} [NormedRing 𝔸] [NormedAlgebra 𝕜 𝔸] {a : E → 𝔸} {a' : E →L[𝕜] 𝔸} (ha : HasStrictFDerivAt a a' x) (b : 𝔸) :
HasStrictFDerivAt (fun (y : E) => b * a y) (b • a') x
theorem HasFDerivWithinAt.const_mul {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {x : E} {s : Set E} {𝔸 : Type u_5} [NormedRing 𝔸] [NormedAlgebra 𝕜 𝔸] {a : E → 𝔸} {a' : E →L[𝕜] 𝔸} (ha : HasFDerivWithinAt a a' s x) (b : 𝔸) :
HasFDerivWithinAt (fun (y : E) => b * a y) (b • a') s x
theorem HasFDerivAt.const_mul {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {x : E} {𝔸 : Type u_5} [NormedRing 𝔸] [NormedAlgebra 𝕜 𝔸] {a : E → 𝔸} {a' : E →L[𝕜] 𝔸} (ha : HasFDerivAt a a' x) (b : 𝔸) :
HasFDerivAt (fun (y : E) => b * a y) (b • a') x
theorem DifferentiableWithinAt.const_mul {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {x : E} {s : Set E} {𝔸 : Type u_5} [NormedRing 𝔸] [NormedAlgebra 𝕜 𝔸] {a : E → 𝔸} (ha : DifferentiableWithinAt 𝕜 a s x) (b : 𝔸) :
DifferentiableWithinAt 𝕜 (fun (y : E) => b * a y) s x
theorem DifferentiableAt.const_mul {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {x : E} {𝔸 : Type u_5} [NormedRing 𝔸] [NormedAlgebra 𝕜 𝔸] {a : E → 𝔸} (ha : DifferentiableAt 𝕜 a x) (b : 𝔸) :
DifferentiableAt 𝕜 (fun (y : E) => b * a y) x
theorem DifferentiableOn.const_mul {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {s : Set E} {𝔸 : Type u_5} [NormedRing 𝔸] [NormedAlgebra 𝕜 𝔸] {a : E → 𝔸} (ha : DifferentiableOn 𝕜 a s) (b : 𝔸) :
DifferentiableOn 𝕜 (fun (y : E) => b * a y) s
theorem Differentiable.const_mul {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {𝔸 : Type u_5} [NormedRing 𝔸] [NormedAlgebra 𝕜 𝔸] {a : E → 𝔸} (ha : Differentiable 𝕜 a) (b : 𝔸) :
Differentiable 𝕜 fun (y : E) => b * a y
theorem fderivWithin_const_mul {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {x : E} {s : Set E} {𝔸 : Type u_5} [NormedRing 𝔸] [NormedAlgebra 𝕜 𝔸] {a : E → 𝔸} (hxs : UniqueDiffWithinAt 𝕜 s x) (ha : DifferentiableWithinAt 𝕜 a s x) (b : 𝔸) :
fderivWithin 𝕜 (fun (y : E) => b * a y) s x = b • fderivWithin 𝕜 a s x
theorem fderiv_const_mul {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {x : E} {𝔸 : Type u_5} [NormedRing 𝔸] [NormedAlgebra 𝕜 𝔸] {a : E → 𝔸} (ha : DifferentiableAt 𝕜 a x) (b : 𝔸) :
fderiv 𝕜 (fun (y : E) => b * a y) x = b • fderiv 𝕜 a x

Derivative of a finite product of functions #

theorem hasStrictFDerivAt_list_prod' {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {ι : Type u_5} {𝔸 : Type u_6} [NormedRing 𝔸] [NormedAlgebra 𝕜 𝔸] [Finite ι] {l : List ι} {x : ι → 𝔸} :
HasStrictFDerivAt (fun (x : ι → 𝔸) => (List.map x l).prod) (∑ i : Fin l.length, (List.map x (List.take (↑i) l)).prod • MulOpposite.op (List.map x (List.drop (↑i).succ l)).prod • ContinuousLinearMap.proj l[i]) x
theorem hasStrictFDerivAt_list_prod_finRange' {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {𝔸 : Type u_6} [NormedRing 𝔸] [NormedAlgebra 𝕜 𝔸] {n : ℕ} {x : Fin n → 𝔸} :
theorem hasStrictFDerivAt_list_prod_attach' {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {ι : Type u_5} {𝔸 : Type u_6} [NormedRing 𝔸] [NormedAlgebra 𝕜 𝔸] {l : List ι} {x : { i : ι // i ∈ l } → 𝔸} :
HasStrictFDerivAt (fun (x : { x : ι // x ∈ l } → 𝔸) => (List.map x l.attach).prod) (∑ i : Fin l.length, (List.map x (List.take (↑i) l.attach)).prod • MulOpposite.op (List.map x (List.drop (↑i).succ l.attach)).prod • ContinuousLinearMap.proj l.attach[Fin.cast ⋯ i]) x
theorem hasFDerivAt_list_prod' {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {ι : Type u_5} {𝔸' : Type u_7} [NormedCommRing 𝔸'] [NormedAlgebra 𝕜 𝔸'] [Finite ι] {l : List ι} {x : ι → 𝔸'} :
HasFDerivAt (fun (x : ι → 𝔸') => (List.map x l).prod) (∑ i : Fin l.length, (List.map x (List.take (↑i) l)).prod • MulOpposite.op (List.map x (List.drop (↑i).succ l)).prod • ContinuousLinearMap.proj l[i]) x
theorem hasFDerivAt_list_prod_finRange' {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {𝔸 : Type u_6} [NormedRing 𝔸] [NormedAlgebra 𝕜 𝔸] {n : ℕ} {x : Fin n → 𝔸} :
theorem hasFDerivAt_list_prod_attach' {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {ι : Type u_5} {𝔸 : Type u_6} [NormedRing 𝔸] [NormedAlgebra 𝕜 𝔸] {l : List ι} {x : { i : ι // i ∈ l } → 𝔸} :
HasFDerivAt (fun (x : { x : ι // x ∈ l } → 𝔸) => (List.map x l.attach).prod) (∑ i : Fin l.length, (List.map x (List.take (↑i) l.attach)).prod • MulOpposite.op (List.map x (List.drop (↑i).succ l.attach)).prod • ContinuousLinearMap.proj l.attach[Fin.cast ⋯ i]) x
theorem hasStrictFDerivAt_list_prod {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {ι : Type u_5} {𝔸' : Type u_7} [NormedCommRing 𝔸'] [NormedAlgebra 𝕜 𝔸'] [DecidableEq ι] [Finite ι] {l : List ι} {x : ι → 𝔸'} :
HasStrictFDerivAt (fun (x : ι → 𝔸') => (List.map x l).prod) (List.map (fun (i : ι) => (List.map x (l.erase i)).prod • ContinuousLinearMap.proj i) l).sum x

Auxiliary lemma for hasStrictFDerivAt_multiset_prod.

For NormedCommRing 𝔸', can rewrite as Multiset using Multiset.prod_coe.

theorem hasStrictFDerivAt_multiset_prod {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {ι : Type u_5} {𝔸' : Type u_7} [NormedCommRing 𝔸'] [NormedAlgebra 𝕜 𝔸'] [DecidableEq ι] [Finite ι] {u : Multiset ι} {x : ι → 𝔸'} :
HasStrictFDerivAt (fun (x : ι → 𝔸') => (Multiset.map x u).prod) (Multiset.map (fun (i : ι) => (Multiset.map x (u.erase i)).prod • ContinuousLinearMap.proj i) u).sum x
theorem hasFDerivAt_multiset_prod {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {ι : Type u_5} {𝔸' : Type u_7} [NormedCommRing 𝔸'] [NormedAlgebra 𝕜 𝔸'] [DecidableEq ι] [Finite ι] {u : Multiset ι} {x : ι → 𝔸'} :
HasFDerivAt (fun (x : ι → 𝔸') => (Multiset.map x u).prod) (Multiset.map (fun (i : ι) => (Multiset.map x (u.erase i)).prod • ContinuousLinearMap.proj i) u).sum x
theorem hasStrictFDerivAt_finset_prod {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {ι : Type u_5} {𝔸' : Type u_7} [NormedCommRing 𝔸'] [NormedAlgebra 𝕜 𝔸'] {u : Finset ι} [DecidableEq ι] [Finite ι] {x : ι → 𝔸'} :
HasStrictFDerivAt (fun (x : ι → 𝔸') => ∏ i ∈ u, x i) (∑ i ∈ u, (∏ j ∈ u.erase i, x j) • ContinuousLinearMap.proj i) x
theorem hasFDerivAt_finset_prod {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {ι : Type u_5} {𝔸' : Type u_7} [NormedCommRing 𝔸'] [NormedAlgebra 𝕜 𝔸'] {u : Finset ι} [DecidableEq ι] [Finite ι] {x : ι → 𝔸'} :
HasFDerivAt (fun (x : ι → 𝔸') => ∏ i ∈ u, x i) (∑ i ∈ u, (∏ j ∈ u.erase i, x j) • ContinuousLinearMap.proj i) x
theorem HasStrictFDerivAt.list_prod' {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {ι : Type u_5} {𝔸 : Type u_6} [NormedRing 𝔸] [NormedAlgebra 𝕜 𝔸] {f : ι → E → 𝔸} {f' : ι → E →L[𝕜] 𝔸} {l : List ι} {x : E} (h : ∀ i ∈ l, HasStrictFDerivAt (fun (x : E) => f i x) (f' i) x) :
HasStrictFDerivAt (fun (x : E) => (List.map (fun (x_1 : ι) => f x_1 x) l).prod) (∑ i : Fin l.length, (List.map (fun (x_1 : ι) => f x_1 x) (List.take (↑i) l)).prod • MulOpposite.op (List.map (fun (x_1 : ι) => f x_1 x) (List.drop (↑i).succ l)).prod • f' l[i]) x
theorem HasFDerivAt.list_prod' {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {ι : Type u_5} {𝔸 : Type u_6} [NormedRing 𝔸] [NormedAlgebra 𝕜 𝔸] {f : ι → E → 𝔸} {f' : ι → E →L[𝕜] 𝔸} {l : List ι} {x : E} (h : ∀ i ∈ l, HasFDerivAt (fun (x : E) => f i x) (f' i) x) :
HasFDerivAt (fun (x : E) => (List.map (fun (x_1 : ι) => f x_1 x) l).prod) (∑ i : Fin l.length, (List.map (fun (x_1 : ι) => f x_1 x) (List.take (↑i) l)).prod • MulOpposite.op (List.map (fun (x_1 : ι) => f x_1 x) (List.drop (↑i).succ l)).prod • f' l[i]) x

Unlike HasFDerivAt.finset_prod, supports non-commutative multiply and duplicate elements.

theorem HasFDerivWithinAt.list_prod' {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {s : Set E} {ι : Type u_5} {𝔸 : Type u_6} [NormedRing 𝔸] [NormedAlgebra 𝕜 𝔸] {f : ι → E → 𝔸} {f' : ι → E →L[𝕜] 𝔸} {l : List ι} {x : E} (h : ∀ i ∈ l, HasFDerivWithinAt (fun (x : E) => f i x) (f' i) s x) :
HasFDerivWithinAt (fun (x : E) => (List.map (fun (x_1 : ι) => f x_1 x) l).prod) (∑ i : Fin l.length, (List.map (fun (x_1 : ι) => f x_1 x) (List.take (↑i) l)).prod • MulOpposite.op (List.map (fun (x_1 : ι) => f x_1 x) (List.drop (↑i).succ l)).prod • f' l[i]) s x
theorem fderiv_list_prod' {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {ι : Type u_5} {𝔸 : Type u_6} [NormedRing 𝔸] [NormedAlgebra 𝕜 𝔸] {f : ι → E → 𝔸} {l : List ι} {x : E} (h : ∀ i ∈ l, DifferentiableAt 𝕜 (fun (x : E) => f i x) x) :
fderiv 𝕜 (fun (x : E) => (List.map (fun (x_1 : ι) => f x_1 x) l).prod) x = ∑ i : Fin l.length, (List.map (fun (x_1 : ι) => f x_1 x) (List.take (↑i) l)).prod • MulOpposite.op (List.map (fun (x_1 : ι) => f x_1 x) (List.drop (↑i).succ l)).prod • fderiv 𝕜 (fun (x : E) => f l[i] x) x
theorem fderivWithin_list_prod' {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {s : Set E} {ι : Type u_5} {𝔸 : Type u_6} [NormedRing 𝔸] [NormedAlgebra 𝕜 𝔸] {f : ι → E → 𝔸} {l : List ι} {x : E} (hxs : UniqueDiffWithinAt 𝕜 s x) (h : ∀ i ∈ l, DifferentiableWithinAt 𝕜 (fun (x : E) => f i x) s x) :
fderivWithin 𝕜 (fun (x : E) => (List.map (fun (x_1 : ι) => f x_1 x) l).prod) s x = ∑ i : Fin l.length, (List.map (fun (x_1 : ι) => f x_1 x) (List.take (↑i) l)).prod • MulOpposite.op (List.map (fun (x_1 : ι) => f x_1 x) (List.drop (↑i).succ l)).prod • fderivWithin 𝕜 (fun (x : E) => f l[i] x) s x
theorem HasStrictFDerivAt.multiset_prod {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {ι : Type u_5} {𝔸' : Type u_7} [NormedCommRing 𝔸'] [NormedAlgebra 𝕜 𝔸'] {g : ι → E → 𝔸'} {g' : ι → E →L[𝕜] 𝔸'} [DecidableEq ι] {u : Multiset ι} {x : E} (h : ∀ i ∈ u, HasStrictFDerivAt (fun (x : E) => g i x) (g' i) x) :
HasStrictFDerivAt (fun (x : E) => (Multiset.map (fun (x_1 : ι) => g x_1 x) u).prod) (Multiset.map (fun (i : ι) => (Multiset.map (fun (x_1 : ι) => g x_1 x) (u.erase i)).prod • g' i) u).sum x
theorem HasFDerivAt.multiset_prod {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {ι : Type u_5} {𝔸' : Type u_7} [NormedCommRing 𝔸'] [NormedAlgebra 𝕜 𝔸'] {g : ι → E → 𝔸'} {g' : ι → E →L[𝕜] 𝔸'} [DecidableEq ι] {u : Multiset ι} {x : E} (h : ∀ i ∈ u, HasFDerivAt (fun (x : E) => g i x) (g' i) x) :
HasFDerivAt (fun (x : E) => (Multiset.map (fun (x_1 : ι) => g x_1 x) u).prod) (Multiset.map (fun (i : ι) => (Multiset.map (fun (x_1 : ι) => g x_1 x) (u.erase i)).prod • g' i) u).sum x

Unlike HasFDerivAt.finset_prod, supports duplicate elements.

theorem HasFDerivWithinAt.multiset_prod {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {s : Set E} {ι : Type u_5} {𝔸' : Type u_7} [NormedCommRing 𝔸'] [NormedAlgebra 𝕜 𝔸'] {g : ι → E → 𝔸'} {g' : ι → E →L[𝕜] 𝔸'} [DecidableEq ι] {u : Multiset ι} {x : E} (h : ∀ i ∈ u, HasFDerivWithinAt (fun (x : E) => g i x) (g' i) s x) :
HasFDerivWithinAt (fun (x : E) => (Multiset.map (fun (x_1 : ι) => g x_1 x) u).prod) (Multiset.map (fun (i : ι) => (Multiset.map (fun (x_1 : ι) => g x_1 x) (u.erase i)).prod • g' i) u).sum s x
theorem fderiv_multiset_prod {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {ι : Type u_5} {𝔸' : Type u_7} [NormedCommRing 𝔸'] [NormedAlgebra 𝕜 𝔸'] {g : ι → E → 𝔸'} [DecidableEq ι] {u : Multiset ι} {x : E} (h : ∀ i ∈ u, DifferentiableAt 𝕜 (fun (x : E) => g i x) x) :
fderiv 𝕜 (fun (x : E) => (Multiset.map (fun (x_1 : ι) => g x_1 x) u).prod) x = (Multiset.map (fun (i : ι) => (Multiset.map (fun (x_1 : ι) => g x_1 x) (u.erase i)).prod • fderiv 𝕜 (g i) x) u).sum
theorem fderivWithin_multiset_prod {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {s : Set E} {ι : Type u_5} {𝔸' : Type u_7} [NormedCommRing 𝔸'] [NormedAlgebra 𝕜 𝔸'] {g : ι → E → 𝔸'} [DecidableEq ι] {u : Multiset ι} {x : E} (hxs : UniqueDiffWithinAt 𝕜 s x) (h : ∀ i ∈ u, DifferentiableWithinAt 𝕜 (fun (x : E) => g i x) s x) :
fderivWithin 𝕜 (fun (x : E) => (Multiset.map (fun (x_1 : ι) => g x_1 x) u).prod) s x = (Multiset.map (fun (i : ι) => (Multiset.map (fun (x_1 : ι) => g x_1 x) (u.erase i)).prod • fderivWithin 𝕜 (g i) s x) u).sum
theorem HasStrictFDerivAt.finset_prod {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {ι : Type u_5} {𝔸' : Type u_7} [NormedCommRing 𝔸'] [NormedAlgebra 𝕜 𝔸'] {u : Finset ι} {g : ι → E → 𝔸'} {g' : ι → E →L[𝕜] 𝔸'} [DecidableEq ι] {x : E} (hg : ∀ i ∈ u, HasStrictFDerivAt (g i) (g' i) x) :
HasStrictFDerivAt (fun (x : E) => ∏ i ∈ u, g i x) (∑ i ∈ u, (∏ j ∈ u.erase i, g j x) • g' i) x
theorem HasFDerivAt.finset_prod {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {ι : Type u_5} {𝔸' : Type u_7} [NormedCommRing 𝔸'] [NormedAlgebra 𝕜 𝔸'] {u : Finset ι} {g : ι → E → 𝔸'} {g' : ι → E →L[𝕜] 𝔸'} [DecidableEq ι] {x : E} (hg : ∀ i ∈ u, HasFDerivAt (g i) (g' i) x) :
HasFDerivAt (fun (x : E) => ∏ i ∈ u, g i x) (∑ i ∈ u, (∏ j ∈ u.erase i, g j x) • g' i) x
theorem HasFDerivWithinAt.finset_prod {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {s : Set E} {ι : Type u_5} {𝔸' : Type u_7} [NormedCommRing 𝔸'] [NormedAlgebra 𝕜 𝔸'] {u : Finset ι} {g : ι → E → 𝔸'} {g' : ι → E →L[𝕜] 𝔸'} [DecidableEq ι] {x : E} (hg : ∀ i ∈ u, HasFDerivWithinAt (g i) (g' i) s x) :
HasFDerivWithinAt (fun (x : E) => ∏ i ∈ u, g i x) (∑ i ∈ u, (∏ j ∈ u.erase i, g j x) • g' i) s x
theorem fderiv_finset_prod {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {ι : Type u_5} {𝔸' : Type u_7} [NormedCommRing 𝔸'] [NormedAlgebra 𝕜 𝔸'] {u : Finset ι} {g : ι → E → 𝔸'} [DecidableEq ι] {x : E} (hg : ∀ i ∈ u, DifferentiableAt 𝕜 (g i) x) :
fderiv 𝕜 (fun (x : E) => ∏ i ∈ u, g i x) x = ∑ i ∈ u, (∏ j ∈ u.erase i, g j x) • fderiv 𝕜 (g i) x
theorem fderivWithin_finset_prod {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {s : Set E} {ι : Type u_5} {𝔸' : Type u_7} [NormedCommRing 𝔸'] [NormedAlgebra 𝕜 𝔸'] {u : Finset ι} {g : ι → E → 𝔸'} [DecidableEq ι] {x : E} (hxs : UniqueDiffWithinAt 𝕜 s x) (hg : ∀ i ∈ u, DifferentiableWithinAt 𝕜 (g i) s x) :
fderivWithin 𝕜 (fun (x : E) => ∏ i ∈ u, g i x) s x = ∑ i ∈ u, (∏ j ∈ u.erase i, g j x) • fderivWithin 𝕜 (g i) s x

At an invertible element x of a normed algebra R, the Fréchet derivative of the inversion operation is the linear map fun t ↦ - x⁻¹ * t * x⁻¹.

TODO (low prio): prove a version without assumption [HasSummableGeomSeries R] but within the set of units.

theorem DifferentiableWithinAt.inverse {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {R : Type u_5} [NormedRing R] [HasSummableGeomSeries R] [NormedAlgebra 𝕜 R] {h : E → R} {z : E} {S : Set E} (hf : DifferentiableWithinAt 𝕜 h S z) (hz : IsUnit (h z)) :
DifferentiableWithinAt 𝕜 (fun (x : E) => Ring.inverse (h x)) S z
@[simp]
theorem DifferentiableAt.inverse {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {R : Type u_5} [NormedRing R] [HasSummableGeomSeries R] [NormedAlgebra 𝕜 R] {h : E → R} {z : E} (hf : DifferentiableAt 𝕜 h z) (hz : IsUnit (h z)) :
DifferentiableAt 𝕜 (fun (x : E) => Ring.inverse (h x)) z
theorem DifferentiableOn.inverse {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {R : Type u_5} [NormedRing R] [HasSummableGeomSeries R] [NormedAlgebra 𝕜 R] {h : E → R} {S : Set E} (hf : DifferentiableOn 𝕜 h S) (hz : ∀ x ∈ S, IsUnit (h x)) :
DifferentiableOn 𝕜 (fun (x : E) => Ring.inverse (h x)) S
@[simp]
theorem Differentiable.inverse {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {R : Type u_5} [NormedRing R] [HasSummableGeomSeries R] [NormedAlgebra 𝕜 R] {h : E → R} (hf : Differentiable 𝕜 h) (hz : ∀ (x : E), IsUnit (h x)) :
Differentiable 𝕜 fun (x : E) => Ring.inverse (h x)

Derivative of the inverse in a division ring #

Note that some lemmas are primed as they are expressed without commutativity, whereas their counterparts in commutative fields involve simpler expressions, and are given in Mathlib/Analysis/Calculus/Deriv/Inv.lean.

At an invertible element x of a normed division algebra R, the inversion is strictly differentiable, with derivative the linear map fun t ↦ - x⁻¹ * t * x⁻¹. For a nicer formula in the commutative case, see hasStrictFDerivAt_inv.

theorem hasFDerivAt_inv' {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {R : Type u_5} [NormedDivisionRing R] [NormedAlgebra 𝕜 R] {x : R} (hx : x ≠ 0) :

At an invertible element x of a normed division algebra R, the Fréchet derivative of the inversion operation is the linear map fun t ↦ - x⁻¹ * t * x⁻¹. For a nicer formula in the commutative case, see hasFDerivAt_inv.

theorem differentiableAt_inv {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {R : Type u_5} [NormedDivisionRing R] [NormedAlgebra 𝕜 R] {x : R} (hx : x ≠ 0) :
theorem differentiableWithinAt_inv {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {R : Type u_5} [NormedDivisionRing R] [NormedAlgebra 𝕜 R] {x : R} (hx : x ≠ 0) (s : Set R) :
DifferentiableWithinAt 𝕜 (fun (x : R) => x⁻¹) s x
theorem differentiableOn_inv {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {R : Type u_5} [NormedDivisionRing R] [NormedAlgebra 𝕜 R] :
DifferentiableOn 𝕜 (fun (x : R) => x⁻¹) {x : R | x ≠ 0}
theorem fderiv_inv' {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {R : Type u_5} [NormedDivisionRing R] [NormedAlgebra 𝕜 R] {x : R} (hx : x ≠ 0) :

Non-commutative version of fderiv_inv

theorem fderivWithin_inv' {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {R : Type u_5} [NormedDivisionRing R] [NormedAlgebra 𝕜 R] {s : Set R} {x : R} (hx : x ≠ 0) (hxs : UniqueDiffWithinAt 𝕜 s x) :
fderivWithin 𝕜 (fun (x : R) => x⁻¹) s x = -((ContinuousLinearMap.mulLeftRight 𝕜 R) x⁻¹) x⁻¹

Non-commutative version of fderivWithin_inv

theorem DifferentiableWithinAt.inv {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {R : Type u_5} [NormedDivisionRing R] [NormedAlgebra 𝕜 R] {h : E → R} {z : E} {S : Set E} (hf : DifferentiableWithinAt 𝕜 h S z) (hz : h z ≠ 0) :
theorem DifferentiableWithinAt.fun_inv {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {R : Type u_5} [NormedDivisionRing R] [NormedAlgebra 𝕜 R] {h : E → R} {z : E} {S : Set E} (hf : DifferentiableWithinAt 𝕜 h S z) (hz : h z ≠ 0) :
DifferentiableWithinAt 𝕜 (fun (i : E) => (h i)⁻¹) S z

Eta-expanded form of DifferentiableWithinAt.inv

@[simp]
theorem DifferentiableAt.inv {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {R : Type u_5} [NormedDivisionRing R] [NormedAlgebra 𝕜 R] {h : E → R} {z : E} (hf : DifferentiableAt 𝕜 h z) (hz : h z ≠ 0) :
@[simp]
theorem DifferentiableAt.fun_inv {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {R : Type u_5} [NormedDivisionRing R] [NormedAlgebra 𝕜 R] {h : E → R} {z : E} (hf : DifferentiableAt 𝕜 h z) (hz : h z ≠ 0) :
DifferentiableAt 𝕜 (fun (i : E) => (h i)⁻¹) z

Eta-expanded form of DifferentiableAt.inv

theorem DifferentiableOn.inv {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {R : Type u_5} [NormedDivisionRing R] [NormedAlgebra 𝕜 R] {h : E → R} {S : Set E} (hf : DifferentiableOn 𝕜 h S) (hz : ∀ x ∈ S, h x ≠ 0) :
theorem DifferentiableOn.fun_inv {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {R : Type u_5} [NormedDivisionRing R] [NormedAlgebra 𝕜 R] {h : E → R} {S : Set E} (hf : DifferentiableOn 𝕜 h S) (hz : ∀ x ∈ S, h x ≠ 0) :
DifferentiableOn 𝕜 (fun (i : E) => (h i)⁻¹) S

Eta-expanded form of DifferentiableOn.inv

@[simp]
theorem Differentiable.inv {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {R : Type u_5} [NormedDivisionRing R] [NormedAlgebra 𝕜 R] {h : E → R} (hf : Differentiable 𝕜 h) (hz : ∀ (x : E), h x ≠ 0) :
@[simp]
theorem Differentiable.fun_inv {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {R : Type u_5} [NormedDivisionRing R] [NormedAlgebra 𝕜 R] {h : E → R} (hf : Differentiable 𝕜 h) (hz : ∀ (x : E), h x ≠ 0) :
Differentiable 𝕜 fun (i : E) => (h i)⁻¹

Eta-expanded form of Differentiable.inv