77
88public import Mathlib.Analysis.Normed.Algebra.Spectrum
99public import Mathlib.Analysis.Calculus.Deriv.Basic
10- import Mathlib.Analysis.Complex.Liouville
10+ public import Mathlib.Analysis.Normed.Operator.Mul
1111import Mathlib.Analysis.Complex.Polynomial.Basic
1212import Mathlib.Analysis.Analytic.RadiusLiminf
1313
@@ -20,7 +20,8 @@ complex Banach algebra has nonempty spectrum.
2020
2121## Main results
2222
23- * `spectrum.hasDerivAt_resolvent`: the resolvent function is differentiable on the resolvent set.
23+ * `spectrum.hasDerivAt_resolvent_const_left`: the resolvent function is differentiable on the
24+ resolvent set.
2425* `spectrum.pow_nnnorm_pow_one_div_tendsto_nhds_spectralRadius`: Gelfand's formula for the
2526 spectral radius in Banach algebras over `ℂ`.
2627* `spectrum.nonempty`: the spectrum of any element in a complex Banach algebra is nonempty.
@@ -45,15 +46,38 @@ open Filter ENNReal
4546
4647namespace spectrum
4748
48- theorem hasDerivAt_resolvent [NontriviallyNormedField 𝕜] [NormedRing A] [NormedAlgebra 𝕜 A]
49- [CompleteSpace A] {a : A} {k : 𝕜} (hk : k ∈ resolventSet 𝕜 a) :
49+ section NonTriviallyNormedField
50+
51+ variable [NontriviallyNormedField 𝕜] [NormedRing A] [NormedAlgebra 𝕜 A] [CompleteSpace A]
52+
53+ theorem hasDerivAt_resolvent_const_left {a : A} {k : 𝕜} (hk : k ∈ resolventSet 𝕜 a) :
5054 HasDerivAt (resolvent a) (-resolvent a k ^ 2 ) k := by
5155 have H₁ : HasFDerivAt Ring.inverse _ (algebraMap 𝕜 A k - a) :=
5256 hasFDerivAt_ringInverse (𝕜 := 𝕜) hk.unit
5357 have H₂ : HasDerivAt (fun k => algebraMap 𝕜 A k - a) 1 k := by
5458 simpa using (Algebra.linearMap 𝕜 A).hasDerivAt.sub_const a
5559 simpa [resolvent, sq, hk.unit_spec, ← Ring.inverse_unit hk.unit] using H₁.comp_hasDerivAt k H₂
5660
61+ @ [deprecated (since := "2026-03-26" )]
62+ alias hasDerivAt_resolvent := hasDerivAt_resolvent_const_left
63+
64+ theorem hasFDerivAt_resolvent {a : A} {k : 𝕜} (hk : k ∈ resolventSet 𝕜 a) :
65+ HasFDerivAt (resolvent · k)
66+ (((ContinuousLinearMap.mulLeftRight 𝕜 A) (resolvent a k)) (resolvent a k)) a := by
67+ have H₁ : HasFDerivAt Ring.inverse _ (algebraMap 𝕜 A k - a) :=
68+ hasFDerivAt_ringInverse (𝕜 := 𝕜) hk.unit
69+ have H₂ : HasFDerivAt (fun a => algebraMap 𝕜 A k - a) (- .id 𝕜 A) a := by
70+ simpa using (hasFDerivAt_const _ _).sub (hasFDerivAt_id (𝕜 := 𝕜) _)
71+ simpa [resolvent_eq hk] using H₁.comp a H₂
72+
73+ end NonTriviallyNormedField
74+
75+ theorem hasDerivAt_resolvent_const_right [NontriviallyNormedField 𝕜] [NontriviallyNormedField A]
76+ [NormedAlgebra 𝕜 A] [CompleteSpace A] {a : A} {k : 𝕜} (hk : k ∈ resolventSet 𝕜 a) :
77+ HasDerivAt (resolvent · k) (resolvent a k ^ 2 ) a := by
78+ convert hasFDerivAt_resolvent (𝕜 := A) hk |>.hasDerivAt
79+ simp [resolvent, pow_two]
80+
5781open ENNReal in
5882/-- In a Banach algebra `A` over `𝕜`, for `a : A` the function `fun z ↦ (1 - z • a)⁻¹` is
5983differentiable on any closed ball centered at zero of radius `r < (spectralRadius 𝕜 a)⁻¹`. -/
@@ -125,7 +149,8 @@ protected theorem nonempty (a : A) : (spectrum ℂ a).Nonempty := by
125149 by_contra! h
126150 have H₀ : resolventSet ℂ a = Set.univ := by rwa [spectrum, Set.compl_empty_iff] at h
127151 have H₁ : Differentiable ℂ fun z : ℂ => resolvent a z := fun z =>
128- (hasDerivAt_resolvent (H₀.symm ▸ Set.mem_univ z : z ∈ resolventSet ℂ a)).differentiableAt
152+ hasDerivAt_resolvent_const_left (H₀.symm ▸ Set.mem_univ z : z ∈ resolventSet ℂ a)
153+ |>.differentiableAt
129154 /- Since `resolvent a` tends to zero at infinity, by Liouville's theorem `resolvent a = 0`,
130155 which contradicts that `resolvent a z` is invertible. -/
131156 have H₃ := H₁.apply_eq_of_tendsto_cocompact 0 <| by
0 commit comments