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.sqrt
- CFC.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 and- a = sqrt a * sqrt a,
- sqrt ais invertible and- a = sqrt a * sqrt a,
- a = b * bfor some strictly positive- b,
- a = b * bfor some self-adjoint and invertible- b,
- a = star b * bfor some invertible- b,
- a = b * star bfor some invertible- b,
- 0 ≤ aand- ais invertible,
- ais self-adjoint and has positive spectrum.