Constructors for Lie Algebras

The construction of a Lie algebra defined by structure constants is identical to that of a general structure constant algebra. Most constructors take two optional parameters: Check and Rep.

By default, the conditions for the algebra to be a Lie algebra are checked. If the user decides to omit this check, by setting the parameter Check to false, and the algebra is not actually Lie then functions in this section will fail or give incorrect answers.

The optional parameter Rep can be used to select the internal representation of the structure constants. The possible values for Rep are "Dense", "Sparse" and "Partial", with the default being "Dense". In the dense format, the n3 structure constants are stored as n2 vectors of length n. This is the best representation if most of the structure constants are non-zero. The sparse format, intended for use when most structure constants are zero, stores the positions and values of the non-zero structure constants. The partial format stores the vectors, but records for efficiency the positions of the non-zero structure constants.

LieAlgebra<R, n | Q : parameters > : Rng, RngIntElt, SeqEnum -> AlgLie
LieAlgebra<M | Q : parameters > : ModTupRng, SeqEnum -> AlgLie
    Check: BoolElt                      Default: true
    Rep: MonStgElt                      Default: "Dense"
This function creates the Lie structure constant algebra L over the free module M = Rn, with standard basis {e1, e2, ..., en}, and structure constants aijk being given by the sequence Q. The sequence Q can be of any of the following three forms. Note that in all cases the actual ordering of the structure constants is the same: the only difference is that their partitioning into blocks varies.
(i)
A sequence of n sequences of n sequences of length n. The j-th element of the i-th sequence is the sequence [ aij1, ..., aijn ], or the element (aij1, ..., aijn) of M, giving the coefficients of the product ei * ej.
(ii)
A sequence of n2 sequences of length n, or n2 elements of M. Here the coefficients of ei * ej are given by position (i - 1)n + j of Q.
(iii)
A sequence of n3 elements of the ring R. The sequence elements are the structure constants themselves, in the order a111, a112, ..., a11n, a121, a122, ..., annn. So aijk lies in position (i - 1)n2 + (j - 1)n + k of Q.
LieAlgebra<R, n | T : parameters > : Rng, RngIntElt, SeqEnum -> AlgLie
    Check: BoolElt                      Default: true
    Rep: MonStgElt                      Default: "Dense"
This function creates the Lie structure constant algebra L with standard basis {e1, e2, ..., en} over the ring R. The sequence T contains quadruples < i, j, k, aijk> giving the non-zero structure constants. All other structure constants are defined to be 0.
LieAlgebra< t | T : parameters > : SeqEnum, SeqEnum -> AlgLie
    Check: BoolElt                      Default: true
    Rep: MonStgElt                      Default: "Dense"
This function creates the Lie structure constant algebra L over the integers, with standard basis {e1, e2, ..., en}. The sequence T contains quadruples < i, j, k, aijk> (where the aijk are integers) giving the non-zero structure constants. All other structure constants are defined to be 0. The argument t is a sequence of length n consisting of nonnegative integers giving the moduli of the basis elements. Thus let ti denote the i-th element of t; then tiei =0. So if ti=0, then kei != 0 for all integers k.
LieAlgebra(A) : AlgAss -> AlgLie, Map
Given an associative structure-constant algebra A, create the Lie algebra L consisting of the elements in A with the induced Lie product (x, y) -> x * y - y * x. As a second value the map identifying the elements of L and A is returned.
LieAlgebra(A) : AlgMat -> AlgLie
Given an associative matrix algebra A, create a structure-constant Lie algebra L isomorphic to A with the induced Lie product (x, y) -> x * y - y * x.
AbelianLieAlgebra(R, n) : Rng, RngIntElt -> AlgLie
    Rep: MonStgElt                      Default: "Sparse"
Create the abelian Lie algebra of dimension n over the ring R.

Example AlgLie_LieAlgebraCons (H107E1)

We construct the Heisenberg Lie algebra, then a Lie algebra from an associative algebra, and finally a Lie algebra over the integers (also called a Lie ring).
> T:= [ <1,2,3,1>, <2,1,3,-1> ];
> LieAlgebra< Rationals(), 3 | T >;
Lie Algebra of dimension 3 with base ring Rational Field
> A:= Algebra( GF(27), GF(3) );
> LieAlgebra(A);
Lie Algebra of dimension 3 with base ring GF(3)
> T:= [ <1,2,2,2>, <2,1,2,2> ];
> t:= [0,4];
> K:= LieAlgebra< t | T : Rep:= "Dense" >; K;
Lie Algebra of dimension 2 with base ring Integer Ring
Column moduli: [0, 4]
> LowerCentralSeries( K );
[
    Lie Algebra of dimension 2 with base ring Integer Ring
    Column moduli: [0, 4],
    Lie Algebra of dimension 1 with base ring Integer Ring
    Column moduli: [2],
    Lie Algebra of dimension 0 with base ring Integer Ring
]
ChangeBasis(L, B) : AlgLie, [AlgLieElt] -> AlgLie
ChangeBasis(L, B) : AlgLie, [ModTupFldElt] -> AlgLie
ChangeBasis(L, B) : AlgLie, Mtrx -> AlgLie
    Rep: MonStgElt                      Default: "Dense"
Create a new Lie structure constant algebra L', isomorphic to L, by recomputing the structure constants with respect to the basis B. The basis B can be specified as a set or sequence of elements of L, a set or sequence of vectors, or a matrix. The second returned value is the isomorphism from L to L'.

As above, the optional parameter Rep can be used to select the internal representation of the structure constants. Note that the default is dense representation, regardless of the representation used by L.

MatrixLieAlgebra(R, n) : Rng, RngIntElt -> AlgMatLie
Given a ring R and an integer n, create the full Lie algebra of matrices of degree d over R.
MatrixLieAlgebra(A) : AlgMat -> AlgMatLie
Given an associative matrix algebra A, create the matrix Lie algebra L consisting of the elements in A with the induced Lie product (x, y) -> x * y - y * x.
Algebra(M) : AlgMatLie -> AlgLie, Map
LieAlgebra(M) : AlgMatLie -> AlgLie, Map
Return a structure-constant Lie algebra isomorphic to the matrix Lie algebra M.

Example AlgLie_MatrixLieAlgebra (H107E2)

We construct the subalgebra of the matrix Lie algebra of 2 x 2 matrices, consisting of upper triangular matrices.
> L:= MatrixLieAlgebra( Rationals(), 2 );
> a:= L!Matrix( [[1,0],[0,0]] );
> b:= L!Matrix( [[0,0],[1,0]] );
> c:= L!Matrix( [[0,0],[0,1]] );
> K:= sub< L | [ a, b, c ] >;
> Dimension(K);
3
> IsSolvable(K);
true
> IsNilpotent(K);
false
V2.28, 13 July 2023