|
| 1 | +/- |
| 2 | +Copyright (c) 2022 Oliver Nash. All rights reserved. |
| 3 | +Released under Apache 2.0 license as described in the file LICENSE. |
| 4 | +Authors: Oliver Nash |
| 5 | +-/ |
| 6 | +import algebra.lie.abelian |
| 7 | +import algebra.lie.ideal_operations |
| 8 | +import algebra.lie.quotient |
| 9 | + |
| 10 | +/-! |
| 11 | +# The centralizer of a Lie submodule and the normalizer of a Lie subalgebra. |
| 12 | +
|
| 13 | +Given a Lie module `M` over a Lie subalgebra `L`, the centralizer of a Lie submodule `N ⊆ M` is |
| 14 | +the Lie submodule with underlying set `{ m | ∀ (x : L), ⁅x, m⁆ ∈ N }`. |
| 15 | +
|
| 16 | +The lattice of Lie submodules thus has two natural operations, the centralizer: `N ↦ N.centralizer` |
| 17 | +and the ideal operation: `N ↦ ⁅⊤, N⁆`; these are adjoint, i.e., they form a Galois connection. This |
| 18 | +adjointness is the reason that we may define nilpotency in terms of either the upper or lower |
| 19 | +central series. |
| 20 | +
|
| 21 | +Given a Lie subalgebra `H ⊆ L`, we may regard `H` as a Lie submodule of `L` over `H`, and thus |
| 22 | +consider the centralizer. This turns out to be a Lie subalgebra and is known as the normalizer. |
| 23 | +
|
| 24 | +## Main definitions |
| 25 | +
|
| 26 | + * `lie_submodule.centralizer` |
| 27 | + * `lie_subalgebra.normalizer` |
| 28 | + * `lie_submodule.gc_top_lie_centralizer` |
| 29 | +
|
| 30 | +## Tags |
| 31 | +
|
| 32 | +lie algebra, centralizer, normalizer |
| 33 | +-/ |
| 34 | + |
| 35 | +variables {R L M M' : Type*} |
| 36 | +variables [comm_ring R] [lie_ring L] [lie_algebra R L] |
| 37 | +variables [add_comm_group M] [module R M] [lie_ring_module L M] [lie_module R L M] |
| 38 | +variables [add_comm_group M'] [module R M'] [lie_ring_module L M'] [lie_module R L M'] |
| 39 | + |
| 40 | +namespace lie_submodule |
| 41 | + |
| 42 | +variables (N : lie_submodule R L M) {N₁ N₂ : lie_submodule R L M} |
| 43 | + |
| 44 | +/-- The centralizer of a Lie submodule. -/ |
| 45 | +def centralizer : lie_submodule R L M := |
| 46 | +{ carrier := { m | ∀ (x : L), ⁅x, m⁆ ∈ N }, |
| 47 | + add_mem' := λ m₁ m₂ hm₁ hm₂ x, by { rw lie_add, exact N.add_mem' (hm₁ x) (hm₂ x), }, |
| 48 | + zero_mem' := λ x, by simp, |
| 49 | + smul_mem' := λ t m hm x, by { rw lie_smul, exact N.smul_mem' t (hm x), }, |
| 50 | + lie_mem := λ x m hm y, by { rw leibniz_lie, exact N.add_mem' (hm ⁅y, x⁆) (N.lie_mem (hm y)), } } |
| 51 | + |
| 52 | +@[simp] lemma mem_centralizer (m : M) : |
| 53 | + m ∈ N.centralizer ↔ ∀ (x : L), ⁅x, m⁆ ∈ N := |
| 54 | +iff.rfl |
| 55 | + |
| 56 | +lemma le_centralizer : N ≤ N.centralizer := |
| 57 | +begin |
| 58 | + intros m hm, |
| 59 | + rw mem_centralizer, |
| 60 | + exact λ x, N.lie_mem hm, |
| 61 | +end |
| 62 | + |
| 63 | +lemma centralizer_inf : |
| 64 | + (N₁ ⊓ N₂).centralizer = N₁.centralizer ⊓ N₂.centralizer := |
| 65 | +by { ext, simp [← forall_and_distrib], } |
| 66 | + |
| 67 | +@[mono] lemma monotone_centalizer : |
| 68 | + monotone (centralizer : lie_submodule R L M → lie_submodule R L M) := |
| 69 | +begin |
| 70 | + intros N₁ N₂ h m hm, |
| 71 | + rw mem_centralizer at hm ⊢, |
| 72 | + exact λ x, h (hm x), |
| 73 | +end |
| 74 | + |
| 75 | +@[simp] lemma comap_centralizer (f : M' →ₗ⁅R,L⁆ M) : |
| 76 | + N.centralizer.comap f = (N.comap f).centralizer := |
| 77 | +by { ext, simp, } |
| 78 | + |
| 79 | +lemma top_lie_le_iff_le_centralizer (N' : lie_submodule R L M) : |
| 80 | + ⁅(⊤ : lie_ideal R L), N⁆ ≤ N' ↔ N ≤ N'.centralizer := |
| 81 | +by { rw lie_le_iff, tauto, } |
| 82 | + |
| 83 | +lemma gc_top_lie_centralizer : |
| 84 | + galois_connection (λ N : lie_submodule R L M, ⁅(⊤ : lie_ideal R L), N⁆) centralizer := |
| 85 | +top_lie_le_iff_le_centralizer |
| 86 | + |
| 87 | +variables (R L M) |
| 88 | + |
| 89 | +lemma centralizer_bot_eq_max_triv_submodule : |
| 90 | + (⊥ : lie_submodule R L M).centralizer = lie_module.max_triv_submodule R L M := |
| 91 | +rfl |
| 92 | + |
| 93 | +end lie_submodule |
| 94 | + |
| 95 | +namespace lie_subalgebra |
| 96 | + |
| 97 | +variables (H : lie_subalgebra R L) |
| 98 | + |
| 99 | +/-- Regarding a Lie subalgebra `H ⊆ L` as a module over itself, its centralizer is in fact a Lie |
| 100 | +subalgebra. This is called the normalizer of the Lie subalgebra. -/ |
| 101 | +def normalizer : lie_subalgebra R L := |
| 102 | +{ lie_mem' := λ y z hy hz x, |
| 103 | + begin |
| 104 | + rw [coe_bracket_of_module, mem_to_lie_submodule, leibniz_lie, ← lie_skew y, ← sub_eq_add_neg], |
| 105 | + exact H.sub_mem (hz ⟨_, hy x⟩) (hy ⟨_, hz x⟩), |
| 106 | + end, |
| 107 | + .. H.to_lie_submodule.centralizer } |
| 108 | + |
| 109 | +lemma mem_normalizer_iff' (x : L) : x ∈ H.normalizer ↔ ∀ (y : L), (y ∈ H) → ⁅y, x⁆ ∈ H := |
| 110 | +by { rw subtype.forall', refl, } |
| 111 | + |
| 112 | +lemma mem_normalizer_iff (x : L) : x ∈ H.normalizer ↔ ∀ (y : L), (y ∈ H) → ⁅x, y⁆ ∈ H := |
| 113 | +begin |
| 114 | + rw mem_normalizer_iff', |
| 115 | + refine forall₂_congr (λ y hy, _), |
| 116 | + rw [← lie_skew, neg_mem_iff], |
| 117 | +end |
| 118 | + |
| 119 | +lemma le_normalizer : H ≤ H.normalizer := H.to_lie_submodule.le_centralizer |
| 120 | + |
| 121 | +lemma coe_centralizer_eq_normalizer : |
| 122 | + (H.to_lie_submodule.centralizer : submodule R L) = H.normalizer := |
| 123 | +rfl |
| 124 | + |
| 125 | +variables {H} |
| 126 | + |
| 127 | +lemma lie_mem_sup_of_mem_normalizer {x y z : L} (hx : x ∈ H.normalizer) |
| 128 | + (hy : y ∈ (R ∙ x) ⊔ ↑H) (hz : z ∈ (R ∙ x) ⊔ ↑H) : ⁅y, z⁆ ∈ (R ∙ x) ⊔ ↑H := |
| 129 | +begin |
| 130 | + rw submodule.mem_sup at hy hz, |
| 131 | + obtain ⟨u₁, hu₁, v, hv : v ∈ H, rfl⟩ := hy, |
| 132 | + obtain ⟨u₂, hu₂, w, hw : w ∈ H, rfl⟩ := hz, |
| 133 | + obtain ⟨t, rfl⟩ := submodule.mem_span_singleton.mp hu₁, |
| 134 | + obtain ⟨s, rfl⟩ := submodule.mem_span_singleton.mp hu₂, |
| 135 | + apply submodule.mem_sup_right, |
| 136 | + simp only [lie_subalgebra.mem_coe_submodule, smul_lie, add_lie, zero_add, lie_add, smul_zero, |
| 137 | + lie_smul, lie_self], |
| 138 | + refine H.add_mem (H.smul_mem s _) (H.add_mem (H.smul_mem t _) (H.lie_mem hv hw)), |
| 139 | + exacts [(H.mem_normalizer_iff' x).mp hx v hv, (H.mem_normalizer_iff x).mp hx w hw], |
| 140 | +end |
| 141 | + |
| 142 | +/-- A Lie subalgebra is an ideal of its normalizer. -/ |
| 143 | +lemma ideal_in_normalizer {x y : L} (hx : x ∈ H.normalizer) (hy : y ∈ H) : ⁅x,y⁆ ∈ H := |
| 144 | +begin |
| 145 | + rw [← lie_skew, neg_mem_iff], |
| 146 | + exact hx ⟨y, hy⟩, |
| 147 | +end |
| 148 | + |
| 149 | +/-- A Lie subalgebra `H` is an ideal of any Lie subalgebra `K` containing `H` and contained in the |
| 150 | +normalizer of `H`. -/ |
| 151 | +lemma exists_nested_lie_ideal_of_le_normalizer |
| 152 | + {K : lie_subalgebra R L} (h₁ : H ≤ K) (h₂ : K ≤ H.normalizer) : |
| 153 | + ∃ (I : lie_ideal R K), (I : lie_subalgebra R K) = of_le h₁ := |
| 154 | +begin |
| 155 | + rw exists_nested_lie_ideal_coe_eq_iff, |
| 156 | + exact λ x y hx hy, ideal_in_normalizer (h₂ hx) hy, |
| 157 | +end |
| 158 | + |
| 159 | +variables (H) |
| 160 | + |
| 161 | +lemma normalizer_eq_self_iff : |
| 162 | + H.normalizer = H ↔ (lie_module.max_triv_submodule R H $ L ⧸ H.to_lie_submodule) = ⊥ := |
| 163 | +begin |
| 164 | + rw lie_submodule.eq_bot_iff, |
| 165 | + refine ⟨λ h, _, λ h, le_antisymm (λ x hx, _) H.le_normalizer⟩, |
| 166 | + { rintros ⟨x⟩ hx, |
| 167 | + suffices : x ∈ H, by simpa, |
| 168 | + rw [← h, H.mem_normalizer_iff'], |
| 169 | + intros y hy, |
| 170 | + replace hx : ⁅_, lie_submodule.quotient.mk' _ x⁆ = 0 := hx ⟨y, hy⟩, |
| 171 | + rwa [← lie_module_hom.map_lie, lie_submodule.quotient.mk_eq_zero] at hx, }, |
| 172 | + { let y := lie_submodule.quotient.mk' H.to_lie_submodule x, |
| 173 | + have hy : y ∈ lie_module.max_triv_submodule R H (L ⧸ H.to_lie_submodule), |
| 174 | + { rintros ⟨z, hz⟩, |
| 175 | + rw [← lie_module_hom.map_lie, lie_submodule.quotient.mk_eq_zero, coe_bracket_of_module, |
| 176 | + submodule.coe_mk, mem_to_lie_submodule], |
| 177 | + exact (H.mem_normalizer_iff' x).mp hx z hz, }, |
| 178 | + simpa using h y hy, }, |
| 179 | +end |
| 180 | + |
| 181 | +end lie_subalgebra |
0 commit comments