|
| 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 |
0 commit comments