@@ -5,7 +5,7 @@ Authors: Jireh Loreaux
5
5
-/
6
6
import algebra.algebra.spectrum
7
7
import analysis.special_functions.pow
8
- import analysis.complex.cauchy_integral
8
+ import analysis.complex.liouville
9
9
import analysis.analytic.radius_liminf
10
10
/-!
11
11
# The spectrum of elements in a complete normed algebra
@@ -27,6 +27,7 @@ This file contains the basic theory for the resolvent and spectrum of a Banach a
27
27
* `spectrum.has_deriv_at_resolvent`: the resolvent function is differentiable on the resolvent set.
28
28
* `spectrum.pow_nnnorm_pow_one_div_tendsto_nhds_spectral_radius`: Gelfand's formula for the
29
29
spectral radius in Banach algebras over `ℂ`.
30
+ * `spectrum.nonempty`: the spectrum of any element in a complex Banach algebra is nonempty.
30
31
31
32
32
33
## TODO
123
124
124
125
end spectrum_compact
125
126
126
- section resolvent_deriv
127
+ section resolvent
128
+
129
+ open filter asymptotics
127
130
128
131
variables [nondiscrete_normed_field 𝕜] [normed_ring A] [normed_algebra 𝕜 A] [complete_space A]
129
132
@@ -139,7 +142,40 @@ begin
139
142
simpa [resolvent, sq, hk.unit_spec, ← ring.inverse_unit hk.unit] using H₁.comp_has_deriv_at k H₂,
140
143
end
141
144
142
- end resolvent_deriv
145
+ /- TODO: Once there is sufficient API for bornology, we should get a nice filter / asymptotics
146
+ version of this, for example: `tendsto (resolvent a) (cobounded 𝕜) (𝓝 0)` or more specifically
147
+ `is_O (resolvent a) (λ z, z⁻¹) (cobounded 𝕜)`. -/
148
+ lemma norm_resolvent_le_forall (a : A) :
149
+ ∀ ε > 0 , ∃ R > 0 , ∀ z : 𝕜, R ≤ ∥z∥ → ∥resolvent a z∥ ≤ ε :=
150
+ begin
151
+ obtain ⟨c, c_pos, hc⟩ := (@normed_ring.inverse_one_sub_norm A _ _).exists_pos,
152
+ rw [is_O_with_iff, eventually_iff, metric.mem_nhds_iff] at hc,
153
+ rcases hc with ⟨δ, δ_pos, hδ⟩,
154
+ simp only [cstar_ring.norm_one, mul_one] at hδ,
155
+ intros ε hε,
156
+ have ha₁ : 0 < ∥a∥ + 1 := lt_of_le_of_lt (norm_nonneg a) (lt_add_one _),
157
+ have min_pos : 0 < min (δ * (∥a∥ + 1 )⁻¹) (ε * c⁻¹),
158
+ from lt_min (mul_pos δ_pos (inv_pos.mpr ha₁)) (mul_pos hε (inv_pos.mpr c_pos)),
159
+ refine ⟨(min (δ * (∥a∥ + 1 )⁻¹) (ε * c⁻¹))⁻¹, inv_pos.mpr min_pos, (λ z hz, _)⟩,
160
+ have hnz : z ≠ 0 := norm_pos_iff.mp (lt_of_lt_of_le (inv_pos.mpr min_pos) hz),
161
+ replace hz := inv_le_of_inv_le min_pos hz,
162
+ rcases (⟨units.mk0 z hnz, units.coe_mk0 hnz⟩ : is_unit z) with ⟨z, rfl⟩,
163
+ have lt_δ : ∥z⁻¹ • a∥ < δ,
164
+ { rw [units.smul_def, norm_smul, units.coe_inv', norm_inv],
165
+ calc ∥(z : 𝕜)∥⁻¹ * ∥a∥ ≤ δ * (∥a∥ + 1 )⁻¹ * ∥a∥
166
+ : mul_le_mul_of_nonneg_right (hz.trans (min_le_left _ _)) (norm_nonneg _)
167
+ ... < δ
168
+ : by { conv { rw mul_assoc, to_rhs, rw (mul_one δ).symm },
169
+ exact mul_lt_mul_of_pos_left
170
+ ((inv_mul_lt_iff ha₁).mpr ((mul_one (∥a∥ + 1 )).symm ▸ (lt_add_one _))) δ_pos } },
171
+ rw [←inv_smul_smul z (resolvent a (z : 𝕜)), units_smul_resolvent_self, resolvent,
172
+ algebra.algebra_map_eq_smul_one, one_smul, units.smul_def, norm_smul, units.coe_inv', norm_inv],
173
+ calc _ ≤ ε * c⁻¹ * c : mul_le_mul (hz.trans (min_le_right _ _)) (hδ (mem_ball_zero_iff.mpr lt_δ))
174
+ (norm_nonneg _) (mul_pos hε (inv_pos.mpr c_pos)).le
175
+ ... = _ : inv_mul_cancel_right₀ c_pos.ne.symm ε,
176
+ end
177
+
178
+ end resolvent
143
179
144
180
section one_sub_smul
145
181
273
309
274
310
end gelfand_formula
275
311
312
+ /-- In a (nontrivial) complex Banach algebra, every element has nonempty spectrum. -/
313
+ theorem nonempty {A : Type *} [normed_ring A] [normed_algebra ℂ A] [complete_space A]
314
+ [nontrivial A] [topological_space.second_countable_topology A]
315
+ (a : A) : (spectrum ℂ a).nonempty :=
316
+ begin
317
+ /- Suppose `σ a = ∅`, then resolvent set is `ℂ`, any `(z • 1 - a)` is a unit, and `resolvent`
318
+ is differentiable on `ℂ`. -/
319
+ rw ←set.ne_empty_iff_nonempty,
320
+ by_contra h,
321
+ have H₀ : resolvent_set ℂ a = set.univ, by rwa [spectrum, set.compl_empty_iff] at h,
322
+ have H₁ : differentiable ℂ (λ z : ℂ, resolvent a z), from λ z,
323
+ (has_deriv_at_resolvent (H₀.symm ▸ set.mem_univ z : z ∈ resolvent_set ℂ a)).differentiable_at,
324
+ /- The norm of the resolvent is small for all sufficently large `z`, and by compactness and
325
+ continuity it is bounded on the complement of a large ball, thus uniformly bounded on `ℂ`.
326
+ By Liouville's theorem `λ z, resolvent a z` is constant -/
327
+ have H₂ := norm_resolvent_le_forall a,
328
+ have H₃ : ∀ z : ℂ, resolvent a z = resolvent a (0 : ℂ),
329
+ { refine λ z, H₁.apply_eq_apply_of_bounded (bounded_iff_exists_norm_le.mpr _) z 0 ,
330
+ rcases H₂ 1 zero_lt_one with ⟨R, R_pos, hR⟩,
331
+ rcases (proper_space.is_compact_closed_ball (0 : ℂ) R).exists_bound_of_continuous_on
332
+ H₁.continuous.continuous_on with ⟨C, hC⟩,
333
+ use max C 1 ,
334
+ rintros _ ⟨w, rfl⟩,
335
+ refine or.elim (em (∥w∥ ≤ R)) (λ hw, _) (λ hw, _),
336
+ { exact (hC w (mem_closed_ball_zero_iff.mpr hw)).trans (le_max_left _ _) },
337
+ { exact (hR w (not_le.mp hw).le).trans (le_max_right _ _), }, },
338
+ /- `resolvent a 0 = 0`, which is a contradition because it isn't a unit. -/
339
+ have H₅ : resolvent a (0 : ℂ) = 0 ,
340
+ { refine norm_eq_zero.mp (le_antisymm (le_of_forall_pos_le_add (λ ε hε, _)) (norm_nonneg _)),
341
+ rcases H₂ ε hε with ⟨R, R_pos, hR⟩,
342
+ simpa only [H₃ R] using (zero_add ε).symm.subst
343
+ (hR R (by exact_mod_cast (real.norm_of_nonneg R_pos.lt.le).symm.le)), },
344
+ /- `not_is_unit_zero` is where we need `nontrivial A`, it is unavoidable. -/
345
+ exact not_is_unit_zero (H₅.subst (is_unit_resolvent.mp
346
+ (mem_resolvent_set_iff.mp (H₀.symm ▸ set.mem_univ 0 )))),
347
+ end
348
+
276
349
end spectrum
277
350
278
351
namespace alg_hom
0 commit comments