Theorem: IsSelfAdjoint.spectralRadius_eq_nnnorm
File: Mathlib/Analysis/CstarAlgebra/Spectrum.lean

Proof steps:
state_before: A : Type u_1
inst✝⁴ : NormedRing A
inst✝³ : NormedAlgebra ℂ A
inst✝² : CompleteSpace A
inst✝¹ : StarRing A
inst✝ : CstarRing A
a : A
ha : IsSelfAdjoint a
⊢ spectralRadius ℂ a = ↑‖a‖₊
state_after: A : Type u_1
inst✝⁴ : NormedRing A
inst✝³ : NormedAlgebra ℂ A
inst✝² : CompleteSpace A
inst✝¹ : StarRing A
inst✝ : CstarRing A
a : A
ha : IsSelfAdjoint a
hconst : Tendsto (fun _n => ↑‖a‖₊) atTop (𝓝 ↑‖a‖₊)
⊢ spectralRadius ℂ a = ↑‖a‖₊
tactic: have hconst : Tendsto (fun _n : ℕ => (‖a‖₊ : ℝ≥0∞)) atTop _ := tendsto_const_nhds
state_before: A : Type u_1
inst✝⁴ : NormedRing A
inst✝³ : NormedAlgebra ℂ A
inst✝² : CompleteSpace A
inst✝¹ : StarRing A
inst✝ : CstarRing A
a : A
ha : IsSelfAdjoint a
hconst : Tendsto (fun _n => ↑‖a‖₊) atTop (𝓝 ↑‖a‖₊)
⊢ spectralRadius ℂ a = ↑‖a‖₊
state_after: A : Type u_1
inst✝⁴ : NormedRing A
inst✝³ : NormedAlgebra ℂ A
inst✝² : CompleteSpace A
inst✝¹ : StarRing A
inst✝ : CstarRing A
a : A
ha : IsSelfAdjoint a
hconst : Tendsto (fun _n => ↑‖a‖₊) atTop (𝓝 ↑‖a‖₊)
⊢ Tendsto (fun _n => ↑‖a‖₊) atTop (𝓝 (spectralRadius ℂ a))
tactic: refine tendsto_nhds_unique ?_ hconst
state_before: A : Type u_1
inst✝⁴ : NormedRing A
inst✝³ : NormedAlgebra ℂ A
inst✝² : CompleteSpace A
inst✝¹ : StarRing A
inst✝ : CstarRing A
a : A
ha : IsSelfAdjoint a
hconst : Tendsto (fun _n => ↑‖a‖₊) atTop (𝓝 ↑‖a‖₊)
⊢ Tendsto (fun _n => ↑‖a‖₊) atTop (𝓝 (spectralRadius ℂ a))
state_after: case h.e'_3
A : Type u_1
inst✝⁴ : NormedRing A
inst✝³ : NormedAlgebra ℂ A
inst✝² : CompleteSpace A
inst✝¹ : StarRing A
inst✝ : CstarRing A
a : A
ha : IsSelfAdjoint a
hconst : Tendsto (fun _n => ↑‖a‖₊) atTop (𝓝 ↑‖a‖₊)
⊢ (fun _n => ↑‖a‖₊) = (fun n => ↑‖a ^ n‖₊ ^ (1 / ↑n)) ∘ fun n => 2 ^ n
tactic: convert
    (spectrum.pow_nnnorm_pow_one_div_tendsto_nhds_spectralRadius (a : A)).comp
      (Nat.tendsto_pow_atTop_atTop_of_one_lt one_lt_two) using 1
state_before: case h.e'_3
A : Type u_1
inst✝⁴ : NormedRing A
inst✝³ : NormedAlgebra ℂ A
inst✝² : CompleteSpace A
inst✝¹ : StarRing A
inst✝ : CstarRing A
a : A
ha : IsSelfAdjoint a
hconst : Tendsto (fun _n => ↑‖a‖₊) atTop (𝓝 ↑‖a‖₊)
⊢ (fun _n => ↑‖a‖₊) = (fun n => ↑‖a ^ n‖₊ ^ (1 / ↑n)) ∘ fun n => 2 ^ n
state_after: case h.e'_3
A : Type u_1
inst✝⁴ : NormedRing A
inst✝³ : NormedAlgebra ℂ A
inst✝² : CompleteSpace A
inst✝¹ : StarRing A
inst✝ : CstarRing A
a : A
ha : IsSelfAdjoint a
hconst : Tendsto (fun _n => ↑‖a‖₊) atTop (𝓝 ↑‖a‖₊)
n : ℕ
⊢ ↑‖a‖₊ = ((fun n => ↑‖a ^ n‖₊ ^ (1 / ↑n)) ∘ fun n => 2 ^ n) n
tactic: refine funext fun n => ?_
state_before: case h.e'_3
A : Type u_1
inst✝⁴ : NormedRing A
inst✝³ : NormedAlgebra ℂ A
inst✝² : CompleteSpace A
inst✝¹ : StarRing A
inst✝ : CstarRing A
a : A
ha : IsSelfAdjoint a
hconst : Tendsto (fun _n => ↑‖a‖₊) atTop (𝓝 ↑‖a‖₊)
n : ℕ
⊢ ↑‖a‖₊ = ((fun n => ↑‖a ^ n‖₊ ^ (1 / ↑n)) ∘ fun n => 2 ^ n) n
state_after: case h.e'_3
A : Type u_1
inst✝⁴ : NormedRing A
inst✝³ : NormedAlgebra ℂ A
inst✝² : CompleteSpace A
inst✝¹ : StarRing A
inst✝ : CstarRing A
a : A
ha : IsSelfAdjoint a
hconst : Tendsto (fun _n => ↑‖a‖₊) atTop (𝓝 ↑‖a‖₊)
n : ℕ
⊢ ↑‖a‖₊ = ↑‖a‖₊ ^ (↑(2 ^ n) * (1 / ↑(2 ^ n)))
tactic: rw [Function.comp_apply, ha.nnnorm_pow_two_pow, ENNReal.coe_pow, ← rpow_natCast, ← rpow_mul]
state_before: case h.e'_3
A : Type u_1
inst✝⁴ : NormedRing A
inst✝³ : NormedAlgebra ℂ A
inst✝² : CompleteSpace A
inst✝¹ : StarRing A
inst✝ : CstarRing A
a : A
ha : IsSelfAdjoint a
hconst : Tendsto (fun _n => ↑‖a‖₊) atTop (𝓝 ↑‖a‖₊)
n : ℕ
⊢ ↑‖a‖₊ = ↑‖a‖₊ ^ (↑(2 ^ n) * (1 / ↑(2 ^ n)))
state_after: no goals
tactic: simp