File: Mathlib/FieldTheory/IsAlgClosed/Spectrum.lean

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

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

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

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

full_name: spectrum.exists_mem_of_not_isUnit_aeval_prod
code: theorem exists_mem_of_not_isUnit_aeval_prod [IsDomain R] {p : R[X]} {a : A}
    (h : ¬IsUnit (aeval a (Multiset.map (fun x : R => X - C x) p.roots).prod)) :
    ∃ k : R, k ∈ σ a ∧ eval k p = 0 
goal: ∃ k ∈ spectrum R a, Polynomial.eval k p = 0

full_name: spectrum._aux_Mathlib_FieldTheory_IsAlgClosed_Spectrum___macroRules_spectrum_termσ_2
code: local notation "σ" => spectrum 𝕜
goal: Lean.Macro

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

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

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

full_name: spectrum.subset_polynomial_aeval
code: /-- Half of the spectral mapping theorem for polynomials. We prove it separately
because it holds over any field, whereas `spectrum.map_polynomial_aeval_of_degree_pos` and
`spectrum.map_polynomial_aeval_of_nonempty` need the field to be algebraically closed. -/
theorem subset_polynomial_aeval (a : A) (p : 𝕜[X]) : (eval · p) '' σ a ⊆ σ (aeval a p) 
goal: (fun x => Polynomial.eval x p) '' spectrum 𝕜 a ⊆ spectrum 𝕜 ((Polynomial.aeval a) p)

full_name: spectrum.map_polynomial_aeval_of_degree_pos
code: /-- The *spectral mapping theorem* for polynomials.  Note: the assumption `degree p > 0`
is necessary in case `σ a = ∅`, for then the left-hand side is `∅` and the right-hand side,
assuming `[Nontrivial A]`, is `{k}` where `p = Polynomial.C k`. -/
theorem map_polynomial_aeval_of_degree_pos [IsAlgClosed 𝕜] (a : A) (p : 𝕜[X])
    (hdeg : 0 < degree p) : σ (aeval a p) = (eval · p) '' σ a 
goal: spectrum 𝕜 ((Polynomial.aeval a) p) = (fun x => Polynomial.eval x p) '' spectrum 𝕜 a

full_name: spectrum.map_polynomial_aeval_of_nonempty
code: /-- In this version of the spectral mapping theorem, we assume the spectrum
is nonempty instead of assuming the degree of the polynomial is positive. -/
theorem map_polynomial_aeval_of_nonempty [IsAlgClosed 𝕜] (a : A) (p : 𝕜[X])
    (hnon : (σ a).Nonempty) : σ (aeval a p) = (fun k => eval k p) '' σ a 
goal: spectrum 𝕜 ((Polynomial.aeval a) p) = (fun k => Polynomial.eval k p) '' spectrum 𝕜 a

full_name: spectrum.pow_image_subset
code: /-- A specialization of `spectrum.subset_polynomial_aeval` to monic monomials for convenience. -/
theorem pow_image_subset (a : A) (n : ℕ) : (fun x => x ^ n) '' σ a ⊆ σ (a ^ n) 
goal: (fun x => x ^ n) '' spectrum 𝕜 a ⊆ spectrum 𝕜 (a ^ n)

full_name: spectrum.map_pow_of_pos
code: /-- A specialization of `spectrum.map_polynomial_aeval_of_nonempty` to monic monomials for
convenience. -/
theorem map_pow_of_pos [IsAlgClosed 𝕜] (a : A) {n : ℕ} (hn : 0 < n) :
    σ (a ^ n) = (· ^ n) '' σ a 
goal: spectrum 𝕜 (a ^ n) = (fun x => x ^ n) '' spectrum 𝕜 a

full_name: spectrum.map_pow_of_nonempty
code: /-- A specialization of `spectrum.map_polynomial_aeval_of_nonempty` to monic monomials for
convenience. -/
theorem map_pow_of_nonempty [IsAlgClosed 𝕜] {a : A} (ha : (σ a).Nonempty) (n : ℕ) :
    σ (a ^ n) = (· ^ n) '' σ a 
goal: spectrum 𝕜 (a ^ n) = (fun x => x ^ n) '' spectrum 𝕜 a

full_name: spectrum.nonempty_of_isAlgClosed_of_finiteDimensional
code: /-- Every element `a` in a nontrivial finite-dimensional algebra `A`
over an algebraically closed field `𝕜` has non-empty spectrum. -/
theorem nonempty_of_isAlgClosed_of_finiteDimensional [IsAlgClosed 𝕜] [Nontrivial A]
    [I : FiniteDimensional 𝕜 A] (a : A) : (σ a).Nonempty 
goal: (spectrum 𝕜 a).Nonempty