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ℝ≥0
power function based on the non-unital CFC, i.e.cfcₙ NNReal.rpow
composed 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 ^ y
withA
an operator andy : ℝ
works as expected. Likewise, we define aPow A ℝ≥0
instance 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
a
andb
. - 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 ℝ ℝ
).