59.3 Constructing Algebras by Structure Constants

For an introduction into structure constants and how they are handled by GAP, we refer to Section Algebras of the user's tutorial.

  • EmptySCTable( dim, zero ) F
  • EmptySCTable( dim, zero, "symmetric" ) F
  • EmptySCTable( dim, zero, "antisymmetric" ) F

    EmptySCTable returns a structure constants table for an algebra of dimension dim, describing trivial multiplication. zero must be the zero of the coefficients domain. If the multiplication is known to be (anti)commutative then this can be indicated by the optional third argument.

    For filling up the structure constants table, see SetEntrySCTable.

    gap> EmptySCTable( 2, Zero( GF(5) ), "antisymmetric" );
    [ [ [ [  ], [  ] ], [ [  ], [  ] ] ], [ [ [  ], [  ] ], [ [  ], [  ] ] ], -1, 
      0*Z(5) ]
    

  • SetEntrySCTable( T, i, j, list ) F

    sets the entry of the structure constants table T that describes the product of the i-th basis element with the j-th basis element to the value given by the list list.

    If T is known to be antisymmetric or symmetric then also the value T[j][i] is set.

    list must be of the form [ cijk1, k1, cijk2, k2, ... ].

    The entries at the odd positions of list must be compatible with the zero element stored in T. 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.

    gap> T:= EmptySCTable( 2, 0 );;
    gap> SetEntrySCTable( T, 1, 1, [ 1/2, 1, 2/3, 2 ] ); 
    gap> T;
    [ [ [ [ 1, 2 ], [ 1/2, 2/3 ] ], [ [  ], [  ] ] ], 
      [ [ [  ], [  ] ], [ [  ], [  ] ] ], 0, 0 ]
    

  • GapInputSCTable( T, varname ) F

    is a string that describes the structure constants table T in terms of EmptySCTable and SetEntrySCTable. The assignments are made to the variable varname.

    gap> T:= EmptySCTable( 2, 0 );;                 
    gap> SetEntrySCTable( T, 1, 2, [ 1, 2 ] );
    gap> SetEntrySCTable( T, 2, 1, [ 1, 2 ] );
    gap> GapInputSCTable( T, "T" );
    "T:= EmptySCTable( 2, 0 );\nSetEntrySCTable( T, 1, 2, [1,2] );\nSetEntrySCTabl\
    e( T, 2, 1, [1,2] );\n"
    

  • TestJacobi( T ) F

    tests whether the structure constants table T satisfies the Jacobi identity vi*(vj*vk)+vj*(vk*vi)+vk*(vi*vj) = 0 for all basis vectors vi of the underlying algebra, where i £ j £ k. (Thus antisymmetry is assumed.)

    The function returns true if the Jacobi identity is satisfied, and a failing triple [ i, j, k ] otherwise.

    gap> T:= EmptySCTable( 2, 0, "antisymmetric" );;
    gap> SetEntrySCTable( T, 1, 2, [ 1, 2 ] );;
    gap> TestJacobi( T );
    true
    

  • AlgebraByStructureConstants( R, sctable ) F
  • AlgebraByStructureConstants( R, sctable, name ) F
  • AlgebraByStructureConstants( R, sctable, names ) F
  • AlgebraByStructureConstants( R, sctable, name1, name2, ... ) F

    returns a free left module A over the ring R, with multiplication defined by the structure constants table sctable. Here name and name1, name2, ... are optional strings that can be used to provide names for the elements of the canonical basis of A. names is a list of strings that can be entered instead of the specific names name1, name2, .... The vectors of the canonical basis of A correspond to the vectors of the basis given by sctable.

    It is not checked whether the coefficients in sctable are really elements in R.

    gap> T:= EmptySCTable( 2, 0 );;
    gap> SetEntrySCTable( T, 1, 1, [ 1/2, 1, 2/3, 2 ] );
    gap> A:= AlgebraByStructureConstants( Rationals, T ); 
    <algebra of dimension 2 over Rationals>
    gap> b:= BasisVectors( Basis( A ) );;
    gap> b[1]^2;
    (1/2)*v.1+(2/3)*v.2
    gap> b[1]*b[2];
    0*v.1
    

  • IdentityFromSCTable( T ) F

    Let T be a structure constants table of an algebra A of dimension n. IdentityFromSCTable( T ) is either fail or the vector of length n that contains the coefficients of the multipicative identity of A with respect to the basis that belongs to T.

    gap> T:= EmptySCTable( 2, 0 );;                 
    gap> SetEntrySCTable( T, 1, 1, [ 1, 1 ] );;
    gap> SetEntrySCTable( T, 1, 2, [ 1, 2 ] );;
    gap> SetEntrySCTable( T, 2, 1, [ 1, 2 ] );; 
    gap> IdentityFromSCTable( T );
    [ 1, 0 ]
    

  • QuotientFromSCTable( T, num, den ) F

    Let T be a structure constants table of an algebra A of dimension n. QuotientFromSCTable( T ) is either fail or the vector of length n that contains the coefficients of the quotient of num and den with respect to the basis that belongs to T.

    We solve the equation system num = x den . If no solution exists, fail is returned.

    In terms of the basis B with vectors b1, ¼, bn this means for num = åi = 1n ai bi, den = åi = 1n ci bi, x = åi = 1n xi bi that ak = åi,j ci xj cijk for all k. Here cijk denotes the structure constants with respect to B. This means that (as a vector) a = xM with Mjk = åi = 1n cijk ci.

    gap> T:= EmptySCTable( 2, 0 );;
    gap> SetEntrySCTable( T, 1, 1, [ 1, 1 ] );;
    gap> SetEntrySCTable( T, 2, 1, [ 1, 2 ] );;
    gap> SetEntrySCTable( T, 1, 2, [ 1, 2 ] );;
    gap> QuotientFromSCTable( T, [0,1], [1,0] );
    [ 0, 1 ]
    

    [Top] [Previous] [Up] [Next] [Index]

    GAP 4 manual
    February 2000