> < ^ Date: Mon, 31 Jan 2000 21:30:38 -0500 (EST)
^ From: Talaia Dawn Lewis <lewis@wam.umd.edu >
< ^ Subject: Re: Lie nilpotent group rings

Take me offffffff of this list pleassssssssss

talaia

On Mon, 31 Jan 2000, Willem de Graaf wrote:

Dear Alexander Konovalov,

Thank you very much for your message on Lie nilpotent
group rings. The behaviour you observed was in fact due to
an error in the GAP library; the problem occurred in the
function `LieAlgebraByDomain' that constructs the Lie algebra
corresponding to an associative algebra. This will be fixed
in the next release of GAP4 (GAP4.2). Also you will find the corrected
code at the end of this message. You can read this into GAP,
and then the error you observed should disappear. Alternatively
you can replace the function `LieAlgebraByDomain' in the file
`lib/algebra.gi' by the code below. In that case you will
have to rebuild the completion files (start GAP with the -N option,
and issue `CreateCompletionFiles()').

I hope this helps; if you have further questions, please ask.

Best wishes,

Willem de Graaf

School of Mathematical and Computational Sciences
University of St Andrews
North Haugh                     Tel:  +44 1334 463273
St Andrews                      Email: wdg@dcs.st-and.ac.uk
Fife      KY16 9SS             
Scotland


--------------------------------------------------------------------------


#############################################################################
##
#M  LieAlgebraByDomain( <A> )
##
##  The Lie algebra of the associative algebra <A>
##
InstallMethod( LieAlgebraByDomain,
    "for an algebra",
    true,
    [ IsAlgebra ], 0,
    function( A )

local T, n, zero, nullvec, S, i, j, k, m, cfs, cij, cji;

if not IsAssociative( A ) then TryNextMethod(); fi;

# We construct a structure constants table for the Lie algebra
# corresponding to <A>. If the structure constants of <A> are given by
# d_{ij}^k, then the structure constants of the Lie algebra will be given
# by d_{ij}^k - d_{ji}^k.

T:= StructureConstantsTable( Basis( A ) );
n:= Dimension( A );
zero:= Zero( LeftActingDomain( A ) );
nullvec:= List( [1..n], x -> zero );
S:= EmptySCTable( n, zero, "antisymmetric" );
for i in [1..n] do
  for j in [i+1..n] do
    cfs:= ShallowCopy( nullvec );
    cij:= T[i][j]; cji:= T[j][i];
    for m in [1..Length(cij[1])] do
      k:= cij[1][m];
      cfs[k]:= cfs[k] + cij[2][m];
    od;
    for m in [1..Length(cji[1])] do
      k:= cji[1][m];
      cfs[k]:= cfs[k] - cji[2][m];
    od;
cij:= [ ];
    for m in [1..n] do
      if cfs[m] <> zero then
          Add( cij, cfs[m] );
          Add( cij, m );
      fi;
    od;
    SetEntrySCTable( S, i, j, cij );
  od;
od;

>return LieAlgebraByStructureConstants( LeftActingDomain( A ), S );

end );

> < [top]