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.
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).
> 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]
Given a Lie algebra L, returns the centreof L.
Given a Lie algebra L and a subalgebra K of L, returns the centraliserof K in L, and its injection into L.
Given a Lie algebra L and an element x of L, returns the centraliserof x in L, and its injection into L.
Given a Lie algebra L and a subalgebra K of L, returns the normaliserof K in L, and its injection into L.
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.
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.
> 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
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.
The intrinsic returns true if H is a Cartan subalgebra of L, i.e., whether H is nilpotent and NL(H) = 0.
> 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
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.
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.
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.
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.
> 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 falseNow 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
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.
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.
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.
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.
Given a Lie algebra L, this function returns a sequence of ideals of L that form its derived series.
Given a Lie algebra L, this function returns a sequence of ideals of L that form its lower central series.
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.
> 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 ]
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.
> 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); F4So 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.