Skip to content

Commit 9c0bf76

Browse files
committed
feat(Algebra/Lie): Define Lie algebra extensions (#20206)
This PR defines extensions of Lie algebras. We follow the pattern used in defining extensions of groups.
1 parent c083085 commit 9c0bf76

File tree

2 files changed

+71
-0
lines changed

2 files changed

+71
-0
lines changed

Mathlib.lean

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -509,6 +509,7 @@ import Mathlib.Algebra.Lie.Derivation.Killing
509509
import Mathlib.Algebra.Lie.DirectSum
510510
import Mathlib.Algebra.Lie.Engel
511511
import Mathlib.Algebra.Lie.EngelSubalgebra
512+
import Mathlib.Algebra.Lie.Extension
512513
import Mathlib.Algebra.Lie.Free
513514
import Mathlib.Algebra.Lie.IdealOperations
514515
import Mathlib.Algebra.Lie.InvariantForm

Mathlib/Algebra/Lie/Extension.lean

Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
/-
2+
Copyright (c) 2024 Scott Carnahan. All rights reserved.
3+
Released under Apache 2.0 license as described in the file LICENSE.
4+
Authors: Scott Carnahan
5+
-/
6+
import Mathlib.Algebra.Lie.Submodule
7+
8+
/-!
9+
# Extensions of Lie algebras
10+
This file defines extensions of Lie algebras, given by short exact sequences of Lie algebra
11+
homomorphisms. They are implemented in two ways: `IsExtension` is a `Prop`-valued class taking two
12+
homomorphisms as parameters, and `Extension` is a structure that includes the middle Lie algebra.
13+
14+
## Main definitions
15+
* `LieAlgebra.IsExtension`: A `Prop`-valued class characterizing an extension of Lie algebras.
16+
* `LieAlgebra.Extension`: A bundled structure giving an extension of Lie algebras.
17+
* `LieAlgebra.IsExtension.extension`: A function that builds the bundled structure from the class.
18+
19+
## TODO
20+
* `IsCentral` - central extensions
21+
* `Equiv` - equivalence of extensions
22+
* `ofTwoCocycle` - construction of extensions from 2-cocycles
23+
24+
## References
25+
* [N. Bourbaki, *Lie Groups and Lie Algebras, Chapters 1--3*](bourbaki1975)
26+
27+
-/
28+
29+
namespace LieAlgebra
30+
31+
variable {R N L M : Type*}
32+
33+
variable [CommRing R] [LieRing L] [LieAlgebra R L] [LieRing N] [LieAlgebra R N] [LieRing M]
34+
[LieAlgebra R M]
35+
36+
/-- A sequence of two Lie algebra homomorphisms is an extension if it is short exact. -/
37+
class IsExtension (i : N →ₗ⁅R⁆ L) (p : L →ₗ⁅R⁆ M) : Prop where
38+
ker_eq_bot : i.ker = ⊥
39+
range_eq_top : p.range = ⊤
40+
exact : i.range = p.ker
41+
42+
variable (R N M) in
43+
/-- The type of all Lie extensions of `M` by `N`. That is, short exact sequences of `R`-Lie algebra
44+
homomorphisms `0 → N → L → M → 0` where `R`, `M`, and `N` are fixed. -/
45+
structure Extension where
46+
/-- The middle object in the sequence. -/
47+
L : Type*
48+
/-- `L` is a Lie ring. -/
49+
instLieRing : LieRing L
50+
/-- `L` is a Lie algebra over `R`. -/
51+
instLieAlgebra : LieAlgebra R L
52+
/-- The inclusion homomorphism `N →ₗ⁅R⁆ L` -/
53+
incl : N →ₗ⁅R⁆ L
54+
/-- The projection homomorphism `L →ₗ⁅R⁆ M` -/
55+
proj : L →ₗ⁅R⁆ M
56+
IsExtension : IsExtension incl proj
57+
58+
/-- The bundled `LieAlgebra.Extension` corresponding to `LieAlgebra.IsExtension` -/
59+
@[simps] def IsExtension.extension {i : N →ₗ⁅R⁆ L} {p : L →ₗ⁅R⁆ M} (h : IsExtension i p) :
60+
Extension R N M :=
61+
⟨L, _, _, i, p, h⟩
62+
63+
/-- A surjective Lie algebra homomorphism yields an extension. -/
64+
theorem isExtension_of_surjective (f : L →ₗ⁅R⁆ M) (hf : Function.Surjective f) :
65+
IsExtension f.ker.incl f where
66+
ker_eq_bot := LieIdeal.ker_incl f.ker
67+
range_eq_top := (LieHom.range_eq_top f).mpr hf
68+
exact := LieIdeal.incl_range f.ker
69+
70+
end LieAlgebra

0 commit comments

Comments
 (0)