Real powers defined via the continuous functional calculus #
This file defines real powers via the continuous functional calculus (CFC) and builds its API. This allows one to take real powers of matrices, operators, elements of a C⋆-algebra, etc. The square root is also defined via the non-unital CFC.
Main declarations #
CFC.nnrpow: theℝ≥0power function based on the non-unital CFC, i.e.cfcₙ NNReal.rpowcomposed with(↑) : ℝ≥0 → ℝ.CFC.sqrt: the square root function based on the non-unital CFC, i.e.cfcₙ NNReal.sqrtCFC.rpow: the real power function based on the unital CFC, i.e.cfc NNReal.rpow
Implementation notes #
We define two separate versions CFC.nnrpow and CFC.rpow due to what happens at 0. Since
NNReal.rpow 0 0 = 1, this means that this function does not map zero to zero when the exponent
is zero, and hence CFC.nnrpow a 0 = 0 whereas CFC.rpow a 0 = 1. Note that the non-unital version
only makes sense for nonnegative exponents, and hence we define it such that the exponent is in
ℝ≥0.
Notation #
- We define a
Pow A ℝinstance forCFC.rpow, i.ea ^ ywithAan operator andy : ℝworks as expected. Likewise, we define aPow A ℝ≥0instance forCFC.nnrpow. Note that these are low-priority instances, in order to avoid overriding instances such asPow ℝ ℝ,Pow (A × B) ℝorPow (∀ i, A i) ℝ.
TODO #
- Relate these to the log and exp functions
- Lemmas about how these functions interact with commuting
aandb. - Prove the order properties (operator monotonicity and concavity/convexity)
Real powers of operators, based on the non-unital continuous functional calculus.
Equations
- CFC.nnrpow a y = cfcₙ (fun (x : NNReal) => x.nnrpow y) a
Instances For
Enable a ^ y notation for CFC.nnrpow. This is a low-priority instance to make sure it does
not take priority over other instances when they are available.
Equations
- CFC.instPowNNReal = { pow := fun (a : A) (y : NNReal) => CFC.nnrpow a y }
Square roots of operators, based on the non-unital continuous functional calculus.
Equations
- CFC.sqrt a = cfcₙ (⇑NNReal.sqrt) a
Instances For
Note that the hypothesis 0 ≤ a is necessary because the continuous functional calculi over
ℝ≥0 (for the left-hand side) and ℝ (for the right-hand side) use different predicates (i.e.,
(0 ≤ ·) versus IsSelfAdjoint). Consequently, if a is selfadjoint but not nonnegative, then
the left-hand side is zero, but the right-hand side is (provably equal to) CFC.sqrt a⁺.
For an element a in a C⋆-algebra, TFAE:
Real powers of operators, based on the unital continuous functional calculus.
Instances For
Enable a ^ y notation for CFC.rpow. This is a low-priority instance to make sure it does
not take priority over other instances when they are available (such as Pow ℝ ℝ).
a ^ x bundled as an element of Aˣ for a : Aˣ.
Instances For
Alias of CFC.rpow_eq_rpow_prod.
For an element a in a C⋆-algebra, TFAE:
ais strictly positive,sqrt ais strictly positive anda = sqrt a * sqrt a,sqrt ais invertible anda = sqrt a * sqrt a,a = b * bfor some strictly positiveb,a = b * bfor some self-adjoint and invertibleb,a = star b * bfor some invertibleb,a = b * star bfor some invertibleb,0 ≤ aandais invertible,ais self-adjoint and has positive spectrum.