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 ℝ ℝ.
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
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 ℝ ℝ).