File: Mathlib/Algebra/Algebra/Spectrum.lean

full_name: _aux_Mathlib_Algebra_Algebra_Spectrum___unexpand_algebraMap_1
code: local notation "↑ₐ" => algebraMap R A
goal: Lean.PrettyPrinter.Unexpander

full_name: «_aux_Mathlib_Algebra_Algebra_Spectrum___macroRules_term↑ₐ_1»
code: local notation "↑ₐ" => algebraMap R A
goal: Lean.Macro

full_name: resolventSet
code: /-- 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`.  -/
def resolventSet (a : A) : Set R 
goal: Set R

full_name: spectrum
code: /-- 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.  -/
def spectrum (a : A) : Set R 
goal: Set R

full_name: resolvent
code: /-- Given an `a : A` where `A` is an `R`-algebra, the *resolvent* is
    a map `R → A` which sends `r : R` to `(algebraMap R A r - a)⁻¹` when
    `r ∈ resolvent R A` and `0` when `r ∈ spectrum R A`. -/
noncomputable def resolvent (a : A) (r : R) : A 
goal: A

full_name: IsUnit.subInvSMul
code: /-- The unit `1 - r⁻¹ • a` constructed from `r • 1 - a` when the latter is a unit. -/
@[simps]
noncomputable def IsUnit.subInvSMul {r : Rˣ} {s : R} {a : A} (h : IsUnit <| r • ↑ₐ s - a) : Aˣ 
goal: Aˣ

full_name: IsUnit.val_inv_subInvSMul
code: /-- The unit `1 - r⁻¹ • a` constructed from `r • 1 - a` when the latter is a unit. -/
@[simps]
noncomputable def IsUnit.subInvSMul {r : Rˣ} {s : R} {a : A} (h : IsUnit <| r • ↑ₐ s - a) : Aˣ 
goal: ↑h.subInvSMul⁻¹ = r • ↑h.unit⁻¹

full_name: IsUnit.val_subInvSMul
code: /-- The unit `1 - r⁻¹ • a` constructed from `r • 1 - a` when the latter is a unit. -/
@[simps]
noncomputable def IsUnit.subInvSMul {r : Rˣ} {s : R} {a : A} (h : IsUnit <| r • ↑ₐ s - a) : Aˣ 
goal: ↑h.subInvSMul = (algebraMap R A) s - r⁻¹ • a

full_name: spectrum._aux_Mathlib_Algebra_Algebra_Spectrum___macroRules_spectrum_termσ_1
code: local notation "σ" => spectrum R
goal: Lean.Macro

full_name: spectrum._aux_Mathlib_Algebra_Algebra_Spectrum___unexpand_spectrum_1
code: local notation "σ" => spectrum R
goal: Lean.PrettyPrinter.Unexpander

full_name: spectrum._aux_Mathlib_Algebra_Algebra_Spectrum___unexpand_algebraMap_1
code: local notation "↑ₐ" => algebraMap R A
goal: Lean.PrettyPrinter.Unexpander

full_name: spectrum.«_aux_Mathlib_Algebra_Algebra_Spectrum___macroRules_spectrum_term↑ₐ_1»
code: local notation "↑ₐ" => algebraMap R A
goal: Lean.Macro

full_name: spectrum.mem_iff
code: theorem mem_iff {r : R} {a : A} : r ∈ σ a ↔ ¬IsUnit (↑ₐ r - a) 
goal: r ∈ spectrum R a ↔ ¬IsUnit ((algebraMap R A) r - a)

full_name: spectrum.not_mem_iff
code: theorem not_mem_iff {r : R} {a : A} : r ∉ σ a ↔ IsUnit (↑ₐ r - a) 
goal: r ∉ spectrum R a ↔ IsUnit ((algebraMap R A) r - a)

full_name: spectrum.zero_mem_iff
code: theorem zero_mem_iff {a : A} : (0 : R) ∈ σ a ↔ ¬IsUnit a 
goal: 0 ∈ spectrum R a ↔ ¬IsUnit a

full_name: spectrum.zero_not_mem_iff
code: theorem zero_not_mem_iff {a : A} : (0 : R) ∉ σ a ↔ IsUnit a 
goal: 0 ∉ spectrum R a ↔ IsUnit a

full_name: spectrum.subset_singleton_zero_compl
code: lemma subset_singleton_zero_compl {a : A} (ha : IsUnit a) : spectrum R a ⊆ {0}ᶜ 
goal: spectrum R a ⊆ {0}ᶜ

full_name: spectrum.mem_resolventSet_of_left_right_inverse
code: theorem mem_resolventSet_of_left_right_inverse {r : R} {a b c : A} (h₁ : (↑ₐ r - a) * b = 1)
    (h₂ : c * (↑ₐ r - a) = 1) : r ∈ resolventSet R a 
goal: r ∈ resolventSet R a

full_name: spectrum.mem_resolventSet_iff
code: theorem mem_resolventSet_iff {r : R} {a : A} : r ∈ resolventSet R a ↔ IsUnit (↑ₐ r - a) 
goal: r ∈ resolventSet R a ↔ IsUnit ((algebraMap R A) r - a)

full_name: spectrum.algebraMap_mem_iff
code: @[simp]
theorem algebraMap_mem_iff (S : Type*) {R A : Type*} [CommSemiring R] [CommSemiring S]
    [Ring A] [Algebra R S] [Algebra R A] [Algebra S A] [IsScalarTower R S A] {a : A} {r : R} :
    algebraMap R S r ∈ spectrum S a ↔ r ∈ spectrum R a 
goal: (algebraMap R S) r ∈ spectrum S a ↔ r ∈ spectrum R a

full_name: spectrum.preimage_algebraMap
code: @[simp]
theorem preimage_algebraMap (S : Type*) {R A : Type*} [CommSemiring R] [CommSemiring S]
    [Ring A] [Algebra R S] [Algebra R A] [Algebra S A] [IsScalarTower R S A] {a : A} :
    algebraMap R S ⁻¹' spectrum S a = spectrum R a 
goal: ⇑(algebraMap R S) ⁻¹' spectrum S a = spectrum R a

full_name: spectrum.resolventSet_of_subsingleton
code: @[simp]
theorem resolventSet_of_subsingleton [Subsingleton A] (a : A) : resolventSet R a = Set.univ 
goal: resolventSet R a = Set.univ

full_name: spectrum.of_subsingleton
code: @[simp]
theorem of_subsingleton [Subsingleton A] (a : A) : spectrum R a = ∅ 
goal: spectrum R a = ∅

full_name: spectrum.resolvent_eq
code: theorem resolvent_eq {a : A} {r : R} (h : r ∈ resolventSet R a) : resolvent a r = ↑h.unit⁻¹ 
goal: resolvent a r = ↑(IsUnit.unit h)⁻¹

full_name: spectrum.units_smul_resolvent
code: theorem units_smul_resolvent {r : Rˣ} {s : R} {a : A} :
    r • resolvent a (s : R) = resolvent (r⁻¹ • a) (r⁻¹ • s : R) 
goal: r • resolvent a s = resolvent (r⁻¹ • a) (r⁻¹ • s)

full_name: spectrum.units_smul_resolvent_self
code: theorem units_smul_resolvent_self {r : Rˣ} {a : A} :
    r • resolvent a (r : R) = resolvent (r⁻¹ • a) (1 : R) 
goal: r • resolvent a ↑r = resolvent (r⁻¹ • a) 1

full_name: spectrum.isUnit_resolvent
code: /-- The resolvent is a unit when the argument is in the resolvent set. -/
theorem isUnit_resolvent {r : R} {a : A} : r ∈ resolventSet R a ↔ IsUnit (resolvent a r) 
goal: r ∈ resolventSet R a ↔ IsUnit (resolvent a r)

full_name: spectrum.inv_mem_resolventSet
code: theorem inv_mem_resolventSet {r : Rˣ} {a : Aˣ} (h : (r : R) ∈ resolventSet R (a : A)) :
    (↑r⁻¹ : R) ∈ resolventSet R (↑a⁻¹ : A) 
goal: ↑r⁻¹ ∈ resolventSet R ↑a⁻¹

full_name: spectrum.inv_mem_iff
code: theorem inv_mem_iff {r : Rˣ} {a : Aˣ} : (r : R) ∈ σ (a : A) ↔ (↑r⁻¹ : R) ∈ σ (↑a⁻¹ : A) 
goal: ↑r ∈ spectrum R ↑a ↔ ↑r⁻¹ ∈ spectrum R ↑a⁻¹

full_name: spectrum.zero_mem_resolventSet_of_unit
code: theorem zero_mem_resolventSet_of_unit (a : Aˣ) : 0 ∈ resolventSet R (a : A) 
goal: 0 ∈ resolventSet R ↑a

full_name: spectrum.ne_zero_of_mem_of_unit
code: theorem ne_zero_of_mem_of_unit {a : Aˣ} {r : R} (hr : r ∈ σ (a : A)) : r ≠ 0 
goal: r ≠ 0

full_name: spectrum.add_mem_iff
code: theorem add_mem_iff {a : A} {r s : R} : r + s ∈ σ a ↔ r ∈ σ (-↑ₐ s + a) 
goal: r + s ∈ spectrum R a ↔ r ∈ spectrum R (-(algebraMap R A) s + a)

full_name: spectrum.add_mem_add_iff
code: theorem add_mem_add_iff {a : A} {r s : R} : r + s ∈ σ (↑ₐ s + a) ↔ r ∈ σ a 
goal: r + s ∈ spectrum R ((algebraMap R A) s + a) ↔ r ∈ spectrum R a

full_name: spectrum.smul_mem_smul_iff
code: theorem smul_mem_smul_iff {a : A} {s : R} {r : Rˣ} : r • s ∈ σ (r • a) ↔ s ∈ σ a 
goal: r • s ∈ spectrum R (r • a) ↔ s ∈ spectrum R a

full_name: spectrum.unit_smul_eq_smul
code: theorem unit_smul_eq_smul (a : A) (r : Rˣ) : σ (r • a) = r • σ a 
goal: spectrum R (r • a) = r • spectrum R a

full_name: spectrum.unit_mem_mul_iff_mem_swap_mul
code: theorem unit_mem_mul_iff_mem_swap_mul {a b : A} {r : Rˣ} : ↑r ∈ σ (a * b) ↔ ↑r ∈ σ (b * a) 
goal: ↑r ∈ spectrum R (a * b) ↔ ↑r ∈ spectrum R (b * a)

full_name: spectrum.preimage_units_mul_eq_swap_mul
code: theorem preimage_units_mul_eq_swap_mul {a b : A} :
    ((↑) : Rˣ → R) ⁻¹' σ (a * b) = (↑) ⁻¹' σ (b * a) 
goal: Units.val ⁻¹' spectrum R (a * b) = Units.val ⁻¹' spectrum R (b * a)

full_name: spectrum.star_mem_resolventSet_iff
code: theorem star_mem_resolventSet_iff {r : R} {a : A} :
    star r ∈ resolventSet R a ↔ r ∈ resolventSet R (star a) 
goal: star r ∈ resolventSet R a ↔ r ∈ resolventSet R (star a)

full_name: spectrum.map_star
code: protected theorem map_star (a : A) : σ (star a) = star (σ a) 
goal: spectrum R (star a) = star (spectrum R a)

full_name: spectrum._aux_Mathlib_Algebra_Algebra_Spectrum___unexpand_spectrum_2
code: local notation "σ" => spectrum R
goal: Lean.PrettyPrinter.Unexpander

full_name: spectrum._aux_Mathlib_Algebra_Algebra_Spectrum___macroRules_spectrum_termσ_2
code: local notation "σ" => spectrum R
goal: Lean.Macro

full_name: spectrum.«_aux_Mathlib_Algebra_Algebra_Spectrum___macroRules_spectrum_term↑ₐ_2»
code: local notation "↑ₐ" => algebraMap R A
goal: Lean.Macro

full_name: spectrum._aux_Mathlib_Algebra_Algebra_Spectrum___unexpand_algebraMap_2
code: local notation "↑ₐ" => algebraMap R A
goal: Lean.PrettyPrinter.Unexpander

full_name: spectrum.subset_subalgebra
code: theorem subset_subalgebra {S R A : Type*} [CommSemiring R] [Ring A] [Algebra R A]
    [SetLike S A] [SubringClass S A] [SMulMemClass S R A] {s : S} (a : s) :
    spectrum R (a : A) ⊆ spectrum R a 
goal: spectrum R ↑a ⊆ spectrum R a

full_name: spectrum.subset_starSubalgebra
code: @[deprecated subset_subalgebra (since := "2024-07-19")]
theorem subset_starSubalgebra [StarRing R] [StarRing A] [StarModule R A] {S : StarSubalgebra R A}
    (a : S) : spectrum R (a : A) ⊆ spectrum R a 
goal: spectrum R ↑a ⊆ spectrum R a

full_name: spectrum.singleton_add_eq
code: theorem singleton_add_eq (a : A) (r : R) : {r} + σ a = σ (↑ₐ r + a) 
goal: {r} + spectrum R a = spectrum R ((algebraMap R A) r + a)

full_name: spectrum.add_singleton_eq
code: theorem add_singleton_eq (a : A) (r : R) : σ a + {r} = σ (a + ↑ₐ r) 
goal: spectrum R a + {r} = spectrum R (a + (algebraMap R A) r)

full_name: spectrum.vadd_eq
code: theorem vadd_eq (a : A) (r : R) : r +ᵥ σ a = σ (↑ₐ r + a) 
goal: r +ᵥ spectrum R a = spectrum R ((algebraMap R A) r + a)

full_name: spectrum.neg_eq
code: theorem neg_eq (a : A) : -σ a = σ (-a) 
goal: -spectrum R a = spectrum R (-a)

full_name: spectrum.singleton_sub_eq
code: theorem singleton_sub_eq (a : A) (r : R) : {r} - σ a = σ (↑ₐ r - a) 
goal: {r} - spectrum R a = spectrum R ((algebraMap R A) r - a)

full_name: spectrum.sub_singleton_eq
code: theorem sub_singleton_eq (a : A) (r : R) : σ a - {r} = σ (a - ↑ₐ r) 
goal: spectrum R a - {r} = spectrum R (a - (algebraMap R A) r)

full_name: spectrum._aux_Mathlib_Algebra_Algebra_Spectrum___macroRules_spectrum_termσ_3
code: local notation "σ" => spectrum 𝕜
goal: Lean.Macro

full_name: spectrum._aux_Mathlib_Algebra_Algebra_Spectrum___unexpand_spectrum_3
code: local notation "σ" => spectrum 𝕜
goal: Lean.PrettyPrinter.Unexpander

full_name: spectrum.«_aux_Mathlib_Algebra_Algebra_Spectrum___macroRules_spectrum_term↑ₐ_3»
code: local notation "↑ₐ" => algebraMap 𝕜 A
goal: Lean.Macro

full_name: spectrum._aux_Mathlib_Algebra_Algebra_Spectrum___unexpand_algebraMap_3
code: local notation "↑ₐ" => algebraMap 𝕜 A
goal: Lean.PrettyPrinter.Unexpander

full_name: spectrum.zero_eq
code: /-- Without the assumption `Nontrivial A`, then `0 : A` would be invertible. -/
@[simp]
theorem zero_eq [Nontrivial A] : σ (0 : A) = {0} 
goal: spectrum 𝕜 0 = {0}

full_name: spectrum.scalar_eq
code: @[simp]
theorem scalar_eq [Nontrivial A] (k : 𝕜) : σ (↑ₐ k) = {k} 
goal: spectrum 𝕜 ((algebraMap 𝕜 A) k) = {k}

full_name: spectrum.one_eq
code: @[simp]
theorem one_eq [Nontrivial A] : σ (1 : A) = {1} 
goal: spectrum 𝕜 1 = {1}

full_name: spectrum.smul_eq_smul
code: /-- the assumption `(σ a).Nonempty` is necessary and cannot be removed without
further conditions on the algebra `A` and scalar field `𝕜`. -/
theorem smul_eq_smul [Nontrivial A] (k : 𝕜) (a : A) (ha : (σ a).Nonempty) :
    σ (k • a) = k • σ a 
goal: spectrum 𝕜 (k • a) = k • spectrum 𝕜 a

full_name: spectrum.nonzero_mul_eq_swap_mul
code: theorem nonzero_mul_eq_swap_mul (a b : A) : σ (a * b) \ {0} = σ (b * a) \ {0} 
goal: spectrum 𝕜 (a * b) \ {0} = spectrum 𝕜 (b * a) \ {0}

full_name: spectrum.map_inv
code: protected theorem map_inv (a : Aˣ) : (σ (a : A))⁻¹ = σ (↑a⁻¹ : A) 
goal: (spectrum 𝕜 ↑a)⁻¹ = spectrum 𝕜 ↑a⁻¹

full_name: AlgHom._aux_Mathlib_Algebra_Algebra_Spectrum___macroRules_AlgHom_termσ_1
code: local notation "σ" => spectrum R
goal: Lean.Macro

full_name: AlgHom._aux_Mathlib_Algebra_Algebra_Spectrum___unexpand_spectrum_1
code: local notation "σ" => spectrum R
goal: Lean.PrettyPrinter.Unexpander

full_name: AlgHom.«_aux_Mathlib_Algebra_Algebra_Spectrum___macroRules_AlgHom_term↑ₐ_1»
code: local notation "↑ₐ" => algebraMap R A
goal: Lean.Macro

full_name: AlgHom._aux_Mathlib_Algebra_Algebra_Spectrum___unexpand_algebraMap_1
code: local notation "↑ₐ" => algebraMap R A
goal: Lean.PrettyPrinter.Unexpander

full_name: AlgHom.mem_resolventSet_apply
code: theorem mem_resolventSet_apply (φ : F) {a : A} {r : R} (h : r ∈ resolventSet R a) :
    r ∈ resolventSet R ((φ : A → B) a) 
goal: r ∈ resolventSet R (φ a)

full_name: AlgHom.spectrum_apply_subset
code: theorem spectrum_apply_subset (φ : F) (a : A) : σ ((φ : A → B) a) ⊆ σ a 
goal: spectrum R (φ a) ⊆ spectrum R a

full_name: AlgHom._aux_Mathlib_Algebra_Algebra_Spectrum___unexpand_spectrum_2
code: local notation "σ" => spectrum R
goal: Lean.PrettyPrinter.Unexpander

full_name: AlgHom._aux_Mathlib_Algebra_Algebra_Spectrum___macroRules_AlgHom_termσ_2
code: local notation "σ" => spectrum R
goal: Lean.Macro

full_name: AlgHom._aux_Mathlib_Algebra_Algebra_Spectrum___unexpand_algebraMap_2
code: local notation "↑ₐ" => algebraMap R A
goal: Lean.PrettyPrinter.Unexpander

full_name: AlgHom.«_aux_Mathlib_Algebra_Algebra_Spectrum___macroRules_AlgHom_term↑ₐ_2»
code: local notation "↑ₐ" => algebraMap R A
goal: Lean.Macro

full_name: AlgHom.apply_mem_spectrum
code: theorem apply_mem_spectrum [Nontrivial R] (φ : F) (a : A) : φ a ∈ σ a 
goal: φ a ∈ spectrum R a

full_name: AlgEquiv.spectrum_eq
code: @[simp]
theorem AlgEquiv.spectrum_eq {F R A B : Type*} [CommSemiring R] [Ring A] [Ring B] [Algebra R A]
    [Algebra R B] [EquivLike F A B] [AlgEquivClass F R A B] (f : F) (a : A) :
    spectrum R (f a) = spectrum R a 
goal: spectrum R (f a) = spectrum R a

full_name: spectrum.units_conjugate
code: /-- Conjugation by a unit preserves the spectrum, inverse on right. -/
@[simp]
lemma spectrum.units_conjugate {a : A} {u : Aˣ} :
    spectrum R (u * a * u⁻¹) = spectrum R a 
goal: spectrum R (↑u * a * ↑u⁻¹) = spectrum R a

full_name: spectrum.units_conjugate'
code: /-- Conjugation by a unit preserves the spectrum, inverse on left. -/
@[simp]
lemma spectrum.units_conjugate' {a : A} {u : Aˣ} :
    spectrum R (u⁻¹ * a * u) = spectrum R a 
goal: spectrum R (↑u⁻¹ * a * ↑u) = spectrum R a