Documentation

Mathlib.Analysis.SpecialFunctions.ContinuousFunctionalCalculus.ExpLog

The exponential and logarithm based on the continuous functional calculus #

This file defines the logarithm via the continuous functional calculus (CFC) and builds its API. This allows one to take logs of matrices, operators, elements of a C⋆-algebra, etc.

It also shows that exponentials defined via the continuous functional calculus are equal to NormedSpace.exp (defined via power series) whenever the former are not junk values.

Main declarations #

Implementation notes #

Since cfc Real.exp and cfc Complex.exp are strictly less general than NormedSpace.exp (defined via power series), we only give minimal API for these here in order to relate NormedSpace.exp to functions defined via the CFC. In particular, we don't give separate definitions for them.

TODO #

theorem NormedSpace.exp_continuousMap_eq {𝕜 : Type u_1} {α : Type u_2} [RCLike 𝕜] [TopologicalSpace α] [CompactSpace α] (f : C(α, 𝕜)) :
NormedSpace.exp 𝕜 f = { toFun := NormedSpace.exp 𝕜 f, continuous_toFun := }
theorem CFC.exp_eq_normedSpace_exp {𝕜 : Type u_1} {A : Type u_2} [RCLike 𝕜] {p : AProp} [NormedRing A] [StarRing A] [TopologicalRing A] [NormedAlgebra 𝕜 A] [CompleteSpace A] [ContinuousFunctionalCalculus 𝕜 p] {a : A} (ha : p a := by cfc_tac) :
theorem IsSelfAdjoint.exp_nonneg {A : Type u_1} [NormedRing A] [StarRing A] [TopologicalRing A] [NormedAlgebra A] [CompleteSpace A] [ContinuousFunctionalCalculus IsSelfAdjoint] {𝕜 : Type u_2} [Field 𝕜] [Algebra 𝕜 A] [PartialOrder A] [StarOrderedRing A] {a : A} (ha : IsSelfAdjoint a) :
noncomputable def CFC.log {A : Type u_1} [NormedRing A] [StarRing A] [NormedAlgebra A] [ContinuousFunctionalCalculus IsSelfAdjoint] (a : A) :
A

The real logarithm, defined via the continuous functional calculus. This can be used on matrices, operators on a Hilbert space, elements of a C⋆-algebra, etc.

Equations
Instances For
    @[simp]
    @[simp]
    theorem CFC.log_zero {A : Type u_1} [NormedRing A] [StarRing A] [NormedAlgebra A] [ContinuousFunctionalCalculus IsSelfAdjoint] :
    @[simp]
    theorem CFC.log_one {A : Type u_1} [NormedRing A] [StarRing A] [NormedAlgebra A] [ContinuousFunctionalCalculus IsSelfAdjoint] :
    @[simp]
    theorem CFC.log_smul {A : Type u_1} [NormedRing A] [StarRing A] [NormedAlgebra A] [ContinuousFunctionalCalculus IsSelfAdjoint] [UniqueContinuousFunctionalCalculus A] {r : } (a : A) (ha₂ : xspectrum a, 0 < x) (hr : 0 < r) (ha₁ : IsSelfAdjoint a := by cfc_tac) :
    theorem CFC.log_pow {A : Type u_1} [NormedRing A] [StarRing A] [NormedAlgebra A] [ContinuousFunctionalCalculus IsSelfAdjoint] [UniqueContinuousFunctionalCalculus A] (n : ) (a : A) (ha₂ : xspectrum a, 0 < x) (ha₁ : IsSelfAdjoint a := by cfc_tac) :
    CFC.log (a ^ n) = n CFC.log a
    theorem CFC.exp_log {A : Type u_1} [NormedRing A] [StarRing A] [NormedAlgebra A] [ContinuousFunctionalCalculus IsSelfAdjoint] [UniqueContinuousFunctionalCalculus A] [CompleteSpace A] (a : A) (ha₂ : xspectrum a, 0 < x) (ha₁ : IsSelfAdjoint a := by cfc_tac) :