Skip to content
This repository was archived by the owner on Jul 24, 2024. It is now read-only.

Commit dfc1b4c

Browse files
committed
feat(topology/algebra/module/character_space): Introduce the character space of an algebra (#12838)
The character space of a topological algebra is the subset of elements of the weak dual that are also algebra homomorphisms. This space is used in the Gelfand transform, which gives an isomorphism between a commutative C⋆-algebra and continuous functions on the character space of the algebra. This, in turn, is used to construct the continuous functional calculus on C⋆-algebras. Co-authored-by: Frédéric Dupuis <31101893+dupuisf@users.noreply.github.com>
1 parent 55baab3 commit dfc1b4c

File tree

2 files changed

+127
-3
lines changed

2 files changed

+127
-3
lines changed
Lines changed: 124 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,124 @@
1+
/-
2+
Copyright (c) 2022 Frédéric Dupuis. All rights reserved.
3+
Released under Apache 2.0 license as described in the file LICENSE.
4+
Authors: Frédéric Dupuis
5+
-/
6+
7+
import topology.algebra.module.weak_dual
8+
import algebra.algebra.spectrum
9+
10+
/-!
11+
# Character space of a topological algebra
12+
13+
The character space of a topological algebra is the subset of elements of the weak dual that
14+
are also algebra homomorphisms. This space is used in the Gelfand transform, which gives an
15+
isomorphism between a commutative C⋆-algebra and continuous functions on the character space
16+
of the algebra. This, in turn, is used to construct the continuous functional calculus on
17+
C⋆-algebras.
18+
19+
20+
## Implementation notes
21+
22+
We define `character_space 𝕜 A` as a subset of the weak dual, which automatically puts the
23+
correct topology on the space. We then define `to_alg_hom` which provides the algebra homomorphism
24+
corresponding to any element. We also provide `to_clm` which provides the element as a
25+
continuous linear map. (Even though `weak_dual 𝕜 A` is a type copy of `A →L[𝕜] 𝕜`, this is
26+
often more convenient.)
27+
28+
## TODO
29+
30+
* Prove that the character space is a compact subset of the weak dual. This requires the
31+
Banach-Alaoglu theorem.
32+
33+
## Tags
34+
35+
character space, Gelfand transform, functional calculus
36+
37+
-/
38+
39+
namespace weak_dual
40+
41+
/-- The character space of a topological algebra is the subset of elements of the weak dual that
42+
are also algebra homomorphisms. -/
43+
def character_space (𝕜 : Type*) (A : Type*) [comm_semiring 𝕜] [topological_space 𝕜]
44+
[has_continuous_add 𝕜] [has_continuous_const_smul 𝕜 𝕜]
45+
[non_unital_non_assoc_semiring A] [topological_space A] [module 𝕜 A] :=
46+
{φ : weak_dual 𝕜 A | (φ ≠ 0) ∧ (∀ (x y : A), φ (x * y) = (φ x) * (φ y))}
47+
48+
variables {𝕜 : Type*} {A : Type*}
49+
50+
namespace character_space
51+
52+
section non_unital_non_assoc_semiring
53+
54+
variables [comm_semiring 𝕜] [topological_space 𝕜] [has_continuous_add 𝕜]
55+
[has_continuous_const_smul 𝕜 𝕜] [non_unital_non_assoc_semiring A] [topological_space A]
56+
[module 𝕜 A]
57+
58+
lemma coe_apply (φ : character_space 𝕜 A) (x : A) : (φ : weak_dual 𝕜 A) x = φ x := rfl
59+
60+
/-- An element of the character space, as a continuous linear map. -/
61+
def to_clm (φ : character_space 𝕜 A) : A →L[𝕜] 𝕜 := (φ : weak_dual 𝕜 A)
62+
63+
lemma to_clm_apply (φ : character_space 𝕜 A) (x : A) : φ x = to_clm φ x := rfl
64+
65+
/-- An element of the character space, as an non-unital algebra homomorphism. -/
66+
@[simps] def to_non_unital_alg_hom (φ : character_space 𝕜 A) : non_unital_alg_hom 𝕜 A 𝕜 :=
67+
{ to_fun := (φ : A → 𝕜),
68+
map_mul' := φ.prop.2,
69+
map_smul' := (to_clm φ).map_smul,
70+
map_zero' := continuous_linear_map.map_zero _,
71+
map_add' := continuous_linear_map.map_add _ }
72+
73+
lemma map_zero (φ : character_space 𝕜 A) : φ 0 = 0 := (to_non_unital_alg_hom φ).map_zero
74+
lemma map_add (φ : character_space 𝕜 A) (x y : A) : φ (x + y) = φ x + φ y :=
75+
(to_non_unital_alg_hom φ).map_add _ _
76+
lemma map_smul (φ : character_space 𝕜 A) (r : 𝕜) (x : A) : φ (r • x) = r • (φ x) :=
77+
(to_clm φ).map_smul _ _
78+
lemma map_mul (φ : character_space 𝕜 A) (x y : A) : φ (x * y) = φ x * φ y :=
79+
(to_non_unital_alg_hom φ).map_mul _ _
80+
lemma continuous (φ : character_space 𝕜 A) : continuous φ := (to_clm φ).continuous
81+
82+
end non_unital_non_assoc_semiring
83+
84+
section unital
85+
86+
variables [comm_ring 𝕜] [no_zero_divisors 𝕜] [topological_space 𝕜] [has_continuous_add 𝕜]
87+
[has_continuous_const_smul 𝕜 𝕜] [topological_space A] [semiring A] [algebra 𝕜 A]
88+
89+
lemma map_one (φ : character_space 𝕜 A) : φ 1 = 1 :=
90+
begin
91+
have h₁ : (φ 1) * (1 - φ 1) = 0 := by rw [mul_sub, sub_eq_zero, mul_one, ←map_mul φ, one_mul],
92+
rcases mul_eq_zero.mp h₁ with h₂|h₂,
93+
{ exfalso,
94+
apply φ.prop.1,
95+
ext,
96+
rw [continuous_linear_map.zero_apply, ←one_mul x, coe_apply, map_mul φ, h₂, zero_mul] },
97+
{ rw [sub_eq_zero] at h₂,
98+
exact h₂.symm },
99+
end
100+
101+
/-- An element of the character space, as an algebra homomorphism. -/
102+
@[simps] def to_alg_hom (φ : character_space 𝕜 A) : A →ₐ[𝕜] 𝕜 :=
103+
{ map_one' := map_one φ,
104+
commutes' := λ r, by
105+
{ rw [algebra.algebra_map_eq_smul_one, algebra.id.map_eq_id, ring_hom.id_apply],
106+
change ((φ : weak_dual 𝕜 A) : A →L[𝕜] 𝕜) (r • 1) = r,
107+
rw [continuous_linear_map.map_smul, algebra.id.smul_eq_mul, coe_apply, map_one φ, mul_one] },
108+
..to_non_unital_alg_hom φ }
109+
110+
end unital
111+
112+
section ring
113+
114+
variables [comm_ring 𝕜] [no_zero_divisors 𝕜] [topological_space 𝕜] [has_continuous_add 𝕜]
115+
[has_continuous_const_smul 𝕜 𝕜] [topological_space A] [ring A] [algebra 𝕜 A]
116+
117+
lemma apply_mem_spectrum [nontrivial 𝕜] (φ : character_space 𝕜 A) (a : A) : φ a ∈ spectrum 𝕜 a :=
118+
(to_alg_hom φ).apply_mem_spectrum a
119+
120+
end ring
121+
122+
end character_space
123+
124+
end weak_dual

src/topology/algebra/module/weak_dual.lean

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ import topology.algebra.module.basic
99
# Weak dual topology
1010
1111
This file defines the weak topology given two vector spaces `E` and `F` over a commutative semiring
12-
`𝕜` and a bilinear form `B : E →ₗ[𝕜] F →ₗ[𝕜] 𝕜`. The weak topology on `E` is the coarest topology
12+
`𝕜` and a bilinear form `B : E →ₗ[𝕜] F →ₗ[𝕜] 𝕜`. The weak topology on `E` is the coarsest topology
1313
such that for all `y : F` every map `λ x, B x y` is continuous.
1414
1515
In the case that `F = E →L[𝕜] 𝕜` and `B` being the canonical pairing, we obtain the weak-* topology,
@@ -180,8 +180,8 @@ weak_bilin (top_dual_pairing 𝕜 E)
180180

181181
instance : inhabited (weak_dual 𝕜 E) := continuous_linear_map.inhabited
182182

183-
instance fun_like_weak_dual : fun_like (weak_dual 𝕜 E) E (λ _, 𝕜) :=
184-
by {dunfold weak_dual, dunfold weak_bilin, apply_instance}
183+
instance add_monoid_hom_class_weak_dual : add_monoid_hom_class (weak_dual 𝕜 E) E 𝕜 :=
184+
continuous_linear_map.add_monoid_hom_class
185185

186186
/-- If a monoid `M` distributively continuously acts on `𝕜` and this action commutes with
187187
multiplication on `𝕜`, then it acts on `weak_dual 𝕜 E`. -/

0 commit comments

Comments
 (0)