|
| 1 | +/- |
| 2 | +Copyright © 2024 Frédéric Marbach. All rights reserved. |
| 3 | +Released under Apache 2.0 license as described in the file LICENSE. |
| 4 | +Authors: Frédéric Marbach |
| 5 | +-/ |
| 6 | +import Mathlib.Algebra.Lie.Derivation.AdjointAction |
| 7 | +import Mathlib.Algebra.Lie.Killing |
| 8 | +import Mathlib.LinearAlgebra.BilinearForm.Orthogonal |
| 9 | + |
| 10 | +/-! |
| 11 | +# Derivations of finite dimensional Killing Lie algebras |
| 12 | +
|
| 13 | +This file establishes that all derivations of finite-dimensional Killing Lie algebras are inner. |
| 14 | +
|
| 15 | +## Main statements |
| 16 | +
|
| 17 | +- `LieDerivation.ad_mem_orthogonal_of_mem_orthogonal`: if a derivation `D` is in the Killing |
| 18 | +orthogonal of the range of the adjoint action, then, for any `x : L`, `ad (D x)` is also in this |
| 19 | +orthogonal. |
| 20 | +- `LieDerivation.Killing.range_ad_eq_top`: in a finite-dimensional Lie algebra with non-degenerate |
| 21 | +Killing form, the range of the adjoint action is full, |
| 22 | +- `LieDerivation.Killing.exists_eq_ad`: in a finite-dimensional Lie algebra with non-degenerate |
| 23 | +Killing form, any derivation is an inner derivation. |
| 24 | +-/ |
| 25 | + |
| 26 | +namespace LieDerivation.Killing |
| 27 | + |
| 28 | +section |
| 29 | + |
| 30 | +variable (R L : Type*) [Field R] [LieRing L] [LieAlgebra R L] [Module.Finite R L] |
| 31 | + |
| 32 | +/-- A local notation for the set of (Lie) derivations on `L`. -/ |
| 33 | +local notation "𝔻" => (LieDerivation R L L) |
| 34 | + |
| 35 | +/-- A local notation for the range of `ad`. -/ |
| 36 | +local notation "𝕀" => (LieHom.range (ad R L)) |
| 37 | + |
| 38 | +/-- A local notation for the Killing complement of the ideal range of `ad`. -/ |
| 39 | +local notation "𝕀ᗮ" => LinearMap.BilinForm.orthogonal (killingForm R 𝔻) 𝕀 |
| 40 | + |
| 41 | +lemma killingForm_restrict_range_ad : (killingForm R 𝔻).restrict 𝕀 = killingForm R 𝕀 := by |
| 42 | + rw [← (ad_isIdealMorphism R L).eq, ← LieIdeal.killingForm_eq] |
| 43 | + rfl |
| 44 | + |
| 45 | +variable {R L} |
| 46 | + |
| 47 | +/-- If a derivation `D` is in the Killing orthogonal of the range of the adjoint action, then, for |
| 48 | +any `x : L`, `ad (D x)` is also in this orthogonal. -/ |
| 49 | +lemma ad_mem_orthogonal_of_mem_orthogonal {D : LieDerivation R L L} (hD : D ∈ 𝕀ᗮ) (x : L) : |
| 50 | + ad R L (D x) ∈ 𝕀ᗮ := by |
| 51 | + have : 𝕀ᗮ = (ad R L).idealRange.killingCompl := by |
| 52 | + simp [← (ad_isIdealMorphism R L).eq] |
| 53 | + rw [this] at hD ⊢ |
| 54 | + rw [← lie_der_ad_eq_ad_der] |
| 55 | + exact lie_mem_left _ _ (ad R L).idealRange.killingCompl _ _ hD |
| 56 | + |
| 57 | +lemma ad_mem_ker_killingForm_ad_range_of_mem_orthogonal |
| 58 | + {D : LieDerivation R L L} (hD : D ∈ 𝕀ᗮ) (x : L) : |
| 59 | + ad R L (D x) ∈ (LinearMap.ker (killingForm R 𝕀)).map (LieHom.range (ad R L)).subtype := by |
| 60 | + rw [← killingForm_restrict_range_ad] |
| 61 | + exact LinearMap.BilinForm.inf_orthogonal_self_le_ker_restrict |
| 62 | + (LieModule.traceForm_isSymm R 𝔻 𝔻).isRefl ⟨by simp, ad_mem_orthogonal_of_mem_orthogonal hD x⟩ |
| 63 | + |
| 64 | +variable (R L) |
| 65 | +variable [LieAlgebra.IsKilling R L] |
| 66 | + |
| 67 | +@[simp] lemma ad_apply_eq_zero_iff (x : L) : ad R L x = 0 ↔ x = 0 := by |
| 68 | + refine ⟨fun h ↦ ?_, fun h ↦ by simp [h]⟩ |
| 69 | + rwa [← LieHom.mem_ker, ad_ker_eq_center, LieAlgebra.center_eq_bot_of_semisimple, |
| 70 | + LieSubmodule.mem_bot] at h |
| 71 | + |
| 72 | +instance instIsKilling_range_ad : LieAlgebra.IsKilling R 𝕀 := |
| 73 | + (LieEquiv.ofInjective (ad R L) (injective_ad_of_center_eq_bot <| by simp)).isKilling |
| 74 | + |
| 75 | +/-- The restriction of the Killing form of a finite-dimensional Killing Lie algebra to the range of |
| 76 | +the adjoint action is nondegenerate. -/ |
| 77 | +lemma killingForm_restrict_range_ad_nondegenerate : ((killingForm R 𝔻).restrict 𝕀).Nondegenerate := |
| 78 | + killingForm_restrict_range_ad R L ▸ LieAlgebra.IsKilling.killingForm_nondegenerate R _ |
| 79 | + |
| 80 | +/-- The range of the adjoint action on a finite-dimensional Killing Lie algebra is full. -/ |
| 81 | +@[simp] |
| 82 | +lemma range_ad_eq_top : 𝕀 = ⊤ := by |
| 83 | + rw [← LieSubalgebra.coe_to_submodule_eq_iff] |
| 84 | + apply LinearMap.BilinForm.eq_top_of_restrict_nondegenerate_of_orthogonal_eq_bot |
| 85 | + (LieModule.traceForm_isSymm R 𝔻 𝔻).isRefl (killingForm_restrict_range_ad_nondegenerate R L) |
| 86 | + refine (Submodule.eq_bot_iff _).mpr fun D hD ↦ ext fun x ↦ ?_ |
| 87 | + simpa using ad_mem_ker_killingForm_ad_range_of_mem_orthogonal hD x |
| 88 | + |
| 89 | +variable {R L} in |
| 90 | +/-- Every derivation of a finite-dimensional Killing Lie algebra is an inner derivation. -/ |
| 91 | +lemma exists_eq_ad (D : 𝔻) : ∃ x, ad R L x = D := by |
| 92 | + change D ∈ 𝕀 |
| 93 | + rw [range_ad_eq_top R L] |
| 94 | + exact Submodule.mem_top |
| 95 | + |
| 96 | +end |
0 commit comments