Operations on Subalgebras and Ideals

Contents

DirectSum(L, M) : AlgLie, AlgLie -> AlgLie
DirectSum(L, M) : AlgMatLie, AlgMatLie -> AlgMatLie
Given Lie algebras L and M, this intrinsic constructs a Lie algebra of dimension n + m, where n and m are the dimensions of L and M, respectively. The basis of the new algebra is the concatenation of the bases of L and M and the products a * b where a ∈L and b ∈M are defined to be zero.
IndecomposableSummands(L) : AlgLie -> [ AlgLie ]
IndecomposableSummands(L) : AlgMatLie -> [ AlgMatLie ]
DirectSumDecomposition(L) : AlgLie -> [ AlgLie ]
DirectSumDecomposition(L) : AlgMatLie -> [ AlgMatLie ]
Given a Lie algebra L, the function returns the direct sum decomposition of L as a sequence of ideals of L whose sum is L and each of which cannot be further decomposed into a direct sum of ideals.

The algorithms used for this function are described in [dG00], Para 4.12 (semisimple case), Para 1.15 (general case).

Example AlgLie_DirectSumDecomposition (H107E37)

We compute the direct sum decomposition of the simple Lie algebra of type D2 over the rational field.
> L := LieAlgebra("D2", RationalField());
> L;
Lie Algebra of dimension 6 with base ring Rational Field
> D := DirectSumDecomposition(L);
> D;
[
    Lie Algebra of dimension 3 with base ring Rational Field,
    Lie Algebra of dimension 3 with base ring Rational Field
]
> Morphism(D[1], L);
[ 0  1  0  0  0  0]
[ 0  0  1 -1  0  0]
[ 0  0  0  0  1  0]
> Morphism(D[2], L);
[1 0 0 0 0 0]
[0 0 1 1 0 0]
[0 0 0 0 0 1]

Standard Ideals and Subalgebras

Centre(L) : AlgLie -> AlgLie
Centre(L) : AlgMatLie -> AlgMatLie
Center(L) : AlgLie -> AlgLie
Center(L) : AlgMatLie -> AlgMatLie
Given a Lie algebra L, returns the centreof L.
Centraliser(L, K) : AlgLie, AlgLie -> AlgLie, Map
Centraliser(L, K) : AlgMatLie, AlgMatLie -> AlgMatLie, Map
Centralizer(L, K) : AlgLie, AlgLie -> AlgLie, Map
Centralizer(L, K) : AlgMatLie, AlgMatLie -> AlgMatLie, Map
Given a Lie algebra L and a subalgebra K of L, returns the centraliserof K in L, and its injection into L.
Centraliser(L, x) : AlgLie, AlgLieElt -> AlgLie, Map
Centraliser(L, x) : AlgMatLie, AlgMatLieElt -> AlgMatLie, Map
Centralizer(L, x) : AlgLie, AlgLieElt -> AlgLie, Map
Centralizer(L, x) : AlgMatLie, AlgMatLieElt -> AlgMatLie, Map
Given a Lie algebra L and an element x of L, returns the centraliserof x in L, and its injection into L.
Normaliser(L, K) : AlgLie, AlgLie -> AlgLie
Normaliser(L, K) : AlgMatLie, AlgMatLie -> AlgMatLie
Normalizer(L, K) : AlgLie, AlgLie -> AlgLie
Normalizer(L, K) : AlgMatLie, AlgMatLie -> AlgMatLie
Given a Lie algebra L and a subalgebra K of L, returns the normaliserof K in L, and its injection into L.
SolubleRadical(L) : AlgLie -> AlgLie
SolubleRadical(L) : AlgMatLie -> AlgMatLie
SolvableRadical(L) : AlgLie -> AlgLie
SolvableRadical(L) : AlgMatLie -> AlgMatLie
Given a Lie algebra L, returns the soluble radicalof L.

We refer to [dG00], Para 2.6 for the algorithm used to implement this function.

Nilradical(L) : AlgLie -> AlgLie
Nilradical(L) : AlgMatLie -> AlgMatLie
Given a Lie algebra L, returns the nilradicalof L.

The algorithm makes use of Cartan subalgebras. We refer to [dG00], pp. 84, 85 for its description.

Example AlgLie_Operations (H107E38)

We demonstrate the functions for performing basic operations with Lie algebras such as centre, normalizer etc.
> L := LieAlgebra("D4", RationalField());
> L;
Lie Algebra of dimension 28 with base ring Rational Field
> Centre(L);
Lie Algebra of dimension 0 with base ring Rational Field
> K := sub< L | [L.1, L.2, L.3] >;
> Centralizer(L, K);
Lie Algebra of dimension 10 with base ring Rational Field
> Normalizer(L, K);
Lie Algebra of dimension 19 with base ring Rational Field
> M := Centralizer(L, K);
> S := SolvableRadical(M);
> S;
Lie Algebra of dimension 10 with base ring Rational Field
> Morphism(S, L);
[1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]
[0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]
[0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]
[0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]
[0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]
[0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]
[0 0 0 0 0 0 1 0 0 0 0 -1 0 0 0 -1 0 0 -1 0 0 0 0 0 0 0 0 0]
[0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]
[0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]
[0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0]
> Nilradical(M);
Lie Algebra of dimension 9 with base ring Rational Field

Cartan and Toral Subalgebras

CartanSubalgebra(L) : AlgLie -> AlgLie
CartanSubalgebra(L) : AlgMatLie -> AlgMatLie
Given a Lie algebra L, this function returns a Cartan subalgebraof L. The algorithm works for Lie algebras L defined over a field F such that |F| > dim L and for restricted Lie algebras of characteristic p. If the Lie algebra does not fit into one of these classes then the correctness of the output is not guaranteed.

The algorithm used is described in [dG00], Para 3.2.

IsCartanSubalgebra(L, H) : AlgLie, AlgLie -> BoolElt
IsCartanSubalgebra(L, H) : AlgMatLie, AlgMatLie -> BoolElt
The intrinsic returns true if H is a Cartan subalgebra of L, i.e., whether H is nilpotent and NL(H) = 0.

Example AlgLie_CartanSubalgebra (H107E39)

We compute a Cartan subalgebra of the simple Lie algebra of type A4 over the rational field.
> L := LieAlgebra("F4", RationalField());
> L;
Lie Algebra of dimension 52 with base ring Rational Field
> H := CartanSubalgebra(L);
Lie Algebra of dimension 4 with base ring Rational Field
> H*H;
Lie Algebra of dimension 0 with base ring Rational Field
> Normalizer(L, H);
Lie Algebra of dimension 4 with base ring Rational Field
SplittingCartanSubalgebra(L) : AlgLie -> AlgLie
SplitMaximalToralSubalgebra(L) : AlgLie -> AlgLie
Given a Lie algebra L over a field k of characteristic at least 5, a split Cartan subalgebra (equivalently, a split maximal toral subalgebra) is computed for L.

The algorithm used is discussed in [CM09], Sections 5 and 6. This algorithm is proved to work ([CM09, Theorem 6.7]) if L is the Lie algebra of a k-split connected reductive group. In other cases, should the algorithm terminate, the output is guaranteed to be correct.

IsSplittingCartanSubalgebra(L, H) : AlgLie, AlgLie -> BoolElt
IsSplittingCartanSubalgebra(L, H) : AlgMatLie, AlgMatLie -> BoolElt
Determine whether H is a splitting Cartan subalgebra of L, i.e., whether H is a Cartan subalgebra and the adjoint action of H on L splits completely over the coefficient ring of L.
SplitToralSubalgebra(L) : AlgLie -> AlgLie
    TryMaximal: .                       Default: true
The intrinsic attempts to compute a split toral subalgebra of a Lie algebra L defined over a finite field k. This procedure uses a heuristic algorithm, described in [Roo10, Chapter 3], that works in many cases even if the characteristic of k is small. Moreover, it attempts to compute a split toral subalgebra of maximal size.

If the function returns without error, the resulting subalgebra H is a split toral subalgebra that does not lie inside a split toral subalgebra H' of larger dimension. It is, however, not guaranteed that H is of maximal dimension among all split toral subalgebras.

The optional parameter TryMaximal may be used as follows. If set to true (the default) the reductive rank r of L is computed first, and the algorithm attempts to compute a split toral subalgebra of dimension r. If set to false, the first split toral subalgebra found is returned. Finally, if TryMaximal is set to an integer n ≥1, the algorithm attempts to find a split toral subalgebra of dimension n. In the latter case, if no split toral subalgebra of dimension n can be found, the biggest that has been found is returned; if on the other hand a split toral subalgebra of dimension larger than n is encountered, that is returned.

IsSplitToralSubalgebra(L, H) : AlgLie, AlgLie -> BoolElt
Given a restrictable Lie algebra L over a finite field, the function returns true is H is a split toral subalgebra of L, i.e., whether [H, H] = 0, all elements of H are semisimple, and the basis elements are invariant under the q-map associated to L.

Example AlgLie_SplitToral (H107E40)

We construct a twisted Lie algebra L of type ()3D4 over the field k = GF(33) and verify that the subalgebra H returned by SplitToralSubalgebra is indeed a split toral subalgebra. Then, we test whether C = CL(H) is a (split) toral subalgebra of L.
> k := GF(3, 3);
> L, phi := TwistedLieAlgebra(TwistedRootDatum("D4" : Twist := 3), k);
> H := SplitToralSubalgebra(L);
> H;
Lie Algebra of dimension 2 with base ring GF(3^3)
> IsSplitToralSubalgebra(L, H);
true
> C := Centraliser(L,H); C;
Lie Algebra of dimension 4 with base ring GF(3^3)
> IsToralSubalgebra(L,C), IsSplitToralSubalgebra(L, C);
true false
Now we let K be the big field, GF(39), and test if C tensor K is a split toral subalgebra of L tensor K.
> LK := Codomain(phi);
> LK;
Lie Algebra of dimension 28 with base ring GF(3^9)
> CK := sub<LK | [ phi(b) : b in Basis(C) ]>;
> IsSplitToralSubalgebra(LK, CK);
true

Standard Series

CompositionSeries(L) : AlgLie -> [ Alg ], [ AlgLie ], AlgMatElt
A composition series is computed for the (structure constant) Lie algebra L. The function returns three values:
(a)
a sequence containing the composition series as an ascending chain of subalgebras such that the successive quotients are irreducible L-modules;
(b)
a sequence containing the composition factors as structure constant algebras;
(c)
a transformation matrix to a basis compatible with the composition series, that is, the first basis elements form a basis of the first term of the composition series, the next extend these to a basis for the second term etc.
CompositionFactors(L) : AlgLie -> [ AlgLie ]
Compute the composition factors of a composition series for the Lie algebra L. This function returns the same as the second return value of CompositionSeries above, but will often be very much quicker.
MinimalIdeals(L : parameters) : AlgLie -> [ AlgLie ], BoolElt
    Limit: RngIntElt                    Default: ∞
Returns the minimal left/right/two-sided ideals of the (structure constant) Lie algebra L (in non-decreasing size). If Limit is set to n, at most n ideals are calculated and the second return value indicates whether all of the ideals were computed.
MaximalIdeals(L : parameters) : AlgLie -> [ AlgLie ], BoolElt
    Limit: RngIntElt                    Default: ∞
Returns the maximal left/right/two-sided ideals of the (structure constant) Lie algebra L (in non-decreasing size). If Limit is set to n, at most n ideals are calculated and the second return value indicates whether all of the ideals were computed.
DerivedSeries(L) : AlgLie -> [ AlgLie ]
DerivedSeries(L) : AlgMatLie -> [ AlgMatLie ]
Given a Lie algebra L, this function returns a sequence of ideals of L that form its derived series.
LowerCentralSeries(L) : AlgLie -> [ AlgLie ]
LowerCentralSeries(L) : AlgMatLie -> [ AlgMatLie ]
Given a Lie algebra L, this function returns a sequence of ideals of L that form its lower central series.
UpperCentralSeries(L) : AlgLie -> [ AlgLie ]
UpperCentralSeries(L) : AlgMatLie -> [ AlgMatLie ]
Given a Lie algebra L, this function returns a sequence of ideals of L that form the upper central seriesof L. The function repeatedly uses the algorithm for computing centres while keeping track of the pre-images of the ideals factored out.

Example AlgLie_Series (H107E41)

We compute each of the type of series of a particular subalgebra of the simple Lie algebra of type F4 over the rational field.
> L:=LieAlgebra("F4", RationalField());
> L;
Lie Algebra of dimension 52 with base ring Rational Field
> K:=sub< L | [L.1, L.12, L.23, L.34, L.45] >;
> DerivedSeries(K);
[
    Lie Algebra of dimension 20 with base ring Rational Field,
    Lie Algebra of dimension 16 with base ring Rational Field,
    Lie Algebra of dimension 7 with base ring Rational Field,
    Lie Algebra of dimension 0 with base ring Rational Field
]
> LowerCentralSeries(K);
[
    Lie Algebra of dimension 20 with base ring Rational Field,
    Lie Algebra of dimension 16 with base ring Rational Field,
    Lie Algebra of dimension 12 with base ring Rational Field,
    Lie Algebra of dimension 8 with base ring Rational Field,
    Lie Algebra of dimension 5 with base ring Rational Field,
    Lie Algebra of dimension 2 with base ring Rational Field,
    Lie Algebra of dimension 1 with base ring Rational Field,
    Lie Algebra of dimension 0 with base ring Rational Field
]
> UpperCentralSeries(K);
[
    Lie Algebra of dimension 2 with base ring Rational Field,
    Lie Algebra of dimension 3 with base ring Rational Field,
    Lie Algebra of dimension 5 with base ring Rational Field,
    Lie Algebra of dimension 8 with base ring Rational Field,
    Lie Algebra of dimension 12 with base ring Rational Field,
    Lie Algebra of dimension 16 with base ring Rational Field,
    Lie Algebra of dimension 20 with base ring Rational Field
]

The Lie Algebra of Derivations

LieAlgebraOfDerivations(L) : AlgLie -> AlgLie, Rec
Given a Lie algebra L, this function constructs its Lie algebra of derivations Der(L). As second return value, a record containing maps from L to Der(L) and vice versa, and from Der(L) to the matrix Lie algebra acting on L is returned.

Example AlgLie_LieAlgebraOfDerivations (H107E42)

We consider the Lie algebra of derivations of D4 in characteristic 2 or, more precisely, the 26-dimensional simple constituent L that exists in all varieties of D4 in characteristic 2.
> SetSeed(1);
> R := RootDatum("D4");
> D4 := LieAlgebra(R, GF(2));
> pos,neg,cart := StandardBasis(D4);
> L := D4*D4; L;
Lie Algebra of dimension 26 with base ring GF(2)
> IsSimple(L);
true
> DerL, maps := LieAlgebraOfDerivations(L);
> DerL;
Lie Algebra of dimension 52 with base ring GF(2)
> SemisimpleType(DerL);
F4
So the Lie algebra of derivations is of type F4. Let us consider one of the maps that was returned as second value.
> maps;
rec<recformat<mp_DerL_to_L: Map, mp_L_to_DerL: Map, mp_DerL_to_mats:
Map, mp_mats_to_DerL: Map> |
    mp_DerL_to_L := Mapping from: AlgLie: DerL to AlgLie: L given by a
        rule [no inverse],
    mp_L_to_DerL := Mapping from: AlgLie: L to AlgLie: DerL given by a
        rule [no inverse],
    mp_DerL_to_mats := Mapping from: AlgLie: DerL to Matrix Lie
        Algebra given by a rule [no inverse],
    mp_mats_to_DerL := Mapping from: Matrix Lie Algebra to AlgLie:
        DerL given by a rule [no inverse]>
> adL := AdjointRepresentation(L);
> f := maps`mp_DerL_to_mats;
> [ f(b) in Image(adL) : b in Basis(DerL) ];
[ false, true, true, true, true, true, true, true, false, false, true,
false, true, false, false, false, true, false, true, true, true,
false, false, false, true, true, false, false, false, true, true,
false, false, false, true, true, false, false, true, false, true,
false, true, false, false, false, true, false, true, false, false,
false ]
So, unsurprisingly, some of the basis elements of Der(L) are actually elements from L, but others are not. We consider one more of these maps and investigate how L lies in Der(L).
> g := maps`mp_L_to_DerL;
> I := ideal<DerL | [ g(b) : b in Basis(L) ]>; I;
Lie Algebra of dimension 26 with base ring GF(2)
> pos2, neg2, cart2 := ChevalleyBasis(DerL, SplitToralSubalgebra(DerL));
> [i : i in [1..#pos2] | pos2[i] in I ];
[ 3, 4, 6, 7, 8, 10, 12, 13, 15, 17, 19, 21 ]
> RF4 := RootDatum("F4");
> [ i : i in [1..NumPosRoots(RF4)] | IsShortRoot(RF4, i) ];
[ 3, 4, 6, 7, 8, 10, 12, 13, 15, 17, 19, 21 ]
So we conclude that the original Lie algebra L of type D4 exists as the short roots of the Lie algebra of derivations Der(L) of type F4.
V2.28, 13 July 2023