Complex and real exponential #
In this file we prove that Complex.exp
and Real.exp
are infinitely smooth functions.
Tags #
exp, derivative
theorem
AnalyticAt.cexp
{E : Type}
[NormedAddCommGroup E]
[NormedSpace ℂ E]
{f : E → ℂ}
{x : E}
(fa : AnalyticAt ℂ f x)
:
AnalyticAt ℂ (fun (z : E) => Complex.exp (f z)) x
exp ∘ f
is analytic
theorem
AnalyticWithinAt.cexp
{E : Type}
[NormedAddCommGroup E]
[NormedSpace ℂ E]
{f : E → ℂ}
{x : E}
{s : Set E}
(fa : AnalyticWithinAt ℂ f s x)
:
AnalyticWithinAt ℂ (fun (z : E) => Complex.exp (f z)) s x
theorem
AnalyticOnNhd.cexp
{E : Type}
[NormedAddCommGroup E]
[NormedSpace ℂ E]
{f : E → ℂ}
{s : Set E}
(fs : AnalyticOnNhd ℂ f s)
:
AnalyticOnNhd ℂ (fun (z : E) => Complex.exp (f z)) s
exp ∘ f
is analytic
theorem
AnalyticOn.cexp
{E : Type}
[NormedAddCommGroup E]
[NormedSpace ℂ E]
{f : E → ℂ}
{s : Set E}
(fs : AnalyticOn ℂ f s)
:
AnalyticOn ℂ (fun (z : E) => Complex.exp (f z)) s
The complex exponential is everywhere differentiable, with the derivative exp x
.
@[simp]
@[simp]
theorem
Complex.differentiableAt_exp
{𝕜 : Type u_1}
[NontriviallyNormedField 𝕜]
[NormedAlgebra 𝕜 ℂ]
{x : ℂ}
:
theorem
Complex.contDiff_exp
{𝕜 : Type u_1}
[NontriviallyNormedField 𝕜]
[NormedAlgebra 𝕜 ℂ]
{n : ℕ∞}
:
ContDiff 𝕜 n Complex.exp
theorem
Complex.hasStrictFDerivAt_exp_real
(x : ℂ)
:
HasStrictFDerivAt Complex.exp (Complex.exp x • 1) x
theorem
HasStrictDerivAt.cexp
{𝕜 : Type u_1}
[NontriviallyNormedField 𝕜]
[NormedAlgebra 𝕜 ℂ]
{f : 𝕜 → ℂ}
{f' : ℂ}
{x : 𝕜}
(hf : HasStrictDerivAt f f' x)
:
HasStrictDerivAt (fun (x : 𝕜) => Complex.exp (f x)) (Complex.exp (f x) * f') x
theorem
HasDerivAt.cexp
{𝕜 : Type u_1}
[NontriviallyNormedField 𝕜]
[NormedAlgebra 𝕜 ℂ]
{f : 𝕜 → ℂ}
{f' : ℂ}
{x : 𝕜}
(hf : HasDerivAt f f' x)
:
HasDerivAt (fun (x : 𝕜) => Complex.exp (f x)) (Complex.exp (f x) * f') x
theorem
HasDerivWithinAt.cexp
{𝕜 : Type u_1}
[NontriviallyNormedField 𝕜]
[NormedAlgebra 𝕜 ℂ]
{f : 𝕜 → ℂ}
{f' : ℂ}
{x : 𝕜}
{s : Set 𝕜}
(hf : HasDerivWithinAt f f' s x)
:
HasDerivWithinAt (fun (x : 𝕜) => Complex.exp (f x)) (Complex.exp (f x) * f') s x
theorem
derivWithin_cexp
{𝕜 : Type u_1}
[NontriviallyNormedField 𝕜]
[NormedAlgebra 𝕜 ℂ]
{f : 𝕜 → ℂ}
{x : 𝕜}
{s : Set 𝕜}
(hf : DifferentiableWithinAt 𝕜 f s x)
(hxs : UniqueDiffWithinAt 𝕜 s x)
:
derivWithin (fun (x : 𝕜) => Complex.exp (f x)) s x = Complex.exp (f x) * derivWithin f s x
@[simp]
theorem
deriv_cexp
{𝕜 : Type u_1}
[NontriviallyNormedField 𝕜]
[NormedAlgebra 𝕜 ℂ]
{f : 𝕜 → ℂ}
{x : 𝕜}
(hc : DifferentiableAt 𝕜 f x)
:
deriv (fun (x : 𝕜) => Complex.exp (f x)) x = Complex.exp (f x) * deriv f x
theorem
HasStrictFDerivAt.cexp
{𝕜 : Type u_1}
[NontriviallyNormedField 𝕜]
[NormedAlgebra 𝕜 ℂ]
{E : Type u_2}
[NormedAddCommGroup E]
[NormedSpace 𝕜 E]
{f : E → ℂ}
{f' : E →L[𝕜] ℂ}
{x : E}
(hf : HasStrictFDerivAt f f' x)
:
HasStrictFDerivAt (fun (x : E) => Complex.exp (f x)) (Complex.exp (f x) • f') x
theorem
HasFDerivWithinAt.cexp
{𝕜 : Type u_1}
[NontriviallyNormedField 𝕜]
[NormedAlgebra 𝕜 ℂ]
{E : Type u_2}
[NormedAddCommGroup E]
[NormedSpace 𝕜 E]
{f : E → ℂ}
{f' : E →L[𝕜] ℂ}
{x : E}
{s : Set E}
(hf : HasFDerivWithinAt f f' s x)
:
HasFDerivWithinAt (fun (x : E) => Complex.exp (f x)) (Complex.exp (f x) • f') s x
theorem
HasFDerivAt.cexp
{𝕜 : Type u_1}
[NontriviallyNormedField 𝕜]
[NormedAlgebra 𝕜 ℂ]
{E : Type u_2}
[NormedAddCommGroup E]
[NormedSpace 𝕜 E]
{f : E → ℂ}
{f' : E →L[𝕜] ℂ}
{x : E}
(hf : HasFDerivAt f f' x)
:
HasFDerivAt (fun (x : E) => Complex.exp (f x)) (Complex.exp (f x) • f') x
theorem
DifferentiableWithinAt.cexp
{𝕜 : Type u_1}
[NontriviallyNormedField 𝕜]
[NormedAlgebra 𝕜 ℂ]
{E : Type u_2}
[NormedAddCommGroup E]
[NormedSpace 𝕜 E]
{f : E → ℂ}
{x : E}
{s : Set E}
(hf : DifferentiableWithinAt 𝕜 f s x)
:
DifferentiableWithinAt 𝕜 (fun (x : E) => Complex.exp (f x)) s x
@[simp]
theorem
DifferentiableAt.cexp
{𝕜 : Type u_1}
[NontriviallyNormedField 𝕜]
[NormedAlgebra 𝕜 ℂ]
{E : Type u_2}
[NormedAddCommGroup E]
[NormedSpace 𝕜 E]
{f : E → ℂ}
{x : E}
(hc : DifferentiableAt 𝕜 f x)
:
DifferentiableAt 𝕜 (fun (x : E) => Complex.exp (f x)) x
theorem
DifferentiableOn.cexp
{𝕜 : Type u_1}
[NontriviallyNormedField 𝕜]
[NormedAlgebra 𝕜 ℂ]
{E : Type u_2}
[NormedAddCommGroup E]
[NormedSpace 𝕜 E]
{f : E → ℂ}
{s : Set E}
(hc : DifferentiableOn 𝕜 f s)
:
DifferentiableOn 𝕜 (fun (x : E) => Complex.exp (f x)) s
@[simp]
theorem
Differentiable.cexp
{𝕜 : Type u_1}
[NontriviallyNormedField 𝕜]
[NormedAlgebra 𝕜 ℂ]
{E : Type u_2}
[NormedAddCommGroup E]
[NormedSpace 𝕜 E]
{f : E → ℂ}
(hc : Differentiable 𝕜 f)
:
Differentiable 𝕜 fun (x : E) => Complex.exp (f x)
theorem
ContDiff.cexp
{𝕜 : Type u_1}
[NontriviallyNormedField 𝕜]
[NormedAlgebra 𝕜 ℂ]
{E : Type u_2}
[NormedAddCommGroup E]
[NormedSpace 𝕜 E]
{f : E → ℂ}
{n : ℕ∞}
(h : ContDiff 𝕜 n f)
:
ContDiff 𝕜 n fun (x : E) => Complex.exp (f x)
theorem
ContDiffAt.cexp
{𝕜 : Type u_1}
[NontriviallyNormedField 𝕜]
[NormedAlgebra 𝕜 ℂ]
{E : Type u_2}
[NormedAddCommGroup E]
[NormedSpace 𝕜 E]
{f : E → ℂ}
{x : E}
{n : ℕ∞}
(hf : ContDiffAt 𝕜 n f x)
:
ContDiffAt 𝕜 n (fun (x : E) => Complex.exp (f x)) x
theorem
ContDiffOn.cexp
{𝕜 : Type u_1}
[NontriviallyNormedField 𝕜]
[NormedAlgebra 𝕜 ℂ]
{E : Type u_2}
[NormedAddCommGroup E]
[NormedSpace 𝕜 E]
{f : E → ℂ}
{s : Set E}
{n : ℕ∞}
(hf : ContDiffOn 𝕜 n f s)
:
ContDiffOn 𝕜 n (fun (x : E) => Complex.exp (f x)) s
theorem
ContDiffWithinAt.cexp
{𝕜 : Type u_1}
[NontriviallyNormedField 𝕜]
[NormedAlgebra 𝕜 ℂ]
{E : Type u_2}
[NormedAddCommGroup E]
[NormedSpace 𝕜 E]
{f : E → ℂ}
{x : E}
{s : Set E}
{n : ℕ∞}
(hf : ContDiffWithinAt 𝕜 n f s x)
:
ContDiffWithinAt 𝕜 n (fun (x : E) => Complex.exp (f x)) s x
@[simp]
theorem
iteratedDeriv_cexp_const_mul
(n : ℕ)
(c : ℂ)
:
(iteratedDeriv n fun (s : ℂ) => Complex.exp (c * s)) = fun (s : ℂ) => c ^ n * Complex.exp (c * s)
theorem
AnalyticAt.rexp
{E : Type u_1}
[NormedAddCommGroup E]
[NormedSpace ℝ E]
{f : E → ℝ}
{x : E}
(fa : AnalyticAt ℝ f x)
:
AnalyticAt ℝ (fun (z : E) => Real.exp (f z)) x
exp ∘ f
is analytic
theorem
AnalyticWithinAt.rexp
{E : Type u_1}
[NormedAddCommGroup E]
[NormedSpace ℝ E]
{f : E → ℝ}
{s : Set E}
{x : E}
(fa : AnalyticWithinAt ℝ f s x)
:
AnalyticWithinAt ℝ (fun (z : E) => Real.exp (f z)) s x
theorem
AnalyticOnNhd.rexp
{E : Type u_1}
[NormedAddCommGroup E]
[NormedSpace ℝ E]
{f : E → ℝ}
{s : Set E}
(fs : AnalyticOnNhd ℝ f s)
:
AnalyticOnNhd ℝ (fun (z : E) => Real.exp (f z)) s
exp ∘ f
is analytic
theorem
AnalyticOn.rexp
{E : Type u_1}
[NormedAddCommGroup E]
[NormedSpace ℝ E]
{f : E → ℝ}
{s : Set E}
(fs : AnalyticOn ℝ f s)
:
AnalyticOn ℝ (fun (z : E) => Real.exp (f z)) s
Register lemmas for the derivatives of the composition of Real.exp
with a differentiable
function, for standalone use and use with simp
.
theorem
HasStrictDerivAt.exp
{f : ℝ → ℝ}
{f' x : ℝ}
(hf : HasStrictDerivAt f f' x)
:
HasStrictDerivAt (fun (x : ℝ) => Real.exp (f x)) (Real.exp (f x) * f') x
theorem
HasDerivAt.exp
{f : ℝ → ℝ}
{f' x : ℝ}
(hf : HasDerivAt f f' x)
:
HasDerivAt (fun (x : ℝ) => Real.exp (f x)) (Real.exp (f x) * f') x
theorem
HasDerivWithinAt.exp
{f : ℝ → ℝ}
{f' x : ℝ}
{s : Set ℝ}
(hf : HasDerivWithinAt f f' s x)
:
HasDerivWithinAt (fun (x : ℝ) => Real.exp (f x)) (Real.exp (f x) * f') s x
theorem
derivWithin_exp
{f : ℝ → ℝ}
{x : ℝ}
{s : Set ℝ}
(hf : DifferentiableWithinAt ℝ f s x)
(hxs : UniqueDiffWithinAt ℝ s x)
:
derivWithin (fun (x : ℝ) => Real.exp (f x)) s x = Real.exp (f x) * derivWithin f s x
Register lemmas for the derivatives of the composition of Real.exp
with a differentiable
function, for standalone use and use with simp
.
theorem
ContDiff.exp
{E : Type u_1}
[NormedAddCommGroup E]
[NormedSpace ℝ E]
{f : E → ℝ}
{n : ℕ∞}
(hf : ContDiff ℝ n f)
:
theorem
ContDiffAt.exp
{E : Type u_1}
[NormedAddCommGroup E]
[NormedSpace ℝ E]
{f : E → ℝ}
{x : E}
{n : ℕ∞}
(hf : ContDiffAt ℝ n f x)
:
ContDiffAt ℝ n (fun (x : E) => Real.exp (f x)) x
theorem
ContDiffOn.exp
{E : Type u_1}
[NormedAddCommGroup E]
[NormedSpace ℝ E]
{f : E → ℝ}
{s : Set E}
{n : ℕ∞}
(hf : ContDiffOn ℝ n f s)
:
ContDiffOn ℝ n (fun (x : E) => Real.exp (f x)) s
theorem
ContDiffWithinAt.exp
{E : Type u_1}
[NormedAddCommGroup E]
[NormedSpace ℝ E]
{f : E → ℝ}
{x : E}
{s : Set E}
{n : ℕ∞}
(hf : ContDiffWithinAt ℝ n f s x)
:
ContDiffWithinAt ℝ n (fun (x : E) => Real.exp (f x)) s x
theorem
HasFDerivWithinAt.exp
{E : Type u_1}
[NormedAddCommGroup E]
[NormedSpace ℝ E]
{f : E → ℝ}
{f' : E →L[ℝ] ℝ}
{x : E}
{s : Set E}
(hf : HasFDerivWithinAt f f' s x)
:
HasFDerivWithinAt (fun (x : E) => Real.exp (f x)) (Real.exp (f x) • f') s x
theorem
HasFDerivAt.exp
{E : Type u_1}
[NormedAddCommGroup E]
[NormedSpace ℝ E]
{f : E → ℝ}
{f' : E →L[ℝ] ℝ}
{x : E}
(hf : HasFDerivAt f f' x)
:
HasFDerivAt (fun (x : E) => Real.exp (f x)) (Real.exp (f x) • f') x
theorem
HasStrictFDerivAt.exp
{E : Type u_1}
[NormedAddCommGroup E]
[NormedSpace ℝ E]
{f : E → ℝ}
{f' : E →L[ℝ] ℝ}
{x : E}
(hf : HasStrictFDerivAt f f' x)
:
HasStrictFDerivAt (fun (x : E) => Real.exp (f x)) (Real.exp (f x) • f') x
theorem
DifferentiableWithinAt.exp
{E : Type u_1}
[NormedAddCommGroup E]
[NormedSpace ℝ E]
{f : E → ℝ}
{x : E}
{s : Set E}
(hf : DifferentiableWithinAt ℝ f s x)
:
DifferentiableWithinAt ℝ (fun (x : E) => Real.exp (f x)) s x
@[simp]
theorem
DifferentiableAt.exp
{E : Type u_1}
[NormedAddCommGroup E]
[NormedSpace ℝ E]
{f : E → ℝ}
{x : E}
(hc : DifferentiableAt ℝ f x)
:
DifferentiableAt ℝ (fun (x : E) => Real.exp (f x)) x
theorem
DifferentiableOn.exp
{E : Type u_1}
[NormedAddCommGroup E]
[NormedSpace ℝ E]
{f : E → ℝ}
{s : Set E}
(hc : DifferentiableOn ℝ f s)
:
DifferentiableOn ℝ (fun (x : E) => Real.exp (f x)) s
@[simp]
theorem
Differentiable.exp
{E : Type u_1}
[NormedAddCommGroup E]
[NormedSpace ℝ E]
{f : E → ℝ}
(hc : Differentiable ℝ f)
:
Differentiable ℝ fun (x : E) => Real.exp (f x)
theorem
fderivWithin_exp
{E : Type u_1}
[NormedAddCommGroup E]
[NormedSpace ℝ E]
{f : E → ℝ}
{x : E}
{s : Set E}
(hf : DifferentiableWithinAt ℝ f s x)
(hxs : UniqueDiffWithinAt ℝ s x)
:
fderivWithin ℝ (fun (x : E) => Real.exp (f x)) s x = Real.exp (f x) • fderivWithin ℝ f s x
@[simp]
theorem
fderiv_exp
{E : Type u_1}
[NormedAddCommGroup E]
[NormedSpace ℝ E]
{f : E → ℝ}
{x : E}
(hc : DifferentiableAt ℝ f x)
: