Theorem: NNReal.spectralRadius_mem_spectrum
File: Mathlib/Analysis/Normed/Algebra/Spectrum.lean

Proof steps:
state_before: 𝕜 : Type u_1
A✝¹ : Type u_2
A✝ : Type u_3
inst✝³ : Ring A✝
A : Type u_4
inst✝² : NormedRing A
inst✝¹ : NormedAlgebra ℝ A
inst✝ : CompleteSpace A
a : A
ha : (spectrum ℝ a).Nonempty
ha' : SpectrumRestricts a ⇑ContinuousMap.realToNNReal
⊢ (spectralRadius ℝ a).toNNReal ∈ spectrum ℝ≥0 a
state_after: case intro.intro
𝕜 : Type u_1
A✝¹ : Type u_2
A✝ : Type u_3
inst✝³ : Ring A✝
A : Type u_4
inst✝² : NormedRing A
inst✝¹ : NormedAlgebra ℝ A
inst✝ : CompleteSpace A
a : A
ha : (spectrum ℝ a).Nonempty
ha' : SpectrumRestricts a ⇑ContinuousMap.realToNNReal
x : ℝ
hx₁ : x ∈ spectrum ℝ a
hx₂ : ↑‖x‖₊ = spectralRadius ℝ a
⊢ (spectralRadius ℝ a).toNNReal ∈ spectrum ℝ≥0 a
tactic: obtain ⟨x, hx₁, hx₂⟩ := spectrum.exists_nnnorm_eq_spectralRadius_of_nonempty ha
state_before: case intro.intro
𝕜 : Type u_1
A✝¹ : Type u_2
A✝ : Type u_3
inst✝³ : Ring A✝
A : Type u_4
inst✝² : NormedRing A
inst✝¹ : NormedAlgebra ℝ A
inst✝ : CompleteSpace A
a : A
ha : (spectrum ℝ a).Nonempty
ha' : SpectrumRestricts a ⇑ContinuousMap.realToNNReal
x : ℝ
hx₁ : x ∈ spectrum ℝ a
hx₂ : ↑‖x‖₊ = spectralRadius ℝ a
⊢ (spectralRadius ℝ a).toNNReal ∈ spectrum ℝ≥0 a
state_after: case intro.intro
𝕜 : Type u_1
A✝¹ : Type u_2
A✝ : Type u_3
inst✝³ : Ring A✝
A : Type u_4
inst✝² : NormedRing A
inst✝¹ : NormedAlgebra ℝ A
inst✝ : CompleteSpace A
a : A
ha : (spectrum ℝ a).Nonempty
ha' : SpectrumRestricts a ⇑ContinuousMap.realToNNReal
x : ℝ
hx₁ : x ∈ spectrum ℝ a
hx₂ : ↑‖x‖₊ = spectralRadius ℝ a
⊢ ↑‖x‖₊ ∈ spectrum ℝ a
tactic: rw [← hx₂, ENNReal.toNNReal_coe, ← spectrum.algebraMap_mem_iff ℝ, NNReal.algebraMap_eq_coe]
state_before: case intro.intro
𝕜 : Type u_1
A✝¹ : Type u_2
A✝ : Type u_3
inst✝³ : Ring A✝
A : Type u_4
inst✝² : NormedRing A
inst✝¹ : NormedAlgebra ℝ A
inst✝ : CompleteSpace A
a : A
ha : (spectrum ℝ a).Nonempty
ha' : SpectrumRestricts a ⇑ContinuousMap.realToNNReal
x : ℝ
hx₁ : x ∈ spectrum ℝ a
hx₂ : ↑‖x‖₊ = spectralRadius ℝ a
⊢ ↑‖x‖₊ ∈ spectrum ℝ a
state_after: case intro.intro
𝕜 : Type u_1
A✝¹ : Type u_2
A✝ : Type u_3
inst✝³ : Ring A✝
A : Type u_4
inst✝² : NormedRing A
inst✝¹ : NormedAlgebra ℝ A
inst✝ : CompleteSpace A
a : A
ha : (spectrum ℝ a).Nonempty
ha' : SpectrumRestricts a ⇑ContinuousMap.realToNNReal
x : ℝ
hx₁ : x ∈ spectrum ℝ a
hx₂ : ↑‖x‖₊ = spectralRadius ℝ a
this : 0 ≤ x
⊢ ↑‖x‖₊ ∈ spectrum ℝ a
tactic: have : 0 ≤ x := ha'.rightInvOn hx₁ ▸ NNReal.zero_le_coe
state_before: case intro.intro
𝕜 : Type u_1
A✝¹ : Type u_2
A✝ : Type u_3
inst✝³ : Ring A✝
A : Type u_4
inst✝² : NormedRing A
inst✝¹ : NormedAlgebra ℝ A
inst✝ : CompleteSpace A
a : A
ha : (spectrum ℝ a).Nonempty
ha' : SpectrumRestricts a ⇑ContinuousMap.realToNNReal
x : ℝ
hx₁ : x ∈ spectrum ℝ a
hx₂ : ↑‖x‖₊ = spectralRadius ℝ a
this : 0 ≤ x
⊢ ↑‖x‖₊ ∈ spectrum ℝ a
state_after: case h.e'_4
𝕜 : Type u_1
A✝¹ : Type u_2
A✝ : Type u_3
inst✝³ : Ring A✝
A : Type u_4
inst✝² : NormedRing A
inst✝¹ : NormedAlgebra ℝ A
inst✝ : CompleteSpace A
a : A
ha : (spectrum ℝ a).Nonempty
ha' : SpectrumRestricts a ⇑ContinuousMap.realToNNReal
x : ℝ
hx₁ : x ∈ spectrum ℝ a
hx₂ : ↑‖x‖₊ = spectralRadius ℝ a
this : 0 ≤ x
⊢ ↑‖x‖₊ = x
tactic: convert hx₁
state_before: case h.e'_4
𝕜 : Type u_1
A✝¹ : Type u_2
A✝ : Type u_3
inst✝³ : Ring A✝
A : Type u_4
inst✝² : NormedRing A
inst✝¹ : NormedAlgebra ℝ A
inst✝ : CompleteSpace A
a : A
ha : (spectrum ℝ a).Nonempty
ha' : SpectrumRestricts a ⇑ContinuousMap.realToNNReal
x : ℝ
hx₁ : x ∈ spectrum ℝ a
hx₂ : ↑‖x‖₊ = spectralRadius ℝ a
this : 0 ≤ x
⊢ ↑‖x‖₊ = x
state_after: no goals
tactic: simpa