@@ -3,6 +3,7 @@ Copyright (c) 2023 Oliver Nash. All rights reserved.
3
3
Released under Apache 2.0 license as described in the file LICENSE.
4
4
Authors: Oliver Nash
5
5
-/
6
+ import Mathlib.Algebra.DirectSum.LinearMap
6
7
import Mathlib.Algebra.Lie.Nilpotent
7
8
import Mathlib.Algebra.Lie.Semisimple
8
9
import Mathlib.Algebra.Lie.Weights.Cartan
@@ -35,6 +36,8 @@ We define the trace / Killing form in this file and prove some basic properties.
35
36
a Lie algebra is non-singular, it remains non-singular when restricted to a Cartan subalgebra.
36
37
* `LieAlgebra.IsKilling.isSemisimple`: if a Lie algebra has non-singular Killing form then it is
37
38
semisimple.
39
+ * `LieAlgebra.IsKilling.isLieAbelian_of_isCartanSubalgebra`: if the Killing form of a Lie algebra
40
+ is non-singular, then its Cartan subalgebras are Abelian.
38
41
39
42
## TODO
40
43
@@ -45,9 +48,13 @@ variable (R L M : Type*) [CommRing R] [LieRing L] [LieAlgebra R L]
45
48
[AddCommGroup M] [Module R M] [LieRingModule L M] [LieModule R L M]
46
49
[Module.Free R M] [Module.Finite R M]
47
50
51
+ attribute [local instance] isNoetherian_of_isNoetherianRing_of_finite
52
+ attribute [local instance] Module.free_of_finite_type_torsion_free'
53
+
48
54
local notation "φ" => LieModule.toEndomorphism R L M
49
55
50
56
open LinearMap (trace)
57
+ open Set BigOperators
51
58
52
59
namespace LieModule
53
60
@@ -162,6 +169,67 @@ lemma eq_zero_of_mem_weightSpace_mem_posFitting [LieAlgebra.IsNilpotent R L]
162
169
obtain ⟨m, rfl⟩ := (mem_posFittingCompOf R x m₁).mp hm₁ k
163
170
simp [hB, hk]
164
171
172
+ lemma trace_toEndomorphism_eq_zero_of_mem_lcs
173
+ {k : ℕ} {x : L} (hk : 1 ≤ k) (hx : x ∈ lowerCentralSeries R L L k) :
174
+ trace R _ (toEndomorphism R L M x) = 0 := by
175
+ replace hx : x ∈ lowerCentralSeries R L L 1 := antitone_lowerCentralSeries _ _ _ hk hx
176
+ replace hx : x ∈ Submodule.span R {m | ∃ u v : L, ⁅u, v⁆ = m} := by
177
+ rw [lowerCentralSeries_succ, ← LieSubmodule.mem_coeSubmodule,
178
+ LieSubmodule.lieIdeal_oper_eq_linear_span'] at hx
179
+ simpa using hx
180
+ refine Submodule.span_induction (p := fun x ↦ trace R _ (toEndomorphism R L M x) = 0 ) hx
181
+ (fun y ⟨u, v, huv⟩ ↦ ?_) ?_ (fun u v hu hv ↦ ?_) (fun t u hu ↦ ?_)
182
+ · simp_rw [← huv, LieHom.map_lie, Ring.lie_def, map_sub, LinearMap.trace_mul_comm, sub_self]
183
+ · simp
184
+ · simp [hu, hv]
185
+ · simp [hu]
186
+
187
+ variable [LieAlgebra.IsNilpotent R L] [IsTriangularizable R L M]
188
+ [IsDomain R] [IsPrincipalIdealRing R]
189
+
190
+ lemma traceForm_eq_sum_weightSpaceOf (z : L) :
191
+ traceForm R L M =
192
+ ∑ χ in (finite_weightSpaceOf_ne_bot R L M z).toFinset, traceForm R L (weightSpaceOf M χ z) := by
193
+ ext x y
194
+ have hxy : ∀ χ : R, MapsTo ((toEndomorphism R L M x).comp (toEndomorphism R L M y))
195
+ (weightSpaceOf M χ z) (weightSpaceOf M χ z) :=
196
+ fun χ m hm ↦ LieSubmodule.lie_mem _ <| LieSubmodule.lie_mem _ hm
197
+ have hfin : {χ : R | (weightSpaceOf M χ z : Submodule R M) ≠ ⊥}.Finite := by
198
+ convert finite_weightSpaceOf_ne_bot R L M z
199
+ exact LieSubmodule.coeSubmodule_eq_bot_iff (weightSpaceOf M _ _)
200
+ classical
201
+ have hds := DirectSum.isInternal_submodule_of_independent_of_iSup_eq_top
202
+ (LieSubmodule.independent_iff_coe_toSubmodule.mp <| independent_weightSpaceOf R L M z)
203
+ (IsTriangularizable.iSup_eq_top z)
204
+ simp only [LinearMap.coeFn_sum, Finset.sum_apply, traceForm_apply_apply,
205
+ LinearMap.trace_eq_sum_trace_restrict' hds hfin hxy]
206
+ exact Finset.sum_congr (by simp) (fun χ _ ↦ rfl)
207
+
208
+ -- In characteristic zero a stronger result holds (no `⊓ LieAlgebra.center K L`) TODO prove this!
209
+ lemma lowerCentralSeries_one_inf_center_le_ker_traceForm :
210
+ lowerCentralSeries R L L 1 ⊓ LieAlgebra.center R L ≤ LinearMap.ker (traceForm R L M) := by
211
+ rintro z ⟨hz : z ∈ lowerCentralSeries R L L 1 , hzc : z ∈ LieAlgebra.center R L⟩
212
+ ext x
213
+ suffices ∀ χ : R, traceForm R L (weightSpaceOf M χ x) z x = 0 by
214
+ simp [traceForm_eq_sum_weightSpaceOf R L M x, this]
215
+ intro χ
216
+ replace hz : LinearMap.trace R _ (toEndomorphism R L (weightSpaceOf M χ x) z) = 0 :=
217
+ trace_toEndomorphism_eq_zero_of_mem_lcs R L _ (le_refl _) hz
218
+ let f := toEndomorphism R L (weightSpaceOf M χ x) z
219
+ let g := toEndomorphism R L (weightSpaceOf M χ x) x
220
+ have h_comm : Commute f g := commute_toEndomorphism_of_mem_center_left _ hzc x
221
+ have hg : _root_.IsNilpotent (g - algebraMap R _ χ) :=
222
+ (toEndomorphism R L M x).isNilpotent_restrict_iSup_sub_algebraMap χ
223
+ rw [traceForm_apply_apply, LinearMap.trace_comp_eq_mul_of_commute_of_isNilpotent χ h_comm hg, hz,
224
+ mul_zero]
225
+
226
+ /-- A nilpotent Lie algebra with a representation whose trace form is non-singular is Abelian. -/
227
+ lemma isLieAbelian_of_ker_traceForm_eq_bot (h : LinearMap.ker (traceForm R L M) = ⊥) :
228
+ IsLieAbelian L := by
229
+ simpa only [← disjoint_lowerCentralSeries_maxTrivSubmodule_iff R L L, disjoint_iff_inf_le,
230
+ LieIdeal.coe_to_lieSubalgebra_to_submodule, LieSubmodule.coeSubmodule_eq_bot_iff, h]
231
+ using lowerCentralSeries_one_inf_center_le_ker_traceForm R L M
232
+
165
233
end LieModule
166
234
167
235
namespace LieSubmodule
@@ -316,6 +384,13 @@ instance isSemisimple [IsDomain R] [IsPrincipalIdealRing R] : IsSemisimple R L :
316
384
317
385
-- TODO: formalize a positive-characteristic counterexample to the above instance
318
386
387
+ instance instIsLieAbelian_of_isCartanSubalgebra
388
+ [IsDomain R] [IsPrincipalIdealRing R] [IsArtinian R L]
389
+ (H : LieSubalgebra R L) [H.IsCartanSubalgebra] [LieModule.IsTriangularizable R H L] :
390
+ IsLieAbelian H :=
391
+ LieModule.isLieAbelian_of_ker_traceForm_eq_bot R H L <|
392
+ ker_restrictBilinear_of_isCartanSubalgebra_eq_bot R L H
393
+
319
394
end IsKilling
320
395
321
396
end LieAlgebra
0 commit comments