Skip to content

Commit 02f5ba4

Browse files
DavidLedvinkaDavid Ledvinka
andcommitted
feat(Analysis): add resolvent derivatives in the algebra component (leanprover-community#37172)
I would take suggestions for better names. Co-authored-by: David Ledvinka <dledvinka.ledvinka@mail.utoronto.ca>
1 parent c0ee2a9 commit 02f5ba4

1 file changed

Lines changed: 30 additions & 5 deletions

File tree

Mathlib/Analysis/Normed/Algebra/GelfandFormula.lean

Lines changed: 30 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ module
77

88
public import Mathlib.Analysis.Normed.Algebra.Spectrum
99
public import Mathlib.Analysis.Calculus.Deriv.Basic
10-
import Mathlib.Analysis.Complex.Liouville
10+
public import Mathlib.Analysis.Normed.Operator.Mul
1111
import Mathlib.Analysis.Complex.Polynomial.Basic
1212
import 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

4647
namespace 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+
5781
open ENNReal in
5882
/-- In a Banach algebra `A` over `𝕜`, for `a : A` the function `fun z ↦ (1 - z • a)⁻¹` is
5983
differentiable 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

Comments
 (0)