Documentation

Mathlib.Analysis.Calculus.Deriv.Pow

Derivative of (f x) ^ n, n : ℕ #

In this file we prove that the Fréchet derivative of fun x => f x ^ n, where n is a natural number, is n * f x ^ (n - 1) * f'. Additionally, we prove the case for non-commutative rings (with primed names like deriv_pow'), where the result is instead ∑ i ∈ Finset.range n, f x ^ (n.pred - i) * f' * f x ^ i.

For a more detailed overview of one-dimensional derivatives in mathlib, see the module docstring of Mathlib/Analysis/Calculus/Deriv/Basic.lean.

Keywords #

derivative, power

theorem HasStrictDerivAt.fun_pow' {𝕜 : Type u_1} {𝔸 : Type u_2} [NontriviallyNormedField 𝕜] [NormedRing 𝔸] [NormedAlgebra 𝕜 𝔸] {f : 𝕜𝔸} {f' : 𝔸} {x : 𝕜} (h : HasStrictDerivAt f f' x) (n : ) :
HasStrictDerivAt (fun (x : 𝕜) => f x ^ n) (∑ iFinset.range n, f x ^ (n.pred - i) * f' * f x ^ i) x
theorem HasStrictDerivAt.pow' {𝕜 : Type u_1} {𝔸 : Type u_2} [NontriviallyNormedField 𝕜] [NormedRing 𝔸] [NormedAlgebra 𝕜 𝔸] {f : 𝕜𝔸} {f' : 𝔸} {x : 𝕜} (h : HasStrictDerivAt f f' x) (n : ) :
HasStrictDerivAt (f ^ n) (∑ iFinset.range n, f x ^ (n.pred - i) * f' * f x ^ i) x
theorem HasDerivWithinAt.fun_pow' {𝕜 : Type u_1} {𝔸 : Type u_2} [NontriviallyNormedField 𝕜] [NormedRing 𝔸] [NormedAlgebra 𝕜 𝔸] {f : 𝕜𝔸} {f' : 𝔸} {x : 𝕜} {s : Set 𝕜} (h : HasDerivWithinAt f f' s x) (n : ) :
HasDerivWithinAt (fun (x : 𝕜) => f x ^ n) (∑ iFinset.range n, f x ^ (n.pred - i) * f' * f x ^ i) s x
theorem HasDerivWithinAt.pow' {𝕜 : Type u_1} {𝔸 : Type u_2} [NontriviallyNormedField 𝕜] [NormedRing 𝔸] [NormedAlgebra 𝕜 𝔸] {f : 𝕜𝔸} {f' : 𝔸} {x : 𝕜} {s : Set 𝕜} (h : HasDerivWithinAt f f' s x) (n : ) :
HasDerivWithinAt (f ^ n) (∑ iFinset.range n, f x ^ (n.pred - i) * f' * f x ^ i) s x
theorem HasDerivAt.fun_pow' {𝕜 : Type u_1} {𝔸 : Type u_2} [NontriviallyNormedField 𝕜] [NormedRing 𝔸] [NormedAlgebra 𝕜 𝔸] {f : 𝕜𝔸} {f' : 𝔸} {x : 𝕜} (h : HasDerivAt f f' x) (n : ) :
HasDerivAt (fun (x : 𝕜) => f x ^ n) (∑ iFinset.range n, f x ^ (n.pred - i) * f' * f x ^ i) x
theorem HasDerivAt.pow' {𝕜 : Type u_1} {𝔸 : Type u_2} [NontriviallyNormedField 𝕜] [NormedRing 𝔸] [NormedAlgebra 𝕜 𝔸] {f : 𝕜𝔸} {f' : 𝔸} {x : 𝕜} (h : HasDerivAt f f' x) (n : ) :
HasDerivAt (f ^ n) (∑ iFinset.range n, f x ^ (n.pred - i) * f' * f x ^ i) x
@[simp]
theorem derivWithin_fun_pow' {𝕜 : Type u_1} {𝔸 : Type u_2} [NontriviallyNormedField 𝕜] [NormedRing 𝔸] [NormedAlgebra 𝕜 𝔸] {f : 𝕜𝔸} {x : 𝕜} {s : Set 𝕜} (h : DifferentiableWithinAt 𝕜 f s x) (n : ) :
derivWithin (fun (x : 𝕜) => f x ^ n) s x = iFinset.range n, f x ^ (n.pred - i) * derivWithin f s x * f x ^ i
@[simp]
theorem derivWithin_pow' {𝕜 : Type u_1} {𝔸 : Type u_2} [NontriviallyNormedField 𝕜] [NormedRing 𝔸] [NormedAlgebra 𝕜 𝔸] {f : 𝕜𝔸} {x : 𝕜} {s : Set 𝕜} (h : DifferentiableWithinAt 𝕜 f s x) (n : ) :
derivWithin (f ^ n) s x = iFinset.range n, f x ^ (n.pred - i) * derivWithin f s x * f x ^ i
@[simp]
theorem deriv_fun_pow' {𝕜 : Type u_1} {𝔸 : Type u_2} [NontriviallyNormedField 𝕜] [NormedRing 𝔸] [NormedAlgebra 𝕜 𝔸] {f : 𝕜𝔸} {x : 𝕜} (h : DifferentiableAt 𝕜 f x) (n : ) :
deriv (fun (x : 𝕜) => f x ^ n) x = iFinset.range n, f x ^ (n.pred - i) * deriv f x * f x ^ i
@[simp]
theorem deriv_pow' {𝕜 : Type u_1} {𝔸 : Type u_2} [NontriviallyNormedField 𝕜] [NormedRing 𝔸] [NormedAlgebra 𝕜 𝔸] {f : 𝕜𝔸} {x : 𝕜} (h : DifferentiableAt 𝕜 f x) (n : ) :
deriv (f ^ n) x = iFinset.range n, f x ^ (n.pred - i) * deriv f x * f x ^ i
theorem HasStrictDerivAt.fun_pow {𝕜 : Type u_1} {𝔸 : Type u_2} [NontriviallyNormedField 𝕜] [NormedCommRing 𝔸] [NormedAlgebra 𝕜 𝔸] {f : 𝕜𝔸} {f' : 𝔸} {x : 𝕜} (h : HasStrictDerivAt f f' x) (n : ) :
HasStrictDerivAt (fun (x : 𝕜) => f x ^ n) (n * f x ^ (n - 1) * f') x
theorem HasStrictDerivAt.pow {𝕜 : Type u_1} {𝔸 : Type u_2} [NontriviallyNormedField 𝕜] [NormedCommRing 𝔸] [NormedAlgebra 𝕜 𝔸] {f : 𝕜𝔸} {f' : 𝔸} {x : 𝕜} (h : HasStrictDerivAt f f' x) (n : ) :
HasStrictDerivAt (f ^ n) (n * f x ^ (n - 1) * f') x
theorem HasDerivWithinAt.fun_pow {𝕜 : Type u_1} {𝔸 : Type u_2} [NontriviallyNormedField 𝕜] [NormedCommRing 𝔸] [NormedAlgebra 𝕜 𝔸] {f : 𝕜𝔸} {f' : 𝔸} {x : 𝕜} {s : Set 𝕜} (h : HasDerivWithinAt f f' s x) (n : ) :
HasDerivWithinAt (fun (x : 𝕜) => f x ^ n) (n * f x ^ (n - 1) * f') s x
theorem HasDerivWithinAt.pow {𝕜 : Type u_1} {𝔸 : Type u_2} [NontriviallyNormedField 𝕜] [NormedCommRing 𝔸] [NormedAlgebra 𝕜 𝔸] {f : 𝕜𝔸} {f' : 𝔸} {x : 𝕜} {s : Set 𝕜} (h : HasDerivWithinAt f f' s x) (n : ) :
HasDerivWithinAt (f ^ n) (n * f x ^ (n - 1) * f') s x
theorem HasDerivAt.fun_pow {𝕜 : Type u_1} {𝔸 : Type u_2} [NontriviallyNormedField 𝕜] [NormedCommRing 𝔸] [NormedAlgebra 𝕜 𝔸] {f : 𝕜𝔸} {f' : 𝔸} {x : 𝕜} (h : HasDerivAt f f' x) (n : ) :
HasDerivAt (fun (x : 𝕜) => f x ^ n) (n * f x ^ (n - 1) * f') x
theorem HasDerivAt.pow {𝕜 : Type u_1} {𝔸 : Type u_2} [NontriviallyNormedField 𝕜] [NormedCommRing 𝔸] [NormedAlgebra 𝕜 𝔸] {f : 𝕜𝔸} {f' : 𝔸} {x : 𝕜} (h : HasDerivAt f f' x) (n : ) :
HasDerivAt (f ^ n) (n * f x ^ (n - 1) * f') x
@[simp]
theorem derivWithin_fun_pow {𝕜 : Type u_1} {𝔸 : Type u_2} [NontriviallyNormedField 𝕜] [NormedCommRing 𝔸] [NormedAlgebra 𝕜 𝔸] {f : 𝕜𝔸} {x : 𝕜} {s : Set 𝕜} (h : DifferentiableWithinAt 𝕜 f s x) (n : ) :
derivWithin (fun (x : 𝕜) => f x ^ n) s x = n * f x ^ (n - 1) * derivWithin f s x
@[simp]
theorem derivWithin_pow {𝕜 : Type u_1} {𝔸 : Type u_2} [NontriviallyNormedField 𝕜] [NormedCommRing 𝔸] [NormedAlgebra 𝕜 𝔸] {f : 𝕜𝔸} {x : 𝕜} {s : Set 𝕜} (h : DifferentiableWithinAt 𝕜 f s x) (n : ) :
derivWithin (f ^ n) s x = n * f x ^ (n - 1) * derivWithin f s x
@[simp]
theorem deriv_fun_pow {𝕜 : Type u_1} {𝔸 : Type u_2} [NontriviallyNormedField 𝕜] [NormedCommRing 𝔸] [NormedAlgebra 𝕜 𝔸] {f : 𝕜𝔸} {x : 𝕜} (h : DifferentiableAt 𝕜 f x) (n : ) :
deriv (fun (x : 𝕜) => f x ^ n) x = n * f x ^ (n - 1) * deriv f x
@[simp]
theorem deriv_pow {𝕜 : Type u_1} {𝔸 : Type u_2} [NontriviallyNormedField 𝕜] [NormedCommRing 𝔸] [NormedAlgebra 𝕜 𝔸] {f : 𝕜𝔸} {x : 𝕜} (h : DifferentiableAt 𝕜 f x) (n : ) :
deriv (f ^ n) x = n * f x ^ (n - 1) * deriv f x
@[deprecated deriv_fun_pow (since := "2025-07-16")]
theorem deriv_fun_pow'' {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {x : 𝕜} {c : 𝕜𝕜} (n : ) (hc : DifferentiableAt 𝕜 c x) :
deriv (fun (x : 𝕜) => c x ^ n) x = n * c x ^ (n - 1) * deriv c x
@[deprecated deriv_pow (since := "2025-07-16")]
theorem deriv_pow'' {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {x : 𝕜} {c : 𝕜𝕜} (n : ) (hc : DifferentiableAt 𝕜 c x) :
deriv (c ^ n) x = n * c x ^ (n - 1) * deriv c x
theorem hasStrictDerivAt_pow {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] (n : ) (x : 𝕜) :
HasStrictDerivAt (fun (x : 𝕜) => x ^ n) (n * x ^ (n - 1)) x
theorem hasDerivWithinAt_pow {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {s : Set 𝕜} (n : ) (x : 𝕜) :
HasDerivWithinAt (fun (x : 𝕜) => x ^ n) (n * x ^ (n - 1)) s x
theorem hasDerivAt_pow {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] (n : ) (x : 𝕜) :
HasDerivAt (fun (x : 𝕜) => x ^ n) (n * x ^ (n - 1)) x
theorem derivWithin_pow_field {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {x : 𝕜} {s : Set 𝕜} (h : UniqueDiffWithinAt 𝕜 s x) (n : ) :
derivWithin (fun (x : 𝕜) => x ^ n) s x = n * x ^ (n - 1)
theorem deriv_pow_field {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {x : 𝕜} (n : ) :
deriv (fun (x : 𝕜) => x ^ n) x = n * x ^ (n - 1)