@@ -242,7 +242,8 @@ lemma traceForm_eq_sum_weightSpaceOf [IsTriangularizable R L M] (z : L) :
242
242
LinearMap.trace_eq_sum_trace_restrict' hds hfin hxy]
243
243
exact Finset.sum_congr (by simp) (fun χ _ ↦ rfl)
244
244
245
- -- In characteristic zero a stronger result holds (no `⊓ LieAlgebra.center K L`) TODO prove this!
245
+ -- In characteristic zero (or even just `LinearWeights R L M`) a stronger result holds (no
246
+ -- `⊓ LieAlgebra.center R L`) TODO prove this using `LieModule.traceForm_eq_sum_finrank_nsmul_mul`.
246
247
lemma lowerCentralSeries_one_inf_center_le_ker_traceForm :
247
248
lowerCentralSeries R L L 1 ⊓ LieAlgebra.center R L ≤ LinearMap.ker (traceForm R L M) := by
248
249
/- Sketch of proof (due to Zassenhaus):
@@ -490,32 +491,33 @@ lemma LieModule.traceForm_eq_sum_finrank_nsmul_mul [LieAlgebra.IsNilpotent K L]
490
491
LinearMap.trace_eq_sum_trace_restrict' hds hfin hxy]
491
492
exact Finset.sum_congr (by simp) (fun χ _ ↦ traceForm_weightSpace_eq K L M χ x y)
492
493
493
- @[simp]
494
- lemma LieModule.span_weight_eq_top_of_ker_traceForm_eq_bot [LieAlgebra.IsNilpotent K L]
495
- [LinearWeights K L M] [IsTriangularizable K L M] [FiniteDimensional K L]
496
- (h : LinearMap.ker (traceForm K L M) = ⊥) :
497
- span K (range (weight.toLinear K L M)) = ⊤ := by
494
+ -- The reverse inclusion should also hold: TODO prove this!
495
+ lemma LieModule.dualAnnihilator_ker_traceForm_le_span_weight [LieAlgebra.IsNilpotent K L]
496
+ [LinearWeights K L M] [IsTriangularizable K L M] [FiniteDimensional K L] :
497
+ (LinearMap.ker (traceForm K L M)).dualAnnihilator ≤ span K (range (weight.toLinear K L M)) := by
498
+ intro g hg
499
+ simp only [Submodule.mem_dualAnnihilator, LinearMap.mem_ker] at hg
498
500
by_contra contra
499
501
obtain ⟨f : Module.Dual K (Module.Dual K L), hf, hf'⟩ :=
500
- Module.exists_dual_map_eq_bot_of_lt_top K (lt_top_iff_ne_top.mpr contra) inferInstance
502
+ Submodule.exists_dual_map_eq_bot_of_nmem contra inferInstance
501
503
let x : L := (Module.evalEquiv K L).symm f
502
504
replace hf' : ∀ χ ∈ weight K L M, χ x = 0 := by
503
505
intro χ hχ
504
506
change weight.toLinear K L M ⟨χ, hχ⟩ x = 0
505
507
rw [Module.apply_evalEquiv_symm_apply, ← Submodule.mem_bot (R := K), ← hf', Submodule.mem_map]
506
508
exact ⟨weight.toLinear K L M ⟨χ, hχ⟩, Submodule.subset_span (mem_range_self _), rfl⟩
507
- have hx : x ≠ 0 := (LinearEquiv.map_ne_zero_iff _).mpr hf
508
- apply hx
509
- rw [← Submodule.mem_bot (R := K), ← h, LinearMap.mem_ker]
509
+ have hx : g x ≠ 0 := by simpa
510
+ refine hx (hg _ ?_)
510
511
ext y
511
512
rw [LieModule.traceForm_eq_sum_finrank_nsmul_mul, LinearMap.zero_apply]
512
513
exact Finset.sum_eq_zero fun χ hχ ↦ by simp [hf' χ hχ]
513
514
514
515
/-- Given a splitting Cartan subalgebra `H` of a finite-dimensional Lie algebra with non-singular
515
516
Killing form, the corresponding roots span the dual space of `H`. -/
517
+ @[simp]
516
518
lemma LieAlgebra.IsKilling.span_weight_eq_top [FiniteDimensional K L] [IsKilling K L]
517
519
(H : LieSubalgebra K L) [H.IsCartanSubalgebra] [IsTriangularizable K H L] :
518
520
span K (range (weight.toLinear K H L)) = ⊤ := by
519
- simp
521
+ simpa using LieModule.dualAnnihilator_ker_traceForm_le_span_weight K H L
520
522
521
523
end Field
0 commit comments