The families of Lie algebras included in the database

Here we describe the functions that access the classifications of Lie algebras that are stored in the package. A function below either returns a single Lie algebra, depending on a list of parameters, or a collection. It is important to note that two calls of the function NonSolvableLieAlgebra, SolvableLieAlgebra, or NilpotentLieAlgebra may return isomorphic Lie algebras even if the parameters are different (see the description of the parameter list for each of the functions). If, however, the output of a function is a collection, then the members of this collection are pairwise non-isomorphic.

The Lie algebras in the database are stored in the form of structure constant tables. Usually the size of a family of Lie algebras in the database is small enough so that the entries of the structure constant tables can be stored without any compression. However the number of nilpotent Lie algebras with dimension at least 7 is very large, and so the structure constant tables are compressed as follows. If L is such a Lie algebra, then we fix a basis B=\{b_1,\ldots,b_n\} and consider the coefficients of the products [b_i,b_j] where j>i. We concatenate these coefficient sequences and consider the long sequence so obtained as a number written in base p. Then we convert this number to base 62 and write it down using the digits 0,\ldots,9,a\ldots,z,A\ldots,Z. Then this string is stored in the files gap/nilpotent/nilpotent&uscore;data*.gi. See the function ReadStringToNilpotentLieAlgebra in the file gap/nilpotent/nilpotent.gi for the precise details.

Non-solvable Lie algebras

The package contains the list of non-solvable Lie algebras over finite fields up to dimension 6. The classification follows the one in .

F is an arbitrary finite field, pars is a list of parameters with length between 1 and 4. The output is a non-solvable Lie algebra corresponding to the parameters, which is displayed as a string that describes the algebra following . The first entry of pars is the dimension of the algebra, and the possible additional entries of pars describe the algebra if there are more algebras with dimension pars[1].

The possible values of pars are as follows.

Dimension 1 and 2
There are no non-solvable Lie algebras with dimension less than 3, and so if pars[1] is less than 3 then NonSolvableLieAlgebra returns an error message.

Dimension 3
There is just one non-solvable Lie algebra over an arbitrary finite field F (see Section ) which is returned by NonSolvableLieAlgebra( F, [3] ).
Dimension 4
If F has odd characteristic then there is a unique non-solvable Lie algebra with dimension 4 over F and this algebra is returned by NonSolvableLieAlgebra( F, [4] ). If F has characteristic 2, then there are two distinct Lie algebras and they are returned by NonSolvableLieAlgebra( F, [4,i] ) for i=1, 2. See Section for a description of the algebras.
Dimension 5

If F has characteristic 2 then there are 5 isomorphism classes of non-solvable Lie algebras over F and they are described in Section . The possible values of pars are as follows. [5,1]: the Lie algebra in (1). [5,2,i]: i=0, 1; the Lie algebras in (2). [5,3,i]: i=0, 1; the Lie algebras in (3).

If the characteristic of F is odd, then the list of Lie algebras is as follows (see Section ). [5,1,i]: i=1, 0; the Lie algebras that occur in (1). [5,2]: the Lie algebra in (2). [5,3]: this algebra only exists if the characteristic of F is 3 or 5. In the former case the algebra is the one in (3), while in the latter it is in (4).
Dimension 6
The 6-dimensional non-solvable Lie algebras are described in Section . If F has characteristic 2, then the possible values of pars is as follows. [6,1]: the Lie algebra in (1). [6,2]: the Lie algebra in (2). [6,3,i]: i=0, 1; the two Lie algebras (3). [6,4,x]: x=0, 1, 2, 3 or x is a field element. In this case AllNonSolvableLieAlgebras returns one of the Lie algebras in (4). If x=0, 1, 2, 3 then the Lie algebra corresponding to the (x+1)-th matrix of (4) is returned. If x is a field element, then a Lie algebra is returned which corresponds to the 5th matrix in (4). [6,5]: the Lie algebra in (5). [6,6,1], [6,6,2], [6,6,3,x], [6,6,4,x]: x is a field element; the Lie algebras in (6). The third and fourth entries of pars determine the isomorphism type of the radical as a solvable Lie algebra. More precisely, if the third argument pars[3] is 1 or 2 then the radical is isomorphic to SolvableLieAlgebra( F,[3,pars[3]] ). If the third argument pars[3] is 3 or 4 then the radical is isomorphic to SolvableLieAlgebra( F,[3,pars[3],pars[4]] ); see . [6,7]: the Lie algebra in (7). [6,8]: the Lie algebra in (8).

If the characteristic of F is odd, then the possible values of pars are the following (see Sections , , and ). [6,1]: the Lie algebra in (1). [6,2]: the Lie algebra in (2). [6,3,1], [6,3,2], [6,3,3,x], [6,3,4,x]: x is a field element; the Lie algebras in (3). The third and fourth entries of pars determine the isomorphism type of the radical as a solvable Lie algebra. More precisely, if the third argument pars[3] is 1 or 2 then the radical is isomorphic to SolvableLieAlgebra( F,[3,pars[3]] ). If the third argument pars[3] is 3 or 4 then the radical is isomorphic to SolvableLieAlgebra( F,[3,pars[3],pars[4]] ); see . [6,4]: the Lie algebra in (4). [6,5]: the Lie algebra in (5). [6,6]: the Lie algebra in (6). [6,7]: the Lie algebra in (7).

If the characteristic is 3 or 5 then there are additional families. In characteristic 3, these families are as follows. [6,8,x]: x is a field element; returns one of the Lie algebras in (1). [6,9]: the Lie algebra in (2). [6,10]: the Lie algebra in (3). [6,11,i]: i=0, 1; one of the two Lie algebras in (4). [6,12]: the first Lie algebra in (5). [6,13]: the second Lie algebra (5).

If the characteristic is 5, then the additional Lie algebras are the following. [6,8]: the Lie algebra in (1). [6,9]: the Lie algebra in (2).
Here F is an arbitrary finite field, and dim is at most 6. A collection is returned whose members form a complete and irredundant list of representatives of the isomorphism types of the non-solvable Lie algebras over F with dimension dim. In order to obtain the algebras contained in the collection, one can use the functions AsList, Enumerator, Iterator, as illustrated by the following example. gap> L := AllNonSolvableLieAlgebras( GF(4), 4 ); <Collection of nonsolvable Lie algebras with dimension 4 over GF(2^2)> gap> e := Enumerator( L ); <enumerator> gap> for i in e do Print( Dimension( LieSolvableRadical( i )), "\n" ); od; 0 1 gap> AsList( L ); [ W(1;2), W(1;2)^{(1)}+GF(4) ] gap> Dimension( LieCenter( last[2] )); 1 As the output of AllNonSolvableLieAlgebras is a collection, the user can efficiently access the classification of d-dimensional non-solvable Lie algebras over a given field, even if the classification contains a large number of algebras. For instance, there are 95367431640638 non-solvable Lie algebras over GF(5^{20}). Clearly one cannot expect to be able to handle a list containing all these algebras; it is, however, possible to work with the collection of these Lie algebras, as follows. gap> L := AllNonSolvableLieAlgebras( GF(5^20), 6 ); <Collection of nonsolvable Lie algebras with dimension 6 over GF(5^20)> gap> e := Enumerator( L ); <enumerator> gap> Length( last ); 95367431640638 gap> Dimension( LieDerivedSubalgebra( e[462468528345] )); 5

We note that we could not enumerate the non-solvable Lie algebras of dimension 6 over finite fields of characteristic 3, and so the function Enumerator cannot be used in that context. You can, however, use the functions Iterator and AsList as follows. gap> L := AllNonSolvableLieAlgebras( GF(3), 6 ); <Collection of nonsolvable Lie algebras with dimension 6 over GF(3)> gap> e := Iterator( L ); <iterator> gap> dims := [];; gap> for i in e do Add( dims, Dimension( LieSolvableRadical( i ))); od; gap> dims; [ 0, 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3 ] gap> AsList( L ); [ sl(2,3)+sl(2,3), sl(2,GF(9)), sl(2,3)+solv([ 1 ]), sl(2,3)+solv([ 2 ]), sl(2,3)+solv([ 3, 0*Z(3) ]), sl(2,3)+solv([ 3, Z(3)^0 ]), sl(2,3)+solv([ 3, Z(3) ]), sl(2,3)+solv([ 4, 0*Z(3) ]), sl(2,3)+solv([ 4, Z(3) ]), sl(2,3)+solv([ 4, Z(3)^0 ]), sl(2,3):(V(1)+V(0)), sl(2,3):V(2), sl(2,3):H, sl(2,3):<x,y,z|[x,y]=y,[x,z]=z>, sl(2,3):V(2,0*Z(3)), sl(2,3):V(2,Z(3)), W(1;1):O(1;1), W(1;1):O(1;1)*, sl(2,3).H(0), sl(2,3).H(1), sl(2,3).(GF(3)+GF(3)+GF(3))(1), sl(2,3).(GF(3)+GF(3)+GF(3))(2) ]

Here F is a finite field, and dim is either an integer not greater than 6, or, if F=GF(2), then dim is not greater than 9. The output is a list of simple Lie algebras over F of dimension dim. If dim is at most 6, then the classification by Strade is used. If F=GF(2) and dim is between 7 and 9, then the Lie algebras in are returned (see Section ). The algebras in the list are pairwise non-isomorphic. Note that the output of this function is a list and not a collection, and the package does not contain a function called SimpleLieAlgebra.
Solvable and nilpotent Lie algebras

The package contains the classification of solvable Lie algebras of dimensions 2,3, and 4 (taken from ), and the classification of nilpotent Lie algebras of dimensions 5 and 6 (from ). The classification of nilpotent Lie algebras of dimension 6 is only complete for base fields of characteristic not 2. The classifications are complemented by a function for identifying a given Lie algebra as a member of the list. This function also returns an explicit isomorphism.

In Section the list is given of the multiplication tables of the solvable and nilpotent Lie algebras, corresponding to the functions in this section.

Here F is an arbitrary field, pars is a list of parameters with length between 2 and 4. The first entry of pars is the dimension of the algebra, which has to be 2, 3, or 4. If the dimension is 3, or 4, then the second entry of pars is the number of the Lie algebra with which it appears in the list of . If the dimension is 2, then there are only two (isomorphism classes of) solvable Lie algebras. In this case, if the second entry is 1, then the abelian Lie algebra is returned, if it is 2, then the unique non-abelian solvable Lie algebra of dimension 2 is returned. A Lie algebra in the list of can have one or two parameters. In that case the list pars also has to contain the parameters. gap> SolvableLieAlgebra( Rationals, [4,6,1,2] ); <Lie algebra of dimension 4 over Rationals>
Here F is an arbitrary field, pars is a list of parameters with length between 2 and 3. The first entry of pars is the dimension of the algebra, which has to be 5 or 6. The second entry of pars is the number of the Lie algebra with which it appears in the list of . A Lie algebra in the list of can have one parameter. In that case the list pars also has to contain the parameter. gap> NilpotentLieAlgebra( GF(3^7), [ 6, 24, Z(3^7)^101 ] ); <Lie algebra of dimension 6 over GF(3^7)>
Here F is an arbitrary finite field, and dim is at most 4. A collection of all solvable Lie algebras over F of dimension dim is returned. The output does not contain isomorphic Lie algebras. The order in which the Lie algebras appear in the list is always the same. It is possible to construct an enumerator from the output collection for all of the valid choices of the parameters. See AllNonSolvableLieAlgebra for a more detailed description of usage.

Here F is a finite field, and dim not greater than 9. Further, if dim=9 or dim=8, then F must be GF(2); if dim=7 then F must be one of GF(2), GF(3), GF(5); if dim=6 then either F must be GF(2) or the size of F must be odd; and if dim<6 then F can be an arbitrary finite field. A collection of all nilpotent Lie algebras over F of dimension dim is returned. If dim is not greater than 5 or dim=6 and the characteristic of F is odd, then the collection of nilpotent Lie algebras is determined by , otherwise the classification can be found in . The output does not contain isomorphic Lie algebras. The order in which the Lie algebras appear in the collection is always the same. It is possible to construct an enumerator from the output collection for all of the valid choices of the parameters. See AllNonSolvableLieAlgebra for a more detailed description of usage.
Here F is a finite field, and dim is an integer. The restrictions for F and dim are the same as in the function AllNilpotentLieAlgebras. The number of nilpotent Lie algebras over F of dimension dim is returned.
Here L is a solvable Lie algebra of dimension 2,3, or 4, or it is a nilpotent Lie algebra of dimension 5 or 6 (in the latter case it has to be of characteristic not 2). This function returns a record with three fields. name This is a string containing the name of the Lie algebra. It starts with a capital L if it is a solvable Lie algebra of dimension 2,3,4. It starts with a capital N if it is a nilpotent Lie algebra of dimension 5 or 6. A name like "N6_24( GF(3^7), Z(3^7) )" means that the input Lie algebra is isomorphic to the Lie algebra with number 24 in the list of 6-dimensional nilpotent Lie algebras. Furthermore the field is given and the value of the parameters (if there are any). parameters This contains the parameters that appear in the name of the algebra. isomorphism This is an isomorphism of the input Lie algebra to the Lie algebra from the classification with the given name. gap> L:= SolvableLieAlgebra( Rationals, [4,14,3] ); <Lie algebra of dimension 4 over Rationals> gap> LieAlgebraIdentification( L ); rec( name := "L4_14( Rationals, 1/3 )", parameters := [ 1/3 ], isomorphism := CanonicalBasis( <Lie algebra of dimension 4 over Rationals> ) -> [ v.3, (-1)*v.2, v.1, (1/3)*v.4 ] ) In the example we see that the program finds a different parameter, than the one with which the Lie algebra was constructed. The explanation is that some parametric classes of Lie algebras contain isomorphic Lie algebras, for different values of the parameters. In that case the identification function makes its own choice.