  
  [1X2 The families of Lie algebras included in the database[0X
  
  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 [3XNonSolvableLieAlgebra[0m,
  [3XSolvableLieAlgebra[0m,   or   [3XNilpotentLieAlgebra[0m  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  [3Xgap/nilpotent/nilpotent_data*.gi[0m.  See  the function
  [3XReadStringToNilpotentLieAlgebra[0m  in  the file [3Xgap/nilpotent/nilpotent.gi[0m for
  the precise details.
  
  
  [1X2.1 Non-solvable Lie algebras[0X
  
  The  package  contains  the  list  of  non-solvable Lie algebras over finite
  fields up to dimension 6. The classification follows the one in [Str].
  
  [1X2.1-1 NonSolvableLieAlgebra[0m
  
  [2X> NonSolvableLieAlgebra( [0X[3XF, pars[0X[2X ) ___________________________________[0Xmethod
  
  [3XF[0m  is  an  arbitrary  finite field, [3Xpars[0m 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 [3Xpars[0m is the dimension of the algebra,
  and  the  possible  additional entries of [3Xpars[0m describe the algebra if there
  are more algebras with dimension [3Xpars[1][0m.
  
  The possible values of [3Xpars[0m are as follows.
  
  
  [1X2.1-2 Dimension 1 and 2[0X
  
  There are no non-solvable Lie algebras with dimension less than 3, and so if
  [3Xpars[1][0m is less than 3 then [3XNonSolvableLieAlgebra[0m returns an error message.
  
  
  [1X2.1-3 Dimension 3[0X
  
  There  is just one non-solvable Lie algebra over an arbitrary finite field [3XF[0m
  (see Section [14X3.2[0m) which is returned by [3XNonSolvableLieAlgebra( F, [3] )[0m.
  
  
  [1X2.1-4 Dimension 4[0X
  
  If  [3XF[0m has odd characteristic then there is a unique non-solvable Lie algebra
  with    dimension   4   over   [3XF[0m   and   this   algebra   is   returned   by
  [3XNonSolvableLieAlgebra(  F,  [4] )[0m. If [3XF[0m has characteristic 2, then there are
  two distinct Lie algebras and they are returned by [3XNonSolvableLieAlgebra( F,
  [4,i] )[0m for [3Xi=1, 2[0m. See Section [14X3.3[0m for a description of the algebras.
  
  
  [1X2.1-5 Dimension 5[0X
  
  If  [3XF[0m  has  characteristic  2  then  there  are  5  isomorphism  classes  of
  non-solvable  Lie  algebras  over [3XF[0m and they are described in Section [14X3.4-1[0m.
  The possible values of [3Xpars[0m are as follows.
  
  --    [3X[5,1][0m: the Lie algebra in [14X3.4-1[0m(1).
  
  --    [3X[5,2,i][0m: [3Xi=0, 1[0m; the Lie algebras in [14X3.4-1[0m(2).
  
  --    [3X[5,3,i][0m: [3Xi=0, 1[0m; the Lie algebras in [14X3.4-1[0m(3).
  
  If  the  characteristic  of  [3XF[0m  is  odd, then the list of Lie algebras is as
  follows (see Section [14X3.4-2[0m).
  
  --    [3X[5,1,i][0m: [3Xi=1, 0[0m; the Lie algebras that occur in [14X3.4-2[0m(1).
  
  --    [3X[5,2][0m: the Lie algebra in [14X3.4-2[0m(2).
  
  --    [3X[5,3][0m:  this algebra only exists if the characteristic of [3XF[0m is 3 or 5.
        In  the  former  case the algebra is the one in [14X3.4-2[0m(3), while in the
        latter it is in [14X3.4-2[0m(4).
  
  
  [1X2.1-6 Dimension 6[0X
  
  The 6-dimensional non-solvable Lie algebras are described in Section [14X3.5[0m. If
  [3XF[0m has characteristic 2, then the possible values of [3Xpars[0m is as follows.
  
  --    [3X[6,1][0m: the Lie algebra in [14X3.5-1[0m(1).
  
  --    [3X[6,2][0m: the Lie algebra in [14X3.5-1[0m(2).
  
  --    [3X[6,3,i][0m: [3Xi=0, 1[0m; the two Lie algebras [14X3.5-1[0m(3).
  
  --    [3X[6,4,x][0m:  [3Xx=0,  1,  2,  3[0m  or  [3Xx[0m  is  a  field  element.  In this case
        [3XAllNonSolvableLieAlgebras[0m returns one of the Lie algebras in [14X3.5-1[0m(4).
        If  [3Xx=0,  1,  2,  3[0m then the Lie algebra corresponding to the [3X(x+1)[0m-th
        matrix  of  [14X3.5-1[0m(4)  is returned. If [3Xx[0m is a field element, then a Lie
        algebra is returned which corresponds to the 5th matrix in [14X3.5-1[0m(4).
  
  --    [3X[6,5][0m: the Lie algebra in [14X3.5-1[0m(5).
  
  --    [3X[6,6,1],  [6,6,2], [6,6,3,x], [6,6,4,x][0m: [3Xx[0m is a field element; the Lie
        algebras  in  [14X3.5-1[0m(6). The third and fourth entries of [3Xpars[0m determine
        the  isomorphism  type  of the radical as a solvable Lie algebra. More
        precisely, if the third argument [3Xpars[3][0m is 1 or 2 then the radical is
        isomorphic  to  [3XSolvableLieAlgebra(  F,[3,pars[3]]  )[0m.  If  the  third
        argument  [3Xpars[3][0m  is  3  or  4  then  the  radical  is  isomorphic to
        [3XSolvableLieAlgebra(  F,[3,pars[3],pars[4]]  )[0m;  see [2XSolvableLieAlgebra[0m
        ([14X2.2-1[0m).
  
  --    [3X[6,7][0m: the Lie algebra in [14X3.5-1[0m(7).
  
  --    [3X[6,8][0m: the Lie algebra in [14X3.5-1[0m(8).
  
  If  the characteristic of [3XF[0m is odd, then the possible values of [3Xpars[0m are the
  following (see Sections [14X3.5-2[0m, [14X3.5-3[0m, and [14X3.5-4[0m).
  
  --    [3X[6,1][0m: the Lie algebra in [14X3.5-2[0m(1).
  
  --    [3X[6,2][0m: the Lie algebra in [14X3.5-2[0m(2).
  
  --    [3X[6,3,1],  [6,3,2], [6,3,3,x], [6,3,4,x][0m: [3Xx[0m is a field element; the Lie
        algebras  in  [14X3.5-2[0m(3). The third and fourth entries of [3Xpars[0m determine
        the  isomorphism  type  of the radical as a solvable Lie algebra. More
        precisely, if the third argument [3Xpars[3][0m is 1 or 2 then the radical is
        isomorphic  to  [3XSolvableLieAlgebra(  F,[3,pars[3]]  )[0m.  If  the  third
        argument  [3Xpars[3][0m  is  3  or  4  then  the  radical  is  isomorphic to
        [3XSolvableLieAlgebra(  F,[3,pars[3],pars[4]]  )[0m;  see [2XSolvableLieAlgebra[0m
        ([14X2.2-1[0m).
  
  --    [3X[6,4][0m: the Lie algebra in [14X3.5-2[0m(4).
  
  --    [3X[6,5][0m: the Lie algebra in [14X3.5-2[0m(5).
  
  --    [3X[6,6][0m: the Lie algebra in [14X3.5-2[0m(6).
  
  --    [3X[6,7][0m: the Lie algebra in [14X3.5-2[0m(7).
  
  If  the  characteristic  is  3  or  5 then there are additional families. In
  characteristic 3, these families are as follows.
  
  --    [3X[6,8,x][0m:  [3Xx[0m  is  a  field  element; returns one of the Lie algebras in
        [14X3.5-3[0m(1).
  
  --    [3X[6,9][0m: the Lie algebra in [14X3.5-3[0m(2).
  
  --    [3X[6,10][0m: the Lie algebra in [14X3.5-3[0m(3).
  
  --    [3X[6,11,i][0m: [3Xi=0, 1[0m; one of the two Lie algebras in [14X3.5-3[0m(4).
  
  --    [3X[6,12][0m: the first Lie algebra in [14X3.5-3[0m(5).
  
  --    [3X[6,13][0m: the second Lie algebra [14X3.5-3[0m(5).
  
  If  the  characteristic  is  5,  then  the  additional  Lie algebras are the
  following.
  
  --    [3X[6,8][0m: the Lie algebra in [14X3.5-4[0m(1).
  
  --    [3X[6,9][0m: the Lie algebra in [14X3.5-4[0m(2).
  
  [1X2.1-7 AllNonSolvableLieAlgebras[0m
  
  [2X> AllNonSolvableLieAlgebras( [0X[3XF, dim[0X[2X ) ________________________________[0Xmethod
  
  Here  [3XF[0m  is an arbitrary finite field, and [3Xdim[0m 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  [3XF[0m with dimension [3Xdim[0m. In order to obtain the algebras contained in the
  collection,  one  can  use  the  functions  [3XAsList[0m, [3XEnumerator[0m, [3XIterator[0m, as
  illustrated by the following example.
  
  [4X---------------------------  Example  ----------------------------[0X
    [4Xgap> L := AllNonSolvableLieAlgebras( GF(4), 4 );[0X
    [4X<Collection of nonsolvable Lie algebras with dimension 4 over GF(2^2)>[0X
    [4Xgap>  e := Enumerator( L );[0X
    [4X<enumerator>[0X
    [4Xgap> for i in e do Print( Dimension( LieSolvableRadical( i )), "\n" ); od;[0X
    [4X0[0X
    [4X1[0X
    [4Xgap> AsList( L );[0X
    [4X[ W(1;2), W(1;2)^{(1)}+GF(4) ][0X
    [4Xgap> Dimension( LieCenter( last[2] ));[0X
    [4X1[0X
  [4X------------------------------------------------------------------[0X
  
  As  the  output  of  [3XAllNonSolvableLieAlgebras[0m 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.
  
  [4X---------------------------  Example  ----------------------------[0X
    [4Xgap> L := AllNonSolvableLieAlgebras( GF(5^20), 6 );[0X
    [4X<Collection of nonsolvable Lie algebras with dimension 6 over GF(5^20)>[0X
    [4Xgap> e := Enumerator( L );[0X
    [4X<enumerator>[0X
    [4Xgap> Length( last );[0X
    [4X95367431640638[0X
    [4Xgap> Dimension( LieDerivedSubalgebra( e[462468528345] ));[0X
    [4X5[0X
  [4X------------------------------------------------------------------[0X
  
  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
  [3XEnumerator[0m  cannot  be  used  in  that  context.  You  can, however, use the
  functions [3XIterator[0m and [3XAsList[0m as follows.
  
  [4X---------------------------  Example  ----------------------------[0X
    [4Xgap> L := AllNonSolvableLieAlgebras( GF(3), 6 );[0X
    [4X<Collection of nonsolvable Lie algebras with dimension 6 over GF(3)>[0X
    [4Xgap>  e := Iterator( L );[0X
    [4X<iterator>[0X
    [4Xgap> dims := [];;[0X
    [4Xgap> for i in e do Add( dims, Dimension( LieSolvableRadical( i ))); od;[0X
    [4Xgap> dims;[0X
    [4X[ 0, 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3 ][0X
    [4Xgap> AsList( L );[0X
    [4X[ sl(2,3)+sl(2,3), sl(2,GF(9)), sl(2,3)+solv([ 1 ]), sl(2,3)+solv([ 2 ]), [0X
    [4X  sl(2,3)+solv([ 3, 0*Z(3) ]), sl(2,3)+solv([ 3, Z(3)^0 ]), [0X
    [4X  sl(2,3)+solv([ 3, Z(3) ]), sl(2,3)+solv([ 4, 0*Z(3) ]), [0X
    [4X  sl(2,3)+solv([ 4, Z(3) ]), sl(2,3)+solv([ 4, Z(3)^0 ]), sl(2,3):(V(1)+V(0)),[0X
    [4X  sl(2,3):V(2), sl(2,3):H, sl(2,3):<x,y,z|[x,y]=y,[x,z]=z>, [0X
    [4X  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)*, [0X
    [4X  sl(2,3).H(0), sl(2,3).H(1), sl(2,3).(GF(3)+GF(3)+GF(3))(1), [0X
    [4X  sl(2,3).(GF(3)+GF(3)+GF(3))(2) ][0X
  [4X------------------------------------------------------------------[0X
  
  [1X2.1-8 AllSimpleLieAlgebras[0m
  
  [2X> AllSimpleLieAlgebras( [0X[3XF, dim[0X[2X ) _____________________________________[0Xmethod
  
  Here  [3XF[0m  is a finite field, and [3Xdim[0m is either an integer not greater than 6,
  or,  if  [3XF=GF(2)[0m,  then  [3Xdim[0m  is not greater than 9. The output is a list of
  simple  Lie  algebras over [3XF[0m of dimension [3Xdim[0m. If [3Xdim[0m is at most 6, then the
  classification  by Strade [Str] is used. If [3XF=GF(2)[0m and [3Xdim[0m is between 7 and
  9,  then  the  Lie  algebras  in [Vau06] are returned (see Section [14X3.6[0m). 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 [3XSimpleLieAlgebra[0m.
  
  
  [1X2.2 Solvable and nilpotent Lie algebras[0X
  
  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 [14X3.7[0m the list is given of the multiplication tables
  of  the  solvable and nilpotent Lie algebras, corresponding to the functions
  in this section.
  
  [1X2.2-1 SolvableLieAlgebra[0m
  
  [2X> SolvableLieAlgebra( [0X[3XF, pars[0X[2X ) ______________________________________[0Xmethod
  
  Here  [3XF[0m  is  an  arbitrary  field,  [3Xpars[0m is a list of parameters with length
  between  [9X2[0m  and  [9X4[0m. The first entry of [3Xpars[0m 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 [3Xpars[0m 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
  [3Xpars[0m also has to contain the parameters.
  
  [4X---------------------------  Example  ----------------------------[0X
    [4Xgap> SolvableLieAlgebra( Rationals, [4,6,1,2] );[0X
    [4X<Lie algebra of dimension 4 over Rationals>[0X
  [4X------------------------------------------------------------------[0X
  
  [1X2.2-2 NilpotentLieAlgebra[0m
  
  [2X> NilpotentLieAlgebra( [0X[3XF, pars[0X[2X ) _____________________________________[0Xmethod
  
  Here  [3XF[0m  is  an  arbitrary  field,  [3Xpars[0m is a list of parameters with length
  between  [9X2[0m  and  [9X3[0m. The first entry of [3Xpars[0m is the dimension of the algebra,
  which  has  to  be 5 or 6. The second entry of [3Xpars[0m is the number of the Lie
  algebra  with  which it appears in the list of Section [14X3.7[0m. A Lie algebra in
  the  list  of Section [14X3.7[0m can have one parameter. In that case the list [3Xpars[0m
  also has to contain the parameter.
  
  [4X---------------------------  Example  ----------------------------[0X
    [4Xgap> NilpotentLieAlgebra( GF(3^7), [ 6, 24, Z(3^7)^101 ] );[0X
    [4X<Lie algebra of dimension 6 over GF(3^7)>[0X
  [4X------------------------------------------------------------------[0X
  
  [1X2.2-3 AllSolvableLieAlgebras[0m
  
  [2X> AllSolvableLieAlgebras( [0X[3XF, dim[0X[2X ) ___________________________________[0Xmethod
  
  Here  [3XF[0m  is an arbitrary finite field, and [3Xdim[0m is at most 4. A collection of
  all  solvable  Lie  algebras over [3XF[0m of dimension [3Xdim[0m 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 [3XAllNonSolvableLieAlgebra[0m for a more detailed description of
  usage.
  
  [1X2.2-4 AllNilpotentLieAlgebras[0m
  
  [2X> AllNilpotentLieAlgebras( [0X[3XF, dim[0X[2X ) __________________________________[0Xmethod
  
  Here  [3XF[0m  is a finite field, and [3Xdim[0m not greater than 9. Further, if [3Xdim=9[0m or
  [3Xdim=8[0m,  then  [3XF[0m  must be [3XGF(2)[0m; if [3Xdim=7[0m then [3XF[0m must be one of [3XGF(2)[0m, [3XGF(3)[0m,
  [3XGF(5)[0m  and if [3Xdim≤6[0m then [3XF[0m can be an arbitrary finite field. A collection of
  all  nilpotent  Lie  algebras over [3XF[0m of dimension [3Xdim[0m is returned. If [3Xdim[0m 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 [3XAllNonSolvableLieAlgebra[0m for a more detailed
  description of usage.
  
  [1X2.2-5 NrNilpotentLieAlgebras[0m
  
  [2X> NrNilpotentLieAlgebras( [0X[3XF, dim[0X[2X ) ___________________________________[0Xmethod
  
  Here  [3XF[0m is a finite field, and [3Xdim[0m is an integer. The restrictions for [3XF[0m and
  [3Xdim[0m  are  the same as in the function [3XAllNilpotentLieAlgebras[0m. The number of
  nilpotent Lie algebras over [3XF[0m of dimension [3Xdim[0m is returned.
  
  [1X2.2-6 LieAlgebraIdentification[0m
  
  [2X> LieAlgebraIdentification( [0X[3XL[0X[2X ) ______________________________________[0Xmethod
  
  Here  [3XL[0m  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.
  
  --    [3Xname[0m  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).
  
  --    [3Xparameters[0m This contains the parameters that appear in the name of the
        algebra.
  
  --    [3Xisomorphism[0m This is an isomorphism of the input Lie algebra to the Lie
        algebra from the classification with the given name.
  
  [4X---------------------------  Example  ----------------------------[0X
    [4Xgap> L:= SolvableLieAlgebra( Rationals, [4,14,3] );[0X
    [4X<Lie algebra of dimension 4 over Rationals>[0X
    [4Xgap>  LieAlgebraIdentification( L );[0X
    [4Xrec( name := "L4_14( Rationals, 1/3 )", parameters := [ 1/3 ],[0X
    [4X  isomorphism := CanonicalBasis( <Lie algebra of dimension[0X
    [4X    4 over Rationals> ) -> [ v.3, (-1)*v.2, v.1, (1/3)*v.4 ] )[0X
  [4X------------------------------------------------------------------[0X
  
  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.
  
