2 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_data*.gi`. See the function `ReadStringToNilpotentLieAlgebra` in the file `gap/nilpotent/nilpotent.gi` for the precise details.

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

`> NonSolvableLieAlgebra` ( F, pars ) | ( method ) |

`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 [Str]. 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.

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.

There is just one non-solvable Lie algebra over an arbitrary finite field `F` (see Section **3.2**) which is returned by `NonSolvableLieAlgebra( F, [3] )`.

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 **3.3** for a description of the algebras.

If `F` has characteristic 2 then there are 5 isomorphism classes of non-solvable Lie algebras over `F` and they are described in Section **3.4-1**. The possible values of `pars` are as follows.

`[5,1]`: the Lie algebra in**3.4-1**(1).`[5,2,i]`:`i=0, 1`; the Lie algebras in**3.4-1**(2).`[5,3,i]`:`i=0, 1`; the Lie algebras in**3.4-1**(3).

If the characteristic of `F` is odd, then the list of Lie algebras is as follows (see Section **3.4-2**).

`[5,1,i]`:`i=1, 0`; the Lie algebras that occur in**3.4-2**(1).`[5,2]`: the Lie algebra in**3.4-2**(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.4-2**(3), while in the latter it is in**3.4-2**(4).

The 6-dimensional non-solvable Lie algebras are described in Section **3.5**. If `F` has characteristic 2, then the possible values of `pars` is as follows.

`[6,1]`: the Lie algebra in**3.5-1**(1).`[6,2]`: the Lie algebra in**3.5-1**(2).`[6,3,i]`:`i=0, 1`; the two Lie algebras**3.5-1**(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**3.5-1**(4). If`x=0, 1, 2, 3`then the Lie algebra corresponding to the`(x+1)`-th matrix of**3.5-1**(4) is returned. If`x`is a field element, then a Lie algebra is returned which corresponds to the 5th matrix in**3.5-1**(4).`[6,5]`: the Lie algebra in**3.5-1**(5).`[6,6,1], [6,6,2], [6,6,3,x], [6,6,4,x]`:`x`is a field element; the Lie algebras in**3.5-1**(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`SolvableLieAlgebra`

(**2.2-1**).`[6,7]`: the Lie algebra in**3.5-1**(7).`[6,8]`: the Lie algebra in**3.5-1**(8).

If the characteristic of `F` is odd, then the possible values of `pars` are the following (see Sections **3.5-2**, **3.5-3**, and **3.5-4**).

`[6,1]`: the Lie algebra in**3.5-2**(1).`[6,2]`: the Lie algebra in**3.5-2**(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.5-2**(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`SolvableLieAlgebra`

(**2.2-1**).`[6,4]`: the Lie algebra in**3.5-2**(4).`[6,5]`: the Lie algebra in**3.5-2**(5).`[6,6]`: the Lie algebra in**3.5-2**(6).`[6,7]`: the Lie algebra in**3.5-2**(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**3.5-3**(1).`[6,9]`: the Lie algebra in**3.5-3**(2).`[6,10]`: the Lie algebra in**3.5-3**(3).`[6,11,i]`:`i=0, 1`; one of the two Lie algebras in**3.5-3**(4).`[6,12]`: the first Lie algebra in**3.5-3**(5).`[6,13]`: the second Lie algebra**3.5-3**(5).

If the characteristic is 5, then the additional Lie algebras are the following.

`> AllNonSolvableLieAlgebras` ( F, dim ) | ( method ) |

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) ] |

`> AllSimpleLieAlgebras` ( F, dim ) | ( method ) |

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 [Str] is used. If `F=GF(2)` and `dim` is between 7 and 9, then the Lie algebras in [Vau06] are returned (see Section **3.6**). 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`.

The package contains the classification of solvable Lie algebras of dimensions 2, 3 and 4 (taken from [dG05]), and the classification of nilpotent Lie algebras of dimensions 5 and 6 (from [CGS11]). 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 **3.7** the list is given of the multiplication tables of the solvable and nilpotent Lie algebras, corresponding to the functions in this section.

`> SolvableLieAlgebra` ( F, pars ) | ( method ) |

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 [dG05]. 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 [dG05] 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> |

`> NilpotentLieAlgebra` ( F, pars ) | ( method ) |

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 Section **3.7**. A Lie algebra in the list of Section **3.7** 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)> |

`> AllSolvableLieAlgebras` ( F, dim ) | ( method ) |

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.

`> AllNilpotentLieAlgebras` ( F, dim ) | ( method ) |

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)` 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 6 then the collection of nilpotent Lie algebras is determined by [CGS11], otherwise the classification can be found in [Sch05]. 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.

`> NrNilpotentLieAlgebras` ( F, dim ) | ( method ) |

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.

`> LieAlgebraIdentification` ( L ) | ( method ) |

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. 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.

generated by GAPDoc2HTML