Skip to content

Commit a7ed48f

Browse files
committed
feat : added spectrum.conjugate_units results to Algebra.Algebra.Spectrum, and spectrum.conjugate_unitary results to Algebra.Star.Unitary. (#13729)
Included proofs that conjugation by a unit preserves the spectrum, and conjugation by a unitary preserves the spectrum.
1 parent 7db5e4e commit a7ed48f

File tree

3 files changed

+46
-1
lines changed

3 files changed

+46
-1
lines changed

Mathlib/Algebra/Algebra/Spectrum.lean

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -449,3 +449,28 @@ theorem AlgEquiv.spectrum_eq {F R A B : Type*} [CommSemiring R] [Ring A] [Ring B
449449
Set.Subset.antisymm (AlgHom.spectrum_apply_subset _ _) <| by
450450
simpa only [AlgEquiv.coe_algHom, AlgEquiv.coe_coe_symm_apply_coe_apply] using
451451
AlgHom.spectrum_apply_subset (f : A ≃ₐ[R] B).symm (f a)
452+
453+
section ConjugateUnits
454+
455+
variable {R A : Type*} [CommSemiring R] [Ring A] [Algebra R A]
456+
457+
/-- Conjugation by a unit preserves the spectrum, inverse on right. -/
458+
@[simp]
459+
lemma spectrum.units_conjugate {a : A} {u : Aˣ} :
460+
spectrum R (u * a * u⁻¹) = spectrum R a := by
461+
suffices ∀ (b : A) (v : Aˣ), spectrum R (v * b * v⁻¹) ⊆ spectrum R b by
462+
refine le_antisymm (this a u) ?_
463+
apply le_of_eq_of_le ?_ <| this (u * a * u⁻¹) u⁻¹
464+
simp [mul_assoc]
465+
intro a u μ hμ
466+
rw [spectrum.mem_iff] at hμ ⊢
467+
contrapose! hμ
468+
simpa [mul_sub, sub_mul, Algebra.right_comm] using u.isUnit.mul hμ |>.mul u⁻¹.isUnit
469+
470+
/-- Conjugation by a unit preserves the spectrum, inverse on left. -/
471+
@[simp]
472+
lemma spectrum.units_conjugate' {a : A} {u : Aˣ} :
473+
spectrum R (u⁻¹ * a * u) = spectrum R a := by
474+
simpa using spectrum.units_conjugate (u := u⁻¹)
475+
476+
end ConjugateUnits

Mathlib/Algebra/Star/Unitary.lean

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ Authors: Shing Tak Lam, Frédéric Dupuis
55
-/
66
import Mathlib.Algebra.Group.Submonoid.Operations
77
import Mathlib.Algebra.Star.SelfAdjoint
8+
import Mathlib.Algebra.Algebra.Spectrum
89

910
#align_import algebra.star.unitary from "leanprover-community/mathlib"@"247a102b14f3cebfee126293341af5f6bed00237"
1011

@@ -239,4 +240,24 @@ instance : HasDistribNeg (unitary R) :=
239240

240241
end Ring
241242

243+
section UnitaryConjugate
244+
245+
universe u
246+
247+
variable {R A : Type*} [CommSemiring R] [Ring A] [Algebra R A] [StarMul A]
248+
249+
/-- Unitary conjugation preserves the spectrum, star on left. -/
250+
@[simp]
251+
lemma spectrum.unitary_conjugate {a : A} {u : unitary A} :
252+
spectrum R (u * a * (star u : A)) = spectrum R a :=
253+
spectrum.units_conjugate (u := unitary.toUnits u)
254+
255+
/-- Unitary conjugation preserves the spectrum, star on right. -/
256+
@[simp]
257+
lemma spectrum.unitary_conjugate' {a : A} {u : unitary A} :
258+
spectrum R ((star u : A) * a * u) = spectrum R a := by
259+
simpa using spectrum.unitary_conjugate (u := star u)
260+
261+
end UnitaryConjugate
262+
242263
end unitary

Mathlib/Analysis/NormedSpace/Star/Basic.lean

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,6 @@ To get a C⋆-algebra `E` over field `𝕜`, use
3333
3434
-/
3535

36-
3736
open Topology
3837

3938
local postfix:max "⋆" => star

0 commit comments

Comments
 (0)