Skip to content

Commit 64b2717

Browse files
committed
feat: upper hemicontinuity of the spectrum in Banach algebras (leanprover-community#33627)
If `A` is a (unital) Banach `π•œ`-algebra, then `spectrum π•œ : A β†’ Set π•œ` is upper hemicontinuous. Likewise, if `A` is a Banach `ℝ`-algebra, this holds for `spectrum ℝβ‰₯0` as well. In addition, both of these results are true for non-unital Banach algebras replacing `spectrum` by `quasispectrum`. This is useful for providing some more convenience lemmas establishing continuity of the continuous functional calculus in the operator variable. - [ ] depends on: leanprover-community#33623 - [ ] depends on: leanprover-community#33624 - [ ] depends on: leanprover-community#33625 - [ ] depends on: leanprover-community#33626
1 parent 2ba2966 commit 64b2717

1 file changed

Lines changed: 61 additions & 0 deletions

File tree

β€ŽMathlib/Analysis/Normed/Algebra/Spectrum.leanβ€Ž

Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@ public import Mathlib.Analysis.Normed.Ring.Units
1313
public import Mathlib.Analysis.SpecialFunctions.Pow.Continuity
1414
public import Mathlib.FieldTheory.IsAlgClosed.Spectrum
1515
public import Mathlib.Topology.Algebra.Module.CharacterSpace
16+
public import Mathlib.Topology.Semicontinuity.Hemicontinuity
17+
import Mathlib.Topology.MetricSpace.Sequences
1618

1719
/-!
1820
# The spectrum of elements in a complete normed algebra
@@ -689,3 +691,62 @@ lemma compactSpace {R S A : Type*} [Semifield R] [Field S] [NonUnitalRing A]
689691
exact h.image β–Έ h_cpct.image (map_continuous f)
690692

691693
end QuasispectrumRestricts
694+
695+
section UpperHemicontinuous
696+
697+
open Filter Set Topology
698+
699+
variable (π•œ A)
700+
701+
lemma upperHemicontinuous_spectrum [NormedField π•œ] [ProperSpace π•œ]
702+
[NormedRing A] [NormedAlgebra π•œ A] [CompleteSpace A] :
703+
UpperHemicontinuous (spectrum π•œ : A β†’ Set π•œ) := by
704+
/- It suffices to use the sequential characterization of upper hemicontinuity.
705+
Suppose that `a : β„• β†’ A` converges to `aβ‚€`, `x : β„• β†’ π•œ` converges to `xβ‚€`, and for all `n`,
706+
`x n ∈ spectrum π•œ (a n)`. -/
707+
rw [upperHemicontinuous_iff]
708+
refine fun aβ‚€ ↦ .of_sequences
709+
(isCompact_closedBall 0 ((β€–aβ‚€β€– + 1) * β€–(1 : A)β€–)).isSeqCompact ?_ <|
710+
fun a ha x hx_mem xβ‚€ hx↦ ?_
711+
/- We must show that `spectrum π•œ (a n)` is eventually contained in some fixed compact set
712+
(we've chosen `closedBall 0 ((β€–aβ‚€β€– + 1) * β€–(1 : A)β€–)`). This follows since the spectrum of any
713+
`b` is bounded `β€–bβ€– * β€–1β€–` and `a` converges to `aβ‚€`. -/
714+
Β· filter_upwards [Metric.closedBall_mem_nhds aβ‚€ zero_lt_one] with a ha
715+
apply spectrum.subset_closedBall_norm_mul a |>.trans <| Metric.closedBall_subset_closedBall ?_
716+
gcongr
717+
apply norm_le_norm_add_norm_sub' a aβ‚€ |>.trans
718+
gcongr
719+
simpa [dist_eq_norm] using ha
720+
/- Finally, `xβ‚€ ∈ spectrum π•œ aβ‚€` since `algebraMap π•œ A xβ‚€ - aβ‚€` is not invertible, being itself
721+
the limit of the non-invertible elements `algebraMap π•œ A (x n) - (a n)`. -/
722+
Β· exact nonunits.isClosed.mem_of_tendsto
723+
(continuous_algebraMap π•œ A |>.tendsto xβ‚€ |>.comp hx |>.sub ha) <| .of_forall hx_mem
724+
725+
/-- The map `a ↦ spectrum ℝβ‰₯0 a` is upper hemicontinuous. -/
726+
theorem upperHemicontinuous_spectrum_nnreal [NormedRing A] [NormedAlgebra ℝ A] [CompleteSpace A] :
727+
UpperHemicontinuous (spectrum ℝβ‰₯0 : A β†’ Set ℝβ‰₯0) := by
728+
obtain ⟨⟨h₁, -⟩, hβ‚‚βŸ© : IsClosedEmbedding ((↑) : ℝβ‰₯0 β†’ ℝ) := isometry_subtype_coe.isClosedEmbedding
729+
exact upperHemicontinuous_spectrum ℝ A |>.isInducing_comp h₁ hβ‚‚
730+
731+
open WithLp in
732+
/-- The map `a ↦ quasispectrum π•œ a` is upper hemicontinuous. -/
733+
theorem upperHemicontinuous_quasispectrum [NontriviallyNormedField π•œ] [ProperSpace π•œ]
734+
[NonUnitalNormedRing A] [NormedSpace π•œ A] [SMulCommClass π•œ A A] [IsScalarTower π•œ A A]
735+
[CompleteSpace A] :
736+
UpperHemicontinuous (quasispectrum π•œ : A β†’ Set π•œ) := by
737+
convert upperHemicontinuous_spectrum π•œ (WithLp 1 (Unitization π•œ A)) |>.comp
738+
unitization_isometry_inr.continuous
739+
ext1 a
740+
rw [Unitization.quasispectrum_eq_spectrum_inr,
741+
← AlgEquiv.spectrum_eq (unitizationAlgEquiv π•œ (π•œ := π•œ) (A := A) |>.symm)]
742+
congr
743+
744+
/-- The map `a ↦ quasispectrum ℝβ‰₯0 a` is upper hemicontinuous. -/
745+
theorem upperHemicontinuous_quasispectrum_nnreal [NonUnitalNormedRing A]
746+
[NormedSpace ℝ A] [SMulCommClass ℝ A A] [IsScalarTower ℝ A A] [CompleteSpace A] :
747+
UpperHemicontinuous (quasispectrum ℝβ‰₯0 : A β†’ Set ℝβ‰₯0) := by
748+
obtain ⟨⟨h₁, -⟩, hβ‚‚βŸ© : IsClosedEmbedding ((↑) : ℝβ‰₯0 β†’ ℝ) := isometry_subtype_coe.isClosedEmbedding
749+
simpa [← NNReal.algebraMap_eq_coe] using
750+
upperHemicontinuous_quasispectrum ℝ A |>.isInducing_comp h₁ hβ‚‚
751+
752+
end UpperHemicontinuous

0 commit comments

Comments
Β (0)