Documentation

Mathlib.Analysis.SpecialFunctions.ContinuousFunctionalCalculus.Rpow.Basic

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 #

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 #

TODO #

@[reducible, inline]
noncomputable abbrev NNReal.nnrpow (a b : NNReal) :

Taking a nonnegative power of a nonnegative number. This is defined as a standalone definition in order to speed up automation such as cfc_cont_tac.

Equations
Instances For
    @[simp]
    theorem NNReal.nnrpow_def (a b : NNReal) :
    a.nnrpow b = a ^ b

    Real powers of operators, based on the non-unital continuous functional calculus.

    Equations
    Instances For
      @[instance 100]

      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
      theorem CFC.nnrpow_inv_eq {A : Type u_1} [PartialOrder A] [NonUnitalRing A] [TopologicalSpace A] [StarRing A] [Module A] [SMulCommClass A A] [IsScalarTower A A] [StarOrderedRing A] [NonUnitalContinuousFunctionalCalculus A IsSelfAdjoint] [NonnegSpectrumClass A] [IsTopologicalRing A] [T2Space A] (a b : A) {x : NNReal} (hx : x 0) (ha : 0 a := by cfc_tac) (hb : 0 b := by cfc_tac) :
      a ^ x⁻¹ = b b ^ x = a
      theorem CFC.nnrpow_map_pi {ι : Type u_2} {C : ιType u_3} [(i : ι) → PartialOrder (C i)] [(i : ι) → NonUnitalRing (C i)] [(i : ι) → TopologicalSpace (C i)] [(i : ι) → StarRing (C i)] [∀ (i : ι), StarOrderedRing (C i)] [StarOrderedRing ((i : ι) → C i)] [(i : ι) → Module (C i)] [∀ (i : ι), SMulCommClass (C i) (C i)] [∀ (i : ι), IsScalarTower (C i) (C i)] [∀ (i : ι), NonUnitalContinuousFunctionalCalculus (C i) IsSelfAdjoint] [NonUnitalContinuousFunctionalCalculus ((i : ι) → C i) IsSelfAdjoint] [∀ (i : ι), IsTopologicalRing (C i)] [∀ (i : ι), T2Space (C i)] [NonnegSpectrumClass ((i : ι) → C i)] [∀ (i : ι), NonnegSpectrumClass (C i)] {c : (i : ι) → C i} {x : NNReal} (hc : ∀ (i : ι), 0 c i := by cfc_tac) :
      nnrpow c x = fun (i : ι) => c i ^ x
      theorem CFC.nnrpow_eq_nnrpow_pi {ι : Type u_2} {C : ιType u_3} [(i : ι) → PartialOrder (C i)] [(i : ι) → NonUnitalRing (C i)] [(i : ι) → TopologicalSpace (C i)] [(i : ι) → StarRing (C i)] [∀ (i : ι), StarOrderedRing (C i)] [StarOrderedRing ((i : ι) → C i)] [(i : ι) → Module (C i)] [∀ (i : ι), SMulCommClass (C i) (C i)] [∀ (i : ι), IsScalarTower (C i) (C i)] [∀ (i : ι), NonUnitalContinuousFunctionalCalculus (C i) IsSelfAdjoint] [NonUnitalContinuousFunctionalCalculus ((i : ι) → C i) IsSelfAdjoint] [∀ (i : ι), IsTopologicalRing (C i)] [∀ (i : ι), T2Space (C i)] [NonnegSpectrumClass ((i : ι) → C i)] [∀ (i : ι), NonnegSpectrumClass (C i)] {c : (i : ι) → C i} {x : NNReal} (hc : ∀ (i : ι), 0 c i := by cfc_tac) :
      nnrpow c x = c ^ x

      Square roots of operators, based on the non-unital continuous functional calculus.

      Equations
      Instances For
        theorem CFC.sqrt_eq_iff {A : Type u_1} [PartialOrder A] [NonUnitalRing A] [TopologicalSpace A] [StarRing A] [Module A] [SMulCommClass A A] [IsScalarTower A A] [StarOrderedRing A] [NonUnitalContinuousFunctionalCalculus A IsSelfAdjoint] [NonnegSpectrumClass A] [IsTopologicalRing A] [T2Space A] (a b : A) (ha : 0 a := by cfc_tac) (hb : 0 b := by cfc_tac) :
        sqrt a = b b * b = a
        theorem CFC.sqrt_map_pi {ι : Type u_2} {C : ιType u_3} [(i : ι) → PartialOrder (C i)] [(i : ι) → NonUnitalRing (C i)] [(i : ι) → TopologicalSpace (C i)] [(i : ι) → StarRing (C i)] [∀ (i : ι), StarOrderedRing (C i)] [StarOrderedRing ((i : ι) → C i)] [(i : ι) → Module (C i)] [∀ (i : ι), SMulCommClass (C i) (C i)] [∀ (i : ι), IsScalarTower (C i) (C i)] [∀ (i : ι), NonUnitalContinuousFunctionalCalculus (C i) IsSelfAdjoint] [NonUnitalContinuousFunctionalCalculus ((i : ι) → C i) IsSelfAdjoint] [∀ (i : ι), IsTopologicalRing (C i)] [∀ (i : ι), T2Space (C i)] [NonnegSpectrumClass ((i : ι) → C i)] [∀ (i : ι), NonnegSpectrumClass (C i)] {c : (i : ι) → C i} (hc : ∀ (i : ι), 0 c i := by cfc_tac) :
        sqrt c = fun (i : ι) => sqrt (c i)

        Real powers of operators, based on the unital continuous functional calculus.

        Equations
        Instances For
          @[instance 100]

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

          Equations
          theorem CFC.rpow_one {A : Type u_1} [PartialOrder A] [Ring A] [StarRing A] [TopologicalSpace A] [StarOrderedRing A] [Algebra A] [ContinuousFunctionalCalculus A IsSelfAdjoint] [NonnegSpectrumClass A] (a : A) (ha : 0 a := by cfc_tac) :
          a ^ 1 = a
          theorem CFC.rpow_zero {A : Type u_1} [PartialOrder A] [Ring A] [StarRing A] [TopologicalSpace A] [StarOrderedRing A] [Algebra A] [ContinuousFunctionalCalculus A IsSelfAdjoint] [NonnegSpectrumClass A] (a : A) (ha : 0 a := by cfc_tac) :
          a ^ 0 = 1
          theorem CFC.rpow_natCast {A : Type u_1} [PartialOrder A] [Ring A] [StarRing A] [TopologicalSpace A] [StarOrderedRing A] [Algebra A] [ContinuousFunctionalCalculus A IsSelfAdjoint] [NonnegSpectrumClass A] (a : A) (n : ) (ha : 0 a := by cfc_tac) :
          a ^ n = a ^ n
          theorem CFC.rpow_add {A : Type u_1} [PartialOrder A] [Ring A] [StarRing A] [TopologicalSpace A] [StarOrderedRing A] [Algebra A] [ContinuousFunctionalCalculus A IsSelfAdjoint] [NonnegSpectrumClass A] {a : A} {x y : } (ha : 0spectrum NNReal a) :
          a ^ (x + y) = a ^ x * a ^ y
          theorem CFC.rpow_rpow {A : Type u_1} [PartialOrder A] [Ring A] [StarRing A] [TopologicalSpace A] [StarOrderedRing A] [Algebra A] [ContinuousFunctionalCalculus A IsSelfAdjoint] [NonnegSpectrumClass A] [IsTopologicalRing A] [T2Space A] (a : A) (x y : ) (ha₁ : 0spectrum NNReal a) (hx : x 0) (ha₂ : 0 a := by cfc_tac) :
          (a ^ x) ^ y = a ^ (x * y)
          theorem CFC.rpow_rpow_of_exponent_nonneg {A : Type u_1} [PartialOrder A] [Ring A] [StarRing A] [TopologicalSpace A] [StarOrderedRing A] [Algebra A] [ContinuousFunctionalCalculus A IsSelfAdjoint] [NonnegSpectrumClass A] [IsTopologicalRing A] [T2Space A] (a : A) (x y : ) (hx : 0 x) (hy : 0 y) (ha₂ : 0 a := by cfc_tac) :
          (a ^ x) ^ y = a ^ (x * y)
          theorem CFC.rpow_mul_rpow_neg {A : Type u_1} [PartialOrder A] [Ring A] [StarRing A] [TopologicalSpace A] [StarOrderedRing A] [Algebra A] [ContinuousFunctionalCalculus A IsSelfAdjoint] [NonnegSpectrumClass A] {a : A} (x : ) (ha : 0spectrum NNReal a) (ha' : 0 a := by cfc_tac) :
          a ^ x * a ^ (-x) = 1
          theorem CFC.rpow_neg_mul_rpow {A : Type u_1} [PartialOrder A] [Ring A] [StarRing A] [TopologicalSpace A] [StarOrderedRing A] [Algebra A] [ContinuousFunctionalCalculus A IsSelfAdjoint] [NonnegSpectrumClass A] {a : A} (x : ) (ha : 0spectrum NNReal a) (ha' : 0 a := by cfc_tac) :
          a ^ (-x) * a ^ x = 1
          theorem CFC.rpow_neg_one_eq_inv {A : Type u_1} [PartialOrder A] [Ring A] [StarRing A] [TopologicalSpace A] [StarOrderedRing A] [Algebra A] [ContinuousFunctionalCalculus A IsSelfAdjoint] [NonnegSpectrumClass A] (a : Aˣ) (ha : 0 a := by cfc_tac) :
          a ^ (-1) = a⁻¹
          theorem CFC.rpow_neg {A : Type u_1} [PartialOrder A] [Ring A] [StarRing A] [TopologicalSpace A] [StarOrderedRing A] [Algebra A] [ContinuousFunctionalCalculus A IsSelfAdjoint] [NonnegSpectrumClass A] [IsTopologicalRing A] [T2Space A] (a : Aˣ) (x : ) (ha' : 0 a := by cfc_tac) :
          a ^ (-x) = a⁻¹ ^ x
          theorem CFC.rpow_intCast {A : Type u_1} [PartialOrder A] [Ring A] [StarRing A] [TopologicalSpace A] [StarOrderedRing A] [Algebra A] [ContinuousFunctionalCalculus A IsSelfAdjoint] [NonnegSpectrumClass A] (a : Aˣ) (n : ) (ha : 0 a := by cfc_tac) :
          a ^ n = ↑(a ^ n)
          theorem CFC.rpow_map_pi {ι : Type u_2} {C : ιType u_3} [(i : ι) → PartialOrder (C i)] [(i : ι) → Ring (C i)] [(i : ι) → StarRing (C i)] [(i : ι) → TopologicalSpace (C i)] [∀ (i : ι), StarOrderedRing (C i)] [StarOrderedRing ((i : ι) → C i)] [(i : ι) → Algebra (C i)] [∀ (i : ι), ContinuousFunctionalCalculus (C i) IsSelfAdjoint] [ContinuousFunctionalCalculus ((i : ι) → C i) IsSelfAdjoint] [∀ (i : ι), IsTopologicalRing (C i)] [∀ (i : ι), T2Space (C i)] [NonnegSpectrumClass ((i : ι) → C i)] [∀ (i : ι), NonnegSpectrumClass (C i)] {c : (i : ι) → C i} {x : } (hc : ∀ (i : ι), 0spectrum NNReal (c i)) (hc' : ∀ (i : ι), 0 c i := by cfc_tac) :
          rpow c x = fun (i : ι) => c i ^ x
          theorem CFC.rpow_eq_rpow_pi {ι : Type u_2} {C : ιType u_3} [(i : ι) → PartialOrder (C i)] [(i : ι) → Ring (C i)] [(i : ι) → StarRing (C i)] [(i : ι) → TopologicalSpace (C i)] [∀ (i : ι), StarOrderedRing (C i)] [StarOrderedRing ((i : ι) → C i)] [(i : ι) → Algebra (C i)] [∀ (i : ι), ContinuousFunctionalCalculus (C i) IsSelfAdjoint] [ContinuousFunctionalCalculus ((i : ι) → C i) IsSelfAdjoint] [∀ (i : ι), IsTopologicalRing (C i)] [∀ (i : ι), T2Space (C i)] [NonnegSpectrumClass ((i : ι) → C i)] [∀ (i : ι), NonnegSpectrumClass (C i)] {c : (i : ι) → C i} {x : } (hc : ∀ (i : ι), 0spectrum NNReal (c i)) (hc' : ∀ (i : ι), 0 c i := by cfc_tac) :
          rpow c x = c ^ x
          theorem CFC.rpow_sqrt {A : Type u_1} [PartialOrder A] [Ring A] [StarRing A] [TopologicalSpace A] [StarOrderedRing A] [Algebra A] [ContinuousFunctionalCalculus A IsSelfAdjoint] [NonnegSpectrumClass A] [IsTopologicalRing A] [T2Space A] (a : A) (x : ) (h : 0spectrum NNReal a) (ha : 0 a := by cfc_tac) :
          sqrt a ^ x = a ^ (x / 2)
          theorem CFC.rpow_sqrt_nnreal {A : Type u_1} [PartialOrder A] [Ring A] [StarRing A] [TopologicalSpace A] [StarOrderedRing A] [Algebra A] [ContinuousFunctionalCalculus A IsSelfAdjoint] [NonnegSpectrumClass A] [IsTopologicalRing A] [T2Space A] {a : A} {x : NNReal} (ha : 0 a := by cfc_tac) :
          sqrt a ^ x = a ^ (x / 2)