# mathlib3documentation

algebra.algebra.spectrum

# Spectrum of an element in an algebra #

THIS FILE IS SYNCHRONIZED WITH MATHLIB4. Any changes to this file require a corresponding PR to mathlib4. This file develops the basic theory of the spectrum of an element of an algebra. This theory will serve as the foundation for spectral theory in Banach algebras.

## Main definitions #

• resolvent_set a : set R: the resolvent set of an element a : A where A is an R-algebra.
• spectrum a : set R: the spectrum of an element a : A where A is an R-algebra.
• resolvent : R → A: the resolvent function is λ r, ring.inverse (↑ₐr - a), and hence when r ∈ resolvent R A, it is actually the inverse of the unit (↑ₐr - a).

## Main statements #

• spectrum.unit_smul_eq_smul and spectrum.smul_eq_smul: units in the scalar ring commute (multiplication) with the spectrum, and over a field even 0 commutes with the spectrum.
• spectrum.left_add_coset_eq: elements of the scalar ring commute (addition) with the spectrum.
• spectrum.unit_mem_mul_iff_mem_swap_mul and spectrum.preimage_units_mul_eq_swap_mul: the units (of R) in σ (a*b) coincide with those in σ (b*a).
• spectrum.scalar_eq: in a nontrivial algebra over a field, the spectrum of a scalar is a singleton.

## Notations #

• σ a : spectrum R a of a : A
def resolvent_set (R : Type u) {A : Type v} [ring A] [ A] (a : A) :
set R

Given a commutative ring R and an R-algebra A, the resolvent set of a : A is the set R consisting of those r : R for which r•1 - a is a unit of the algebra A.

Equations
def spectrum (R : Type u) {A : Type v} [ring A] [ A] (a : A) :
set R

Given a commutative ring R and an R-algebra A, the spectrum of a : A is the set R consisting of those r : R for which r•1 - a is not a unit of the algebra A.

The spectrum is simply the complement of the resolvent set.

Equations
noncomputable def resolvent {R : Type u} {A : Type v} [ring A] [ A] (a : A) (r : R) :
A

Given an a : A where A is an R-algebra, the resolvent is a map R → A which sends r : R to (algebra_map R A r - a)⁻¹ when r ∈ resolvent R A and 0 when r ∈ spectrum R A.

Equations
@[simp]
theorem is_unit.coe_inv_sub_inv_smul {R : Type u} {A : Type v} [ring A] [ A] {r : Rˣ} {s : R} {a : A} (h : is_unit (r A) s - a)) :
noncomputable def is_unit.sub_inv_smul {R : Type u} {A : Type v} [ring A] [ A] {r : Rˣ} {s : R} {a : A} (h : is_unit (r A) s - a)) :

The unit 1 - r⁻¹ • a constructed from r • 1 - a when the latter is a unit.

Equations
@[simp]
theorem is_unit.coe_sub_inv_smul {R : Type u} {A : Type v} [ring A] [ A] {r : Rˣ} {s : R} {a : A} (h : is_unit (r A) s - a)) :
theorem spectrum.mem_iff {R : Type u} {A : Type v} [ring A] [ A] {r : R} {a : A} :
r a ¬is_unit ( A) r - a)
theorem spectrum.not_mem_iff {R : Type u} {A : Type v} [ring A] [ A] {r : R} {a : A} :
r a is_unit ( A) r - a)
theorem spectrum.zero_mem_iff (R : Type u) {A : Type v} [ring A] [ A] {a : A} :
0 a ¬
theorem spectrum.zero_not_mem_iff (R : Type u) {A : Type v} [ring A] [ A] {a : A} :
0 a
theorem spectrum.mem_resolvent_set_of_left_right_inverse {R : Type u} {A : Type v} [ring A] [ A] {r : R} {a b c : A} (h₁ : ( A) r - a) * b = 1) (h₂ : c * ( A) r - a) = 1) :
r
theorem spectrum.mem_resolvent_set_iff {R : Type u} {A : Type v} [ring A] [ A] {r : R} {a : A} :
r is_unit ( A) r - a)
@[simp]
theorem spectrum.resolvent_set_of_subsingleton {R : Type u} {A : Type v} [ring A] [ A] [subsingleton A] (a : A) :
@[simp]
theorem spectrum.of_subsingleton {R : Type u} {A : Type v} [ring A] [ A] [subsingleton A] (a : A) :
a =
theorem spectrum.resolvent_eq {R : Type u} {A : Type v} [ring A] [ A] {a : A} {r : R} (h : r ) :
theorem spectrum.units_smul_resolvent {R : Type u} {A : Type v} [ring A] [ A] {r : Rˣ} {s : R} {a : A} :
r s = resolvent (r⁻¹ a) (r⁻¹ s)
theorem spectrum.units_smul_resolvent_self {R : Type u} {A : Type v} [ring A] [ A] {r : Rˣ} {a : A} :
theorem spectrum.is_unit_resolvent {R : Type u} {A : Type v} [ring A] [ A] {r : R} {a : A} :

The resolvent is a unit when the argument is in the resolvent set.

theorem spectrum.inv_mem_resolvent_set {R : Type u} {A : Type v} [ring A] [ A] {r : Rˣ} {a : Aˣ} (h : r ) :
theorem spectrum.inv_mem_iff {R : Type u} {A : Type v} [ring A] [ A] {r : Rˣ} {a : Aˣ} :
theorem spectrum.zero_mem_resolvent_set_of_unit {R : Type u} {A : Type v} [ring A] [ A] (a : Aˣ) :
0
theorem spectrum.ne_zero_of_mem_of_unit {R : Type u} {A : Type v} [ring A] [ A] {a : Aˣ} {r : R} (hr : r a) :
r 0
theorem spectrum.add_mem_iff {R : Type u} {A : Type v} [ring A] [ A] {a : A} {r s : R} :
r + s a r (- A) s + a)
theorem spectrum.add_mem_add_iff {R : Type u} {A : Type v} [ring A] [ A] {a : A} {r s : R} :
r + s ( A) s + a) r a
theorem spectrum.smul_mem_smul_iff {R : Type u} {A : Type v} [ring A] [ A] {a : A} {s : R} {r : Rˣ} :
r s (r a) s a
theorem spectrum.unit_smul_eq_smul {R : Type u} {A : Type v} [ring A] [ A] (a : A) (r : Rˣ) :
(r a) = r a
theorem spectrum.unit_mem_mul_iff_mem_swap_mul {R : Type u} {A : Type v} [ring A] [ A] {a b : A} {r : Rˣ} :
r (a * b) r (b * a)
theorem spectrum.preimage_units_mul_eq_swap_mul {R : Type u} {A : Type v} [ring A] [ A] {a b : A} :
coe ⁻¹' (a * b) = coe ⁻¹' (b * a)
theorem spectrum.star_mem_resolvent_set_iff {R : Type u} {A : Type v} [ring A] [ A] [star_ring A] [ A] {r : R} {a : A} :
r
@[protected]
theorem spectrum.map_star {R : Type u} {A : Type v} [ring A] [ A] [star_ring A] [ A] (a : A) :
theorem spectrum.subset_subalgebra {R : Type u} {A : Type v} [comm_ring R] [ring A] [ A] {S : A} (a : S) :
a a
theorem spectrum.subset_star_subalgebra {R : Type u} {A : Type v} [comm_ring R] [ring A] [ A] [star_ring R] [star_ring A] [ A] {S : A} (a : S) :
a a
theorem spectrum.singleton_add_eq {R : Type u} {A : Type v} [comm_ring R] [ring A] [ A] (a : A) (r : R) :
{r} + a = ( A) r + a)
theorem spectrum.add_singleton_eq {R : Type u} {A : Type v} [comm_ring R] [ring A] [ A] (a : A) (r : R) :
a + {r} = (a + A) r)
theorem spectrum.vadd_eq {R : Type u} {A : Type v} [comm_ring R] [ring A] [ A] (a : A) (r : R) :
r +ᵥ a = ( A) r + a)
theorem spectrum.neg_eq {R : Type u} {A : Type v} [comm_ring R] [ring A] [ A] (a : A) :
- a = (-a)
theorem spectrum.singleton_sub_eq {R : Type u} {A : Type v} [comm_ring R] [ring A] [ A] (a : A) (r : R) :
{r} - a = ( A) r - a)
theorem spectrum.sub_singleton_eq {R : Type u} {A : Type v} [comm_ring R] [ring A] [ A] (a : A) (r : R) :
a - {r} = (a - A) r)
@[simp]
theorem spectrum.zero_eq {𝕜 : Type u} {A : Type v} [field 𝕜] [ring A] [ A] [nontrivial A] :
0 = {0}

Without the assumption nontrivial A, then 0 : A would be invertible.

@[simp]
theorem spectrum.scalar_eq {𝕜 : Type u} {A : Type v} [field 𝕜] [ring A] [ A] [nontrivial A] (k : 𝕜) :
( A) k) = {k}
@[simp]
theorem spectrum.one_eq {𝕜 : Type u} {A : Type v} [field 𝕜] [ring A] [ A] [nontrivial A] :
1 = {1}
theorem spectrum.smul_eq_smul {𝕜 : Type u} {A : Type v} [field 𝕜] [ring A] [ A] [nontrivial A] (k : 𝕜) (a : A) (ha : (spectrum 𝕜 a).nonempty) :
(k a) = k a

the assumption (σ a).nonempty is necessary and cannot be removed without further conditions on the algebra A and scalar field 𝕜.

theorem spectrum.nonzero_mul_eq_swap_mul {𝕜 : Type u} {A : Type v} [field 𝕜] [ring A] [ A] (a b : A) :
(a * b) \ {0} = (b * a) \ {0}
@[protected]
theorem spectrum.map_inv {𝕜 : Type u} {A : Type v} [field 𝕜] [ring A] [ A] (a : Aˣ) :
theorem alg_hom.mem_resolvent_set_apply {F : Type u_1} {R : Type u_2} {A : Type u_3} {B : Type u_4} [ring A] [ A] [ring B] [ B] [ A B] (φ : F) {a : A} {r : R} (h : r ) :
r (φ a)
theorem alg_hom.spectrum_apply_subset {F : Type u_1} {R : Type u_2} {A : Type u_3} {B : Type u_4} [ring A] [ A] [ring B] [ B] [ A B] (φ : F) (a : A) :
(φ a) a
theorem alg_hom.apply_mem_spectrum {F : Type u_1} {R : Type u_2} {A : Type u_3} [comm_ring R] [ring A] [ A] [ A R] [nontrivial R] (φ : F) (a : A) :
φ a a