> < ^ Date: Fri, 31 Aug 2001 16:36:37 +0200 (MET DST)
> < ^ From: Willem de Graaf <degraaf@math.uu.nl >
< ^ Subject: Re: Lie algebras

Dear Marco,

You asked:

am looking also for a list of the (low dimensional) Lie algebras over
finite fields, of the (low dimensional) restricted Lie algebras, and of
the (low dimensional) graded Lie algebras. Are there also such list
already available as gap input?

I do not have such lists; I do not even know whether such classifications
exist.

By the way, waiting for the lists, I enter some Lie algebras by hand,
giving the entries in the structure constant table, finding a strange
behavior of gap. Chapter 59.3, "Constructing Algebras by Structure
Constants" of the reference manual says: "For convenience, these entries
may also be rational numbers that are automatically replaced by the
corresponding elements in the appropriate prime field in finite
characteristic if necessary."

This means that if a structure constants table has been constructed
using the zero of a finite field, then entries enetered by SetEntrySCTable
will be converted to elements of that finite field.

for each p prime, we don't get this error any more, but we have to use a
different structure constant table for each prime. It would be more
convenient if it were possible to enter also the zero of the structure
constant table as rational, and to have it automatically replaced by the
corresponding elements in the appropriate prime field in finite
characteristic if necessary.

The function below does that for you.

With the best wishes,

Willem de Graaf

# Example of usage:
#
# gap> L:= SimpleLieAlgebra("G",2,Rationals);;
# gap> T:= StructureConstantsTable( Basis(L));;
# gap> MyLieAlgebraBySC( GF(3), T );
# <Lie algebra of dimension 14 over GF(3)>

MyLieAlgebraBySC:= function( F, T )

local dim, S, i, j;

    dim:= Length( T )-2;
    S:= List( [1..dim], x -> [] );
    Add( S, -1 );
    Add( S, Zero(F) );
    for i in [1..dim] do
        for j in [1..dim] do
            S[i][j]:= [ ShallowCopy( T[i][j][1] ), One(F)*T[i][j][2] ];
        od;
    od;
    return LieAlgebraByStructureConstants( F, S );
end;

> < [top]