Operations on Subalgebras and Ideals#
- 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 \in L\) and \(b \in 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 [de Graaf, 2000], §4.12 (semisimple case), §1.15 (general case).
- Example: Direct Sum Decomposition (ex-45b01f)#
We compute the direct sum decomposition of the simple Lie algebra of type \(D_2\) 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 centre of \(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 centraliser of \(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 centraliser of \(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 normaliser of \(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 radical of \(L\).
We refer to [de Graaf, 2000], §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 nilradical of \(L\).
The algorithm makes use of Cartan subalgebras. We refer to [de Graaf, 2000], pp. 84, 85 for its description.
- Example: Operations (ex-d2d791)#
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 subalgebra of \(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 [de Graaf, 2000], §3.2.
- IsCartanSubalgebra(L, H): AlgLie, AlgLie -> BoolElt#
- IsCartanSubalgebra(L, H): AlgMatLie, AlgMatLie -> BoolElt#
The intrinsic returns
trueif \(H\) is a Cartan subalgebra of \(L\), i.e., whether \(H\) is nilpotent and \(N_L(H) = 0\).
- Example: Cartan Subalgebra (ex-675c63)#
We compute a Cartan subalgebra of the simple Lie algebra of type \(A_4\) 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 [Cohen and Murray, 2009], Sections 5 and 6. This algorithm is proved to work ([Cohen and Murray, 2009, 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 [Roozemond, 2010, 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
TryMaximalmay be used as follows. If set totrue(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 tofalse, the first split toral subalgebra found is returned. Finally, ifTryMaximalis set to an integer \(n \geq 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
trueis \(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: Split Toral (ex-3f1c22)#
We construct a twisted Lie algebra \(L\) of type \({}^3\)D\(_4\) over the field \(k =\)GF\((3^3)\) and verify that the subalgebra \(H\) returned by
SplitToralSubalgebrais indeed a split toral subalgebra. Then, we test whether \(C = C_L(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\((3^9)\), and test if \(C \otimes K\) is a split toral subalgebra of \(L \otimes 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
CompositionSeriesabove, but will often be very much quicker.
- MinimalIdeals(L : parameters): AlgLie -> [ AlgLie ], BoolElt#
Limit: RngIntElt Default: Infinity()
Returns the minimal left/right/two-sided ideals of the (structure constant) Lie algebra \(L\) (in non-decreasing size). If
Limitis 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: Infinity()
Returns the maximal left/right/two-sided ideals of the (structure constant) Lie algebra \(L\) (in non-decreasing size). If
Limitis 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 series of \(L\). The function repeatedly uses the algorithm for computing centres while keeping track of the pre-images of the ideals factored out.
- Example: Series (ex-9cb576)#
We compute each of the type of series of a particular subalgebra of the simple Lie algebra of type \(F_4\) 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: Lie Algebra Of Derivations (ex-d37e8c)#
We consider the Lie algebra of derivations of D\(_4\) in characteristic \(2\) or, more precisely, the \(26\)-dimensional simple constituent \(L\) that exists in all varieties of D\(_4\) 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 F\(_4\). 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 D\(_4\) exists as the short roots of the Lie algebra of derivations Der\((L)\) of type F\(_4\).