Documentation

Mathlib.Analysis.Normed.Algebra.Spectrum

The spectrum of elements in a complete normed algebra #

This file contains the basic theory for the resolvent and spectrum of a Banach algebra. Theorems specific to complex Banach algebras, such as Gelfand's formula can be found in Mathlib/Analysis/Normed/Algebra/GelfandFormula.lean.

Main definitions #

Main statements #

Implementation notes #

spectralRadius is defined via quasispectrum rather than spectrum so that it makes sense for non-unital normed rings too. When A is unital, quasispectrum 𝕜 a = spectrum 𝕜 a ∪ {0} (quasispectrum_eq_spectrum_union_zero), and since 0 never increases the supremum defining spectralRadius, spectralRadius_eq_of_unital shows this agrees with the supremum over spectrum 𝕜 a alone. In general, we prove results for unital algebras and then transfer them to the non-unital setting by considering the unital Banach algebra WithLp 1 (Unitization 𝕜 A).

Currently, the elementary results in this file (those that work for NormedField 𝕜) assume CompleteSpace A, and for the non-unital material, CompleteSpace 𝕜. And in the unital case, the results without NormOneClass A involve an unsightly ‖1‖ appearing in various places. It is possible to remove the occurrences of ‖1‖, NormOneClass A, and to replace CompleteSpace A with HasSummableGeomSeries A (and remove CompleteSpace 𝕜 in the non-unital case), but it is currently partially blocked for reasons we shall now describe. To make the substitutions, we need an instance of HasSummableGeomSeries (WithLp 1 (Unitization 𝕜 A)) under the assumption HasSummableGeomSeries A where A is a (possibly non-unital) normed algebra over a normed field 𝕜. If A is already unital, then it is already possible to write this instance, but if A is non-unital, then we cannot express HasSummableGeomSeries A because this is currently restricted to NormedRings, in part because we have no Pow ℕ+ A instance for semigroups, making the necessary statement unpleasant to express and work with.

noncomputable def spectralRadius (𝕜 : Type u_1) {A : Type u_2} [NormedField 𝕜] [NonUnitalRing A] [Module 𝕜 A] (a : A) :

The spectral radius is the supremum of the nnnorm (‖·‖₊) of elements in the quasispectrum, coerced into an element of ℝ≥0∞.

It is also possible that quasispectrum 𝕜 a be unbounded (though not for Banach algebras, see spectrum.isBounded/quasispectrum.isBounded, below). In this case, spectralRadius a = ∞.

When A is unital, spectrum and quasispectrum differ only by the inclusion of 0 which does not affect the spectral radius, so in the unital case, one may take the spectral radius to be the supremum over the spectrum instead of the quasispectrum (see spectralRadius_eq_of_unital).

Equations
Instances For
    @[simp]
    theorem Unitization.spectralRadius_inr {𝕜 : Type u_1} {A : Type u_2} [NormedField 𝕜] [NonUnitalRing A] [Module 𝕜 A] [IsScalarTower 𝕜 A A] [SMulCommClass 𝕜 A A] (a : A) :
    @[simp]
    theorem spectrum.SpectralRadius.of_subsingleton {𝕜 : Type u_1} {A : Type u_2} [NormedField 𝕜] [NonUnitalRing A] [Module 𝕜 A] [Subsingleton A] (a : A) :
    spectralRadius 𝕜 a = 0
    @[simp]
    theorem spectrum.spectralRadius_zero {𝕜 : Type u_1} {A : Type u_2} [NormedField 𝕜] [NonUnitalRing A] [Module 𝕜 A] :
    spectralRadius 𝕜 0 = 0
    theorem spectralRadius_eq_of_unital {𝕜 : Type u_1} {A : Type u_2} [NormedField 𝕜] [Ring A] [Algebra 𝕜 A] (a : A) :
    spectralRadius 𝕜 a = kspectrum 𝕜 a, k‖₊
    @[simp]
    theorem spectrum.spectralRadius_one {𝕜 : Type u_1} {A : Type u_2} [NormedField 𝕜] [Ring A] [Algebra 𝕜 A] [Nontrivial A] :
    spectralRadius 𝕜 1 = 1
    theorem spectrum.mem_resolventSet_of_spectralRadius_lt {𝕜 : Type u_1} {A : Type u_2} [NormedField 𝕜] [Ring A] [Algebra 𝕜 A] {a : A} {k : 𝕜} (h : spectralRadius 𝕜 a < k‖₊) :
    k resolventSet 𝕜 a
    theorem spectrum.spectralRadius_pow_le {𝕜 : Type u_1} {A : Type u_2} [NormedField 𝕜] [Ring A] [Algebra 𝕜 A] (a : A) (n : ) (hn : n 0) :
    spectralRadius 𝕜 a ^ n spectralRadius 𝕜 (a ^ n)
    theorem spectrum.spectralRadius_pow_le' {𝕜 : Type u_1} {A : Type u_2} [NormedField 𝕜] [Ring A] [Algebra 𝕜 A] [Nontrivial A] (a : A) (n : ) :
    spectralRadius 𝕜 a ^ n spectralRadius 𝕜 (a ^ n)
    theorem spectrum.isOpen_resolventSet {𝕜 : Type u_1} {A : Type u_2} [NormedField 𝕜] [NormedRing A] [NormedAlgebra 𝕜 A] [CompleteSpace A] (a : A) :
    @[simp]
    theorem spectrum.isClosed {𝕜 : Type u_1} {A : Type u_2} [NormedField 𝕜] [NormedRing A] [NormedAlgebra 𝕜 A] [CompleteSpace A] (a : A) :
    theorem spectrum.mem_resolventSet_of_norm_lt_mul {𝕜 : Type u_1} {A : Type u_2} [NormedField 𝕜] [NormedRing A] [NormedAlgebra 𝕜 A] [CompleteSpace A] {a : A} {k : 𝕜} (h : a * 1 < k) :
    k resolventSet 𝕜 a
    theorem spectrum.mem_resolventSet_of_norm_lt {𝕜 : Type u_1} {A : Type u_2} [NormedField 𝕜] [NormedRing A] [NormedAlgebra 𝕜 A] [CompleteSpace A] [NormOneClass A] {a : A} {k : 𝕜} (h : a < k) :
    k resolventSet 𝕜 a
    theorem spectrum.norm_le_norm_mul_of_mem {𝕜 : Type u_1} {A : Type u_2} [NormedField 𝕜] [NormedRing A] [NormedAlgebra 𝕜 A] [CompleteSpace A] {a : A} {k : 𝕜} (hk : k spectrum 𝕜 a) :
    theorem spectrum.norm_le_norm_of_mem {𝕜 : Type u_1} {A : Type u_2} [NormedField 𝕜] [NormedRing A] [NormedAlgebra 𝕜 A] [CompleteSpace A] [NormOneClass A] {a : A} {k : 𝕜} (hk : k spectrum 𝕜 a) :
    theorem spectrum.subset_closedBall_norm_mul {𝕜 : Type u_1} {A : Type u_2} [NormedField 𝕜] [NormedRing A] [NormedAlgebra 𝕜 A] [CompleteSpace A] (a : A) :
    theorem spectrum.subset_closedBall_norm {𝕜 : Type u_1} {A : Type u_2} [NormedField 𝕜] [NormedRing A] [NormedAlgebra 𝕜 A] [CompleteSpace A] [NormOneClass A] (a : A) :
    @[simp]
    theorem spectrum.isBounded {𝕜 : Type u_1} {A : Type u_2} [NormedField 𝕜] [NormedRing A] [NormedAlgebra 𝕜 A] [CompleteSpace A] (a : A) :
    @[simp]
    theorem spectrum.isCompact {𝕜 : Type u_1} {A : Type u_2} [NormedField 𝕜] [NormedRing A] [NormedAlgebra 𝕜 A] [CompleteSpace A] [ProperSpace 𝕜] (a : A) :
    instance spectrum.instCompactSpace {𝕜 : Type u_1} {A : Type u_2} [NormedField 𝕜] [NormedRing A] [NormedAlgebra 𝕜 A] [CompleteSpace A] [ProperSpace 𝕜] (a : A) :
    theorem spectrum.exists_nnnorm_eq_spectralRadius_of_nonempty {𝕜 : Type u_1} {A : Type u_2} [NormedField 𝕜] [NormedRing A] [NormedAlgebra 𝕜 A] [CompleteSpace A] [ProperSpace 𝕜] {a : A} (ha : (spectrum 𝕜 a).Nonempty) :
    kspectrum 𝕜 a, k‖₊ = spectralRadius 𝕜 a
    theorem spectrum.spectralRadius_lt_of_forall_lt_of_nonempty {𝕜 : Type u_1} {A : Type u_2} [NormedField 𝕜] [NormedRing A] [NormedAlgebra 𝕜 A] [CompleteSpace A] [ProperSpace 𝕜] {a : A} {r : NNReal} (ha : (spectrum 𝕜 a).Nonempty) (hr : kspectrum 𝕜 a, k‖₊ < r) :
    spectralRadius 𝕜 a < r
    theorem spectrum.spectralRadius_le_pow_nnnorm_pow_one_div (𝕜 : Type u_1) {A : Type u_2} [NormedField 𝕜] [NormedRing A] [NormedAlgebra 𝕜 A] [CompleteSpace A] (a : A) (n : ) :
    spectralRadius 𝕜 a a ^ (n + 1)‖₊ ^ (1 / (n + 1)) * 1‖₊ ^ (1 / (n + 1))
    theorem spectrum.spectralRadius_le_liminf_pow_nnnorm_pow_one_div (𝕜 : Type u_1) {A : Type u_2} [NormedField 𝕜] [NormedRing A] [NormedAlgebra 𝕜 A] [CompleteSpace A] (a : A) :
    spectralRadius 𝕜 a Filter.liminf (fun (n : ) => a ^ n‖₊ ^ (1 / n)) Filter.atTop
    theorem spectrum.hasFPowerSeriesOnBall_inverse_one_sub_smul (𝕜 : Type u_1) {A : Type u_2} [NontriviallyNormedField 𝕜] [NormedRing A] [NormedAlgebra 𝕜 A] [HasSummableGeomSeries A] (a : A) :
    HasFPowerSeriesOnBall (fun (z : 𝕜) => Ring.inverse (1 - z a)) (fun (n : ) => ContinuousMultilinearMap.mkPiRing 𝕜 (Fin n) (a ^ n)) 0 (↑a‖₊)⁻¹

    In a Banach algebra A over a nontrivially normed field 𝕜, for any a : A the power series with coefficients a ^ n represents the function (1 - z • a)⁻¹ in a disk of radius ‖a‖₊⁻¹.

    theorem spectrum.isUnit_one_sub_smul_of_lt_inv_radius {𝕜 : Type u_1} {A : Type u_2} [NontriviallyNormedField 𝕜] [NormedRing A] [NormedAlgebra 𝕜 A] {a : A} {z : 𝕜} (h : z‖₊ < (spectralRadius 𝕜 a)⁻¹) :
    IsUnit (1 - z a)
    theorem spectrum.exp_mem_exp {𝕜 : Type u_1} {A : Type u_2} [RCLike 𝕜] [NormedRing A] [NormedAlgebra 𝕜 A] [CompleteSpace A] (a : A) {z : 𝕜} (hz : z spectrum 𝕜 a) :

    For 𝕜 = ℝ or 𝕜 = ℂ, exp maps the spectrum of a into the spectrum of exp a.

    @[simp]
    theorem quasispectrum.isCompact {𝕜 : Type u_1} {A : Type u_2} [NormedField 𝕜] [NonUnitalNormedRing A] [NormedSpace 𝕜 A] [IsScalarTower 𝕜 A A] [SMulCommClass 𝕜 A A] [CompleteSpace 𝕜] [CompleteSpace A] [ProperSpace 𝕜] (a : A) :
    instance quasispectrum.instCompactSpace {𝕜 : Type u_1} {A : Type u_2} [NormedField 𝕜] [NonUnitalNormedRing A] [NormedSpace 𝕜 A] [IsScalarTower 𝕜 A A] [SMulCommClass 𝕜 A A] [CompleteSpace 𝕜] [CompleteSpace A] [ProperSpace 𝕜] (a : A) :
    theorem quasispectrum.isClosed {𝕜 : Type u_1} {A : Type u_2} [NormedField 𝕜] [NonUnitalNormedRing A] [NormedSpace 𝕜 A] [IsScalarTower 𝕜 A A] [SMulCommClass 𝕜 A A] [CompleteSpace 𝕜] [CompleteSpace A] (a : A) :
    theorem quasispectrum.isBounded {𝕜 : Type u_1} {A : Type u_2} [NormedField 𝕜] [NonUnitalNormedRing A] [NormedSpace 𝕜 A] [IsScalarTower 𝕜 A A] [SMulCommClass 𝕜 A A] [CompleteSpace 𝕜] [CompleteSpace A] (a : A) :
    theorem quasispectrum.norm_le_norm_of_mem {𝕜 : Type u_1} {A : Type u_2} [NormedField 𝕜] [NonUnitalNormedRing A] [NormedSpace 𝕜 A] [IsScalarTower 𝕜 A A] [SMulCommClass 𝕜 A A] [CompleteSpace 𝕜] [CompleteSpace A] {a : A} {k : 𝕜} (hk : k quasispectrum 𝕜 a) :
    theorem spectralRadius_le_nnnorm {𝕜 : Type u_1} {A : Type u_2} [NormedField 𝕜] [NonUnitalNormedRing A] [NormedSpace 𝕜 A] [IsScalarTower 𝕜 A A] [SMulCommClass 𝕜 A A] [CompleteSpace 𝕜] [CompleteSpace A] (a : A) :
    @[deprecated spectralRadius_le_nnnorm (since := "2026-08-13")]
    theorem spectrum.spectralRadius_le_nnnorm {𝕜 : Type u_1} {A : Type u_2} [NormedField 𝕜] [NonUnitalNormedRing A] [NormedSpace 𝕜 A] [IsScalarTower 𝕜 A A] [SMulCommClass 𝕜 A A] [CompleteSpace 𝕜] [CompleteSpace A] (a : A) :

    Alias of spectralRadius_le_nnnorm.

    theorem exists_nnnorm_quasispectrum_eq_spectralRadius {𝕜 : Type u_1} {A : Type u_2} [NormedField 𝕜] [NonUnitalNormedRing A] [NormedSpace 𝕜 A] [IsScalarTower 𝕜 A A] [SMulCommClass 𝕜 A A] [CompleteSpace 𝕜] [CompleteSpace A] [ProperSpace 𝕜] (a : A) :
    kquasispectrum 𝕜 a, k‖₊ = spectralRadius 𝕜 a
    theorem spectralRadius_lt_of_forall_quasispectrum_lt {𝕜 : Type u_1} {A : Type u_2} [NormedField 𝕜] [NonUnitalNormedRing A] [NormedSpace 𝕜 A] [IsScalarTower 𝕜 A A] [SMulCommClass 𝕜 A A] [CompleteSpace 𝕜] [CompleteSpace A] [ProperSpace 𝕜] {a : A} {r : NNReal} (hr : kquasispectrum 𝕜 a, k‖₊ < r) :
    spectralRadius 𝕜 a < r
    @[instance 100]
    instance AlgHom.instContinuousLinearMapClassOfAlgHomClass {𝕜 : Type u_1} {A : Type u_2} {F : Type u_3} [NormedField 𝕜] [NormedRing A] [NormedAlgebra 𝕜 A] [CompleteSpace A] [FunLike F A 𝕜] [AlgHomClass F 𝕜 A 𝕜] :
    def AlgHom.toContinuousLinearMap {𝕜 : Type u_1} {A : Type u_2} [NormedField 𝕜] [NormedRing A] [NormedAlgebra 𝕜 A] [CompleteSpace A] (φ : A →ₐ[𝕜] 𝕜) :
    StrongDual 𝕜 A

    An algebra homomorphism into the base field, as a continuous linear map (since it is automatically bounded).

    Equations
    Instances For
      @[simp]
      theorem AlgHom.coe_toContinuousLinearMap {𝕜 : Type u_1} {A : Type u_2} [NormedField 𝕜] [NormedRing A] [NormedAlgebra 𝕜 A] [CompleteSpace A] (φ : A →ₐ[𝕜] 𝕜) :
      theorem AlgHom.norm_apply_le_self_mul_norm_one {𝕜 : Type u_1} {A : Type u_2} {F : Type u_3} [NormedField 𝕜] [NormedRing A] [NormedAlgebra 𝕜 A] [CompleteSpace A] [FunLike F A 𝕜] [AlgHomClass F 𝕜 A 𝕜] (f : F) (a : A) :
      theorem AlgHom.norm_apply_le_self {𝕜 : Type u_1} {A : Type u_2} {F : Type u_3} [NormedField 𝕜] [NormedRing A] [NormedAlgebra 𝕜 A] [CompleteSpace A] [NormOneClass A] [FunLike F A 𝕜] [AlgHomClass F 𝕜 A 𝕜] (f : F) (a : A) :
      noncomputable def WeakDual.CharacterSpace.equivAlgHom {𝕜 : Type u_1} {A : Type u_2} [NontriviallyNormedField 𝕜] [NormedRing A] [CompleteSpace A] [NormedAlgebra 𝕜 A] :
      (characterSpace 𝕜 A) (A →ₐ[𝕜] 𝕜)

      The equivalence between characters and algebra homomorphisms into the base field.

      Equations
      Instances For
        @[simp]
        theorem WeakDual.CharacterSpace.equivAlgHom_coe {𝕜 : Type u_1} {A : Type u_2} [NontriviallyNormedField 𝕜] [NormedRing A] [CompleteSpace A] [NormedAlgebra 𝕜 A] (f : (characterSpace 𝕜 A)) :
        (equivAlgHom f) = f
        @[simp]
        theorem WeakDual.CharacterSpace.equivAlgHom_symm_coe {𝕜 : Type u_1} {A : Type u_2} [NontriviallyNormedField 𝕜] [NormedRing A] [CompleteSpace A] [NormedAlgebra 𝕜 A] (f : A →ₐ[𝕜] 𝕜) :
        (equivAlgHom.symm f) = f
        theorem Subalgebra.isUnit_of_isUnit_val_of_eventually {𝕜 : Type u_3} {A : Type u_4} {SA : Type u_5} [NormedRing A] [CompleteSpace A] [SetLike SA A] [SubringClass SA A] [NormedField 𝕜] [NormedAlgebra 𝕜 A] [instSMulMem : SMulMemClass SA 𝕜 A] (S : SA) [hS : IsClosed S] {l : Filter S} {a : S} (ha : IsUnit a) (hla : l nhds a) (hl : ∀ᶠ (x : S) in l, IsUnit x) (hl' : l.NeBot) :

        Let S be a closed subalgebra of a Banach algebra A. If a : S is invertible in A, and for all x : S sufficiently close to a within some filter l, x is invertible in S, then a is invertible in S as well.

        theorem Subalgebra.frontier_spectrum {𝕜 : Type u_3} {A : Type u_4} {SA : Type u_5} [NormedRing A] [CompleteSpace A] [SetLike SA A] [SubringClass SA A] [NormedField 𝕜] [NormedAlgebra 𝕜 A] [instSMulMem : SMulMemClass SA 𝕜 A] (S : SA) [hS : IsClosed S] (x : S) :
        frontier (spectrum 𝕜 x)spectrum 𝕜 x

        If S : Subalgebra 𝕜 A is a closed subalgebra of a Banach algebra A, then for any x : S, the boundary of the spectrum of x relative to S is a subset of the spectrum of ↑x : A relative to A.

        theorem Subalgebra.frontier_subset_frontier {𝕜 : Type u_3} {A : Type u_4} {SA : Type u_5} [NormedRing A] [CompleteSpace A] [SetLike SA A] [SubringClass SA A] [NormedField 𝕜] [NormedAlgebra 𝕜 A] [instSMulMem : SMulMemClass SA 𝕜 A] (S : SA) [hS : IsClosed S] (x : S) :
        frontier (spectrum 𝕜 x)frontier (spectrum 𝕜 x)

        If S is a closed subalgebra of a Banach algebra A, then for any x : S, the boundary of the spectrum of x relative to S is a subset of the boundary of the spectrum of ↑x : A relative to A.

        theorem Subalgebra.spectrum_sUnion_connectedComponentIn {𝕜 : Type u_3} {A : Type u_4} {SA : Type u_5} [NormedRing A] [CompleteSpace A] [SetLike SA A] [SubringClass SA A] [NormedField 𝕜] [NormedAlgebra 𝕜 A] [instSMulMem : SMulMemClass SA 𝕜 A] (S : SA) [hS : IsClosed S] (x : S) :
        spectrum 𝕜 x = spectrum 𝕜 x zspectrum 𝕜 x \ spectrum 𝕜 x, connectedComponentIn (spectrum 𝕜 x) z

        If S is a closed subalgebra of a Banach algebra A, then for any x : S, the spectrum of x is the spectrum of ↑x : A along with the connected components of the complement of the spectrum of ↑x : A which contain an element of the spectrum of x : S.

        theorem Subalgebra.spectrum_isBounded_connectedComponentIn {𝕜 : Type u_3} {A : Type u_4} {SA : Type u_5} [NormedRing A] [CompleteSpace A] [SetLike SA A] [SubringClass SA A] [NormedField 𝕜] [NormedAlgebra 𝕜 A] [instSMulMem : SMulMemClass SA 𝕜 A] (S : SA) [hS : IsClosed S] (x : S) {z : 𝕜} (hz : z spectrum 𝕜 x) :

        Let S be a closed subalgebra of a Banach algebra A, and let x : S. If z is in the spectrum of x, then the connected component of z in the complement of the spectrum of ↑x : A is bounded (or else z actually belongs to the spectrum of ↑x : A).

        theorem Subalgebra.spectrum_eq_of_isPreconnected_compl {𝕜 : Type u_3} {A : Type u_4} {SA : Type u_5} [NormedRing A] [CompleteSpace A] [SetLike SA A] [SubringClass SA A] [NontriviallyNormedField 𝕜] [NormedAlgebra 𝕜 A] [SMulMemClass SA 𝕜 A] (S : SA) [hS : IsClosed S] (x : S) (h : IsPreconnected (spectrum 𝕜 x)) :
        spectrum 𝕜 x = spectrum 𝕜 x

        Let S be a closed subalgebra of a Banach algebra A. If for x : S the complement of the spectrum of ↑x : A is connected, then spectrum 𝕜 x = spectrum 𝕜 (x : A).

        theorem QuasispectrumRestricts.spectralRadius_eq {𝕜₁ : Type u_3} {𝕜₂ : Type u_4} {A : Type u_5} [NormedField 𝕜₁] [NormedField 𝕜₂] [NonUnitalRing A] [Module 𝕜₁ A] [Module 𝕜₂ A] [NormedAlgebra 𝕜₁ 𝕜₂] [IsScalarTower 𝕜₁ 𝕜₂ A] [IsScalarTower 𝕜₂ A A] [SMulCommClass 𝕜₂ A A] {f : 𝕜₂𝕜₁} {a : A} (h : QuasispectrumRestricts a f) :
        spectralRadius 𝕜₁ a = spectralRadius 𝕜₂ a

        If 𝕜₁ is a normed field contained as subfield of a larger normed field 𝕜₂, and if a : A is an element (in a possibly non-unital 𝕜₂-algebra) whose 𝕜₂ quasispectrum restricts to 𝕜₁, then the spectral radii over each scalar field coincide.

        theorem SpectrumRestricts.spectralRadius_eq {𝕜₁ : Type u_3} {𝕜₂ : Type u_4} {A : Type u_5} [NormedField 𝕜₁] [NormedField 𝕜₂] [NormedRing A] [NormedAlgebra 𝕜₁ A] [NormedAlgebra 𝕜₂ A] [NormedAlgebra 𝕜₁ 𝕜₂] [IsScalarTower 𝕜₁ 𝕜₂ A] {f : 𝕜₂𝕜₁} {a : A} (h : SpectrumRestricts a f) :
        spectralRadius 𝕜₁ a = spectralRadius 𝕜₂ a

        If 𝕜₁ is a normed field contained as subfield of a larger normed field 𝕜₂, and if a : A is an element whose 𝕜₂ spectrum restricts to 𝕜₁, then the spectral radii over each scalar field coincide.

        theorem QuasispectrumRestricts.compactSpace {R : Type u_3} {S : Type u_4} {A : Type u_5} [Semifield R] [Field S] [NonUnitalRing A] [Algebra R S] [Module R A] [Module S A] [IsScalarTower S A A] [SMulCommClass S A A] [IsScalarTower R S A] [TopologicalSpace R] [TopologicalSpace S] {a : A} (f : C(S, R)) (h : QuasispectrumRestricts a f) [h_cpct : CompactSpace (quasispectrum S a)] :

        The map a ↦ spectrum ℝ≥0 a is upper hemicontinuous.

        The map a ↦ quasispectrum 𝕜 a is upper hemicontinuous.