Anforderungen  |   Konzepte  |   Entwurf  |   Entwicklung  |   Qualitätssicherung  |   Lebenszyklus  |   Steuerung
 
 
 
 


Quelle  algsc.tst   Sprache: unbekannt

 
#@local T0,T1,T2,T3,a,b,c,coeff,der,e,fam,g,gens,i,id,j,k,l1,l2,l3,lcs,orb
#@local TestMonomialUseLattice_Orig,permgrp,ps,q,s,s1,s2,s3,sc,t,theta
#@local U,ucs,v,vecs,vectors,w,z,A,V,W
#@local L,l
gap> START_TEST("algsc.tst");

#############################################################################
##
##  Expl. 0: Quaternion algebra
##
gap> T0 := [
>            [[[1],[1]],[[2],[ 1]],[[3],[ 1]],[[4],[ 1]]],
>            [[[2],[1]],[[1],[-1]],[[4],[ 1]],[[3],[-1]]],
>            [[[3],[1]],[[4],[-1]],[[1],[-1]],[[2],[ 1]]],
>            [[[4],[1]],[[3],[ 1]],[[2],[-1]],[[1],[-1]]],
>            0, 0 ];;
gap> id:= IdentityFromSCTable( T0 );
[ 1, 0, 0, 0 ]
gap> v:= [ 0, 1, 1, 1 ];;
gap> v = QuotientFromSCTable( T0, v, id );
true
gap> q:= QuotientFromSCTable( T0, id, v );
[ 0, -1/3, -1/3, -1/3 ]
gap> v = QuotientFromSCTable( T0, id, q );
true

# Compute with an algebra by structure constants.
gap> a:= AlgebraByStructureConstants( Rationals, T0 );
<algebra of dimension 4 over Rationals>
gap> Dimension( a );
4
gap> IsFullSCAlgebra( a );
true
gap> IsWholeFamily( a );
false
gap> IsWholeFamily( AlgebraByStructureConstants( Cyclotomics, T0 ) );
true
gap> IsMagmaWithOne( a );
false

#
gap> fam:= ElementsFamily( FamilyObj( a ) );
<Family: "SCAlgebraObjFamily">
gap> ObjByExtRep( fam, [ 0, 1, 0, 1 ] * Z(2) );
Error, family of <coeffs> does not fit to <Fam>
gap> ObjByExtRep( fam, [ 0, 1, 0 ] );
Error, <coeffs> must be a list of length 4
gap> v:= ObjByExtRep( fam, [ 0, 1, 0, 1 ] );
v.2+v.4
gap> t:= AlgebraByStructureConstants( Rationals, [ 0, 0 ] );
<algebra of dimension 0 over Rationals>
gap> String(v);
"v.2+v.4"
gap> One( fam ); One( v ); v^0; String(v^0);
v.1
v.1
v.1
"v.1"
gap> Zero( fam ); Zero( v ); 0*v; String(0*v);
0*v.1
0*v.1
0*v.1
"0*v.1"
gap> 0*v = v*0;
true
gap> 1*v = v;
true
gap> v*1 = v;
true
gap> (1/2 * v) * 2 = v;
true
gap> 2 * (v * 1/2) = v;
true

#
gap> Inverse( v ); v^-1; String( v^-1 );
(-1/2)*v.2+(-1/2)*v.4
(-1/2)*v.2+(-1/2)*v.4
"(-1/2)*v.2+(-1/2)*v.4"
gap> Inverse( Zero( v) );
fail
gap> AdditiveInverse( v ); -v; String( -v );
(-1)*v.2+(-1)*v.4
(-1)*v.2+(-1)*v.4
"(-1)*v.2+(-1)*v.4"
gap> b:= Basis( a );
CanonicalBasis( <algebra of dimension 4 over Rationals> )
gap> Coefficients( b, v );
[ 0, 1, 0, 1 ]
gap> w:= LinearCombination( b, [ 1, 2, 3, 4 ] );
v.1+(2)*v.2+(3)*v.3+(4)*v.4
gap> v + w;
v.1+(3)*v.2+(3)*v.3+(5)*v.4
gap> v * w;
(-6)*v.1+(-2)*v.2+(-2)*v.3+(4)*v.4
gap> v = w;
false
gap> v < w;
true
gap> w < v;
false
gap> s:= Subalgebra( a, [ v, 0*v, v^0, w ] );
<algebra over Rationals, with 4 generators>
gap> Dimension( s );
4
gap> v:= Subspace( a, [ v, 0*v, v^0, w ] );
<vector space over Rationals, with 4 generators>
gap> Dimension( v );
3

# And now do the same for an algebra-with-one.
gap> a:= AlgebraWithOneByStructureConstants( Rationals, T0, id );
<algebra-with-one of dimension 4 over Rationals>
gap> Dimension( a );
4
gap> IsFullSCAlgebra( a );
true
gap> IsWholeFamily( a );
false
gap> IsMagmaWithOne( a );
true

#
gap> fam:= ElementsFamily( FamilyObj( a ) );
<Family: "SCAlgebraObjFamily">
gap> ObjByExtRep( fam, [ 0, 1, 0, 1 ] * Z(2) );
Error, family of <coeffs> does not fit to <Fam>
gap> ObjByExtRep( fam, [ 0, 1, 0 ] );
Error, <coeffs> must be a list of length 4
gap> v:= ObjByExtRep( fam, [ 0, 1, 0, 1 ] );
v.2+v.4
gap> t:= AlgebraByStructureConstants( Rationals, [ 0, 0 ] );
<algebra of dimension 0 over Rationals>
gap> String(v);
"v.2+v.4"
gap> One( fam ); One( v ); v^0; String(v^0);
v.1
v.1
v.1
"v.1"
gap> Zero( fam ); Zero( v ); 0*v; String(0*v);
0*v.1
0*v.1
0*v.1
"0*v.1"
gap> 0*v = v*0;
true
gap> 1*v = v;
true
gap> v*1 = v;
true
gap> (1/2 * v) * 2 = v;
true
gap> 2 * (v * 1/2) = v;
true

#
gap> Inverse( v ); v^-1; String( v^-1 );
(-1/2)*v.2+(-1/2)*v.4
(-1/2)*v.2+(-1/2)*v.4
"(-1/2)*v.2+(-1/2)*v.4"
gap> Inverse( Zero( v) );
fail
gap> AdditiveInverse( v ); -v; String( -v );
(-1)*v.2+(-1)*v.4
(-1)*v.2+(-1)*v.4
"(-1)*v.2+(-1)*v.4"
gap> b:= Basis( a );
CanonicalBasis( <algebra-with-one of dimension 4 over Rationals> )
gap> Coefficients( b, v );
[ 0, 1, 0, 1 ]
gap> w:= LinearCombination( b, [ 1, 2, 3, 4 ] );
v.1+(2)*v.2+(3)*v.3+(4)*v.4
gap> v + w;
v.1+(3)*v.2+(3)*v.3+(5)*v.4
gap> v * w;
(-6)*v.1+(-2)*v.2+(-2)*v.3+(4)*v.4
gap> v = w;
false
gap> v < w;
true
gap> w < v;
false
gap> s:= Subalgebra( a, [ v, 0*v, v^0, w ] );
<algebra over Rationals, with 4 generators>
gap> Dimension( s );
4
gap> v:= Subspace( a, [ v, 0*v, v^0, w ] );
<vector space over Rationals, with 4 generators>
gap> Dimension( v );
3

# Special case: QuaternionAlgebra
gap> a:= QuaternionAlgebra( Rationals, -2, -3 );;
gap> gens:= GeneratorsOfAlgebra( a );
[ e, i, j, k ]
gap> List( gens, RealPart );
[ e, 0*e, 0*e, 0*e ]
gap> List( gens, ImaginaryPart ) * gens[2];
[ 0*e, i, j, k ]
gap> vecs := Concatenation( gens, [ Sum( gens ) ] );
[ e, i, j, k, e+i+j+k ]
gap> ForAll( vecs, v -> (v + ComplexConjugate( v )) / 2 = RealPart( v ) );
true
gap> ForAll( vecs, v -> (v - ComplexConjugate( v )) / (2*gens[2])
>                       = ImaginaryPart( v ) );
true

#############################################################################
##
##  Expl. 1: $2.A6$, gen. by 20 quaternionic reflections over $H(\sqrt{3})$
##
gap> q:= QuaternionAlgebra( FieldByGenerators( Rationals, [ Sqrt(3) ] ) );
<algebra-with-one of dimension 4 over NF(12,[ 1, 11 ])>
gap> gens:= GeneratorsOfAlgebra( q );
[ e, i, j, k ]
gap> z:= Zero( q );;
gap> e:= gens[1];; i:= gens[2];; j:= gens[3];; k:= gens[4];;
gap> theta:= Sqrt(3) * j;
(-E(12)^7+E(12)^11)*j
gap> w:= ( -e + theta ) / 2;
(-1/2)*e+(-1/2*E(12)^7+1/2*E(12)^11)*j
gap> vectors:= [ [ theta, z ], [ (i+e)*w, w ], [ w, (i-e)*w ] ];;
gap> gens:= List( vectors, x -> ReflectionMat( x, w ) );;
gap> g:= GroupByGenerators( gens );;
gap> orb:= Orbit( g, vectors[1] );;
gap> permgrp:= Action( g, orb, OnRight );;
gap> Size( permgrp );
720

#############################################################################
##
##  Expl. 2: Poincare Lie algebra
##
gap> T1:= EmptySCTable( 10, 0, "antisymmetric" );;
gap> SetEntrySCTable( T1, 1, 3, [2,4] );
gap> SetEntrySCTable( T1, 1, 4, [-2,3] );
gap> SetEntrySCTable( T1, 1, 5, [-2,6] );
gap> SetEntrySCTable( T1, 1, 6, [2,5] );
gap> SetEntrySCTable( T1, 1, 8, [2,9] );
gap> SetEntrySCTable( T1, 1, 9, [-2,8] );
gap> SetEntrySCTable( T1, 2, 3, [2,3] );
gap> SetEntrySCTable( T1, 2, 4, [2,4] );
gap> SetEntrySCTable( T1, 2, 5, [-2,5] );
gap> SetEntrySCTable( T1, 2, 6, [-2,6] );
gap> SetEntrySCTable( T1, 2, 7, [2,7] );
gap> SetEntrySCTable( T1, 2, 10, [-2,10] );
gap> SetEntrySCTable( T1, 3, 5, [1,2] );
gap> SetEntrySCTable( T1, 3, 6, [1,1] );
gap> SetEntrySCTable( T1, 3, 9, [2,7] );
gap> SetEntrySCTable( T1, 3, 10, [1,9] );
gap> SetEntrySCTable( T1, 4, 5, [1,1] );
gap> SetEntrySCTable( T1, 4, 6, [-1,2] );
gap> SetEntrySCTable( T1, 4, 8, [-2,7] );
gap> SetEntrySCTable( T1, 4, 10, [-1,8] );
gap> SetEntrySCTable( T1, 5, 7, [1,9] );
gap> SetEntrySCTable( T1, 5, 9, [2,10] );
gap> SetEntrySCTable( T1, 6, 7, [1,8] );
gap> SetEntrySCTable( T1, 6, 8, [2,10] );
gap> IdentityFromSCTable( T1 );
fail
gap> l1:= AlgebraByStructureConstants( Rationals, T1 );
<algebra of dimension 10 over Rationals>
gap> IsLieAlgebra( l1 );
true
gap> IsCommutative( l1 );
false
gap> IsAssociative( l1 );
false
gap> Dimension( l1 );
10
gap> ucs:= LieUpperCentralSeries( l1 );
[ <Lie algebra of dimension 0 over Rationals> ]
gap> lcs:= LieLowerCentralSeries( l1 );
[ <Lie algebra of dimension 10 over Rationals> ]
gap> IsLieSolvable( l1 );
false
gap> IsLieNilpotent( l1 );
false
gap> IsLieAbelian( l1 );
false
gap> c:= LieCentre( l1 );
<Lie algebra of dimension 0 over Rationals>
gap> gens:= GeneratorsOfAlgebra( l1 );
[ v.1, v.2, v.3, v.4, v.5, v.6, v.7, v.8, v.9, v.10 ]
gap> s1:= Subalgebra( l1, [ gens[1] ] );
<Lie algebra over Rationals, with 1 generator>
gap> Dimension( s1 );
1
gap> IsLieSolvable( s1 );
true
gap> IsLieNilpotent( s1 );
true
gap> IsLieAbelian( s1 );
true
gap> LieCentre( s1 );
<two-sided ideal in <Lie algebra of dimension 1 over Rationals>, (dimension 1
 )>
gap> LieCentralizer( l1, s1 );
<Lie algebra of dimension 4 over Rationals>
gap> ps:= ProductSpace( l1, s1 );
<vector space of dimension 6 over Rationals>
gap> LieCentralizer( l1, ps );
<Lie algebra of dimension 0 over Rationals>
gap> LieNormalizer( l1, ps );
<Lie algebra of dimension 4 over Rationals>

# Test added for DecomposeTensorProduct
gap> L := SimpleLieAlgebra( "A", 3, Rationals );;
gap> v := [1,3,1];;
gap> w := [4,1,4];;
gap> l := DecomposeTensorProduct( L, v, w );
[ [ [ 0, 0, 8 ], [ 0, 1, 6 ], [ 0, 2, 4 ], [ 0, 2, 8 ], [ 0, 3, 2 ], 
      [ 0, 3, 6 ], [ 0, 4, 0 ], [ 0, 4, 4 ], [ 0, 5, 2 ], [ 0, 6, 0 ], 
      [ 1, 0, 5 ], [ 1, 0, 9 ], [ 1, 1, 3 ], [ 1, 1, 7 ], [ 1, 2, 1 ], 
      [ 1, 2, 5 ], [ 1, 3, 3 ], [ 1, 3, 7 ], [ 1, 4, 1 ], [ 1, 4, 5 ], 
      [ 1, 5, 3 ], [ 1, 6, 1 ], [ 2, 0, 6 ], [ 2, 1, 4 ], [ 2, 1, 8 ], 
      [ 2, 2, 2 ], [ 2, 2, 6 ], [ 2, 3, 0 ], [ 2, 3, 4 ], [ 2, 4, 2 ], 
      [ 2, 4, 6 ], [ 2, 5, 0 ], [ 2, 5, 4 ], [ 2, 6, 2 ], [ 3, 0, 3 ], 
      [ 3, 0, 7 ], [ 3, 1, 1 ], [ 3, 1, 5 ], [ 3, 2, 3 ], [ 3, 2, 7 ], 
      [ 3, 3, 1 ], [ 3, 3, 5 ], [ 3, 4, 3 ], [ 3, 5, 1 ], [ 3, 5, 5 ], 
      [ 3, 6, 3 ], [ 4, 0, 4 ], [ 4, 0, 8 ], [ 4, 1, 2 ], [ 4, 1, 6 ], 
      [ 4, 2, 0 ], [ 4, 2, 4 ], [ 4, 3, 2 ], [ 4, 3, 6 ], [ 4, 4, 0 ], 
      [ 4, 4, 4 ], [ 4, 5, 2 ], [ 5, 0, 1 ], [ 5, 0, 5 ], [ 5, 1, 3 ], 
      [ 5, 1, 7 ], [ 5, 2, 1 ], [ 5, 2, 5 ], [ 5, 3, 3 ], [ 5, 4, 1 ], 
      [ 5, 4, 5 ], [ 5, 5, 3 ], [ 6, 0, 2 ], [ 6, 0, 6 ], [ 6, 1, 0 ], 
      [ 6, 1, 4 ], [ 6, 2, 2 ], [ 6, 2, 6 ], [ 6, 3, 0 ], [ 6, 3, 4 ], 
      [ 6, 4, 2 ], [ 7, 0, 3 ], [ 7, 1, 1 ], [ 7, 1, 5 ], [ 7, 2, 3 ], 
      [ 7, 3, 1 ], [ 8, 0, 0 ], [ 8, 0, 4 ], [ 8, 1, 2 ], [ 8, 2, 0 ], 
      [ 9, 0, 1 ] ], 
  [ 1, 2, 2, 1, 2, 2, 1, 2, 2, 1, 1, 1, 1, 4, 1, 5, 5, 1, 4, 2, 2, 1, 3, 4, 
      2, 4, 5, 2, 6, 5, 1, 2, 2, 1, 1, 3, 1, 6, 7, 2, 5, 5, 5, 2, 1, 1, 3, 1, 
      4, 4, 2, 7, 6, 2, 2, 4, 2, 1, 3, 6, 1, 5, 4, 5, 2, 1, 1, 3, 1, 2, 4, 5, 
      1, 2, 2, 1, 3, 4, 1, 2, 1, 1, 1, 2, 1, 1 ] ]

# use AsAlgebra etc.
gap> KappaPerp( l1, ps );
<vector space of dimension 6 over Rationals>
gap> b:= Basis( l1 );
CanonicalBasis( <Lie algebra of dimension 10 over Rationals> )
gap> Print(AdjointMatrix( b, gens[1] ),"\n");
[ [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], 
  [ 0, 0, 0, -2, 0, 0, 0, 0, 0, 0 ], [ 0, 0, 2, 0, 0, 0, 0, 0, 0, 0 ], 
  [ 0, 0, 0, 0, 0, 2, 0, 0, 0, 0 ], [ 0, 0, 0, 0, -2, 0, 0, 0, 0, 0 ], 
  [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], [ 0, 0, 0, 0, 0, 0, 0, 0, -2, 0 ], 
  [ 0, 0, 0, 0, 0, 0, 0, 2, 0, 0 ], [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ] ]
gap> der:= Derivations( b );
<Lie algebra of dimension 11 over Rationals>
gap> IsLieAlgebra( der );
true
gap> IsMatrixSpace( der );
true
gap> Dimension( der );
11
gap> Print(KillingMatrix( b ),"\n");
[ [ -24, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], [ 0, 24, 0, 0, 0, 0, 0, 0, 0, 0 ], 
  [ 0, 0, 0, 0, 12, 0, 0, 0, 0, 0 ], [ 0, 0, 0, 0, 0, -12, 0, 0, 0, 0 ], 
  [ 0, 0, 12, 0, 0, 0, 0, 0, 0, 0 ], [ 0, 0, 0, -12, 0, 0, 0, 0, 0, 0 ], 
  [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], 
  [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ] ]
gap> IsNilpotentElement( l1, gens[1] );
false
gap> IsNilpotentElement( s1, Random( s1 ) );
true
gap> IsRestrictedLieAlgebra( l1 );
false

# PthPowerImages( l1 );
gap> NonNilpotentElement( l1 );
v.1
gap> Print(AdjointBasis( b ),"\n");
Basis( VectorSpace( Rationals, 
[ [ [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], 
      [ 0, 0, 0, -2, 0, 0, 0, 0, 0, 0 ], [ 0, 0, 2, 0, 0, 0, 0, 0, 0, 0 ], 
      [ 0, 0, 0, 0, 0, 2, 0, 0, 0, 0 ], [ 0, 0, 0, 0, -2, 0, 0, 0, 0, 0 ], 
      [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], [ 0, 0, 0, 0, 0, 0, 0, 0, -2, 0 ], 
      [ 0, 0, 0, 0, 0, 0, 0, 2, 0, 0 ], [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ] ], 
  [ [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], 
      [ 0, 0, 2, 0, 0, 0, 0, 0, 0, 0 ], [ 0, 0, 0, 2, 0, 0, 0, 0, 0, 0 ], 
      [ 0, 0, 0, 0, -2, 0, 0, 0, 0, 0 ], [ 0, 0, 0, 0, 0, -2, 0, 0, 0, 0 ], 
      [ 0, 0, 0, 0, 0, 0, 2, 0, 0, 0 ], [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], 
      [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], [ 0, 0, 0, 0, 0, 0, 0, 0, 0, -2 ] ], 
  [ [ 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 ], [ 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 ], 
      [ 0, -2, 0, 0, 0, 0, 0, 0, 0, 0 ], [ -2, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], 
      [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], 
      [ 0, 0, 0, 0, 0, 0, 0, 0, 2, 0 ], [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], 
      [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 ], [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ] ], 
  [ [ 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 ], [ 0, 0, 0, 0, 0, -1, 0, 0, 0, 0 ], 
      [ 2, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], [ 0, -2, 0, 0, 0, 0, 0, 0, 0, 0 ], 
      [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], 
      [ 0, 0, 0, 0, 0, 0, 0, -2, 0, 0 ], [ 0, 0, 0, 0, 0, 0, 0, 0, 0, -1 ], 
      [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ] ], 
  [ [ 0, 0, 0, -1, 0, 0, 0, 0, 0, 0 ], [ 0, 0, -1, 0, 0, 0, 0, 0, 0, 0 ], 
      [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], 
      [ 0, 2, 0, 0, 0, 0, 0, 0, 0, 0 ], [ 2, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], 
      [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], 
      [ 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 ], [ 0, 0, 0, 0, 0, 0, 0, 0, 2, 0 ] ], 
  [ [ 0, 0, -1, 0, 0, 0, 0, 0, 0, 0 ], [ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 ], 
      [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], 
      [ -2, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], [ 0, 2, 0, 0, 0, 0, 0, 0, 0, 0 ], 
      [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], [ 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 ], 
      [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], [ 0, 0, 0, 0, 0, 0, 0, 2, 0, 0 ] ], 
  [ [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], 
      [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], 
      [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], 
      [ 0, -2, 0, 0, 0, 0, 0, 0, 0, 0 ], [ 0, 0, 0, 0, 0, -1, 0, 0, 0, 0 ], 
      [ 0, 0, 0, 0, -1, 0, 0, 0, 0, 0 ], [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ] ], 
  [ [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], 
      [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], 
      [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], 
      [ 0, 0, 0, 2, 0, 0, 0, 0, 0, 0 ], [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], 
      [ -2, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], [ 0, 0, 0, 0, 0, -2, 0, 0, 0, 0 ] ], 
  [ [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], 
      [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], 
      [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], 
      [ 0, 0, -2, 0, 0, 0, 0, 0, 0, 0 ], [ 2, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], 
      [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], [ 0, 0, 0, 0, -2, 0, 0, 0, 0, 0 ] ], 
  [ [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], 
      [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], 
      [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], 
      [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], [ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 ], 
      [ 0, 0, -1, 0, 0, 0, 0, 0, 0, 0 ], [ 0, 2, 0, 0, 0, 0, 0, 0, 0, 0 ] ] 
 ] ), 
[ [ [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], 
      [ 0, 0, 0, -2, 0, 0, 0, 0, 0, 0 ], [ 0, 0, 2, 0, 0, 0, 0, 0, 0, 0 ], 
      [ 0, 0, 0, 0, 0, 2, 0, 0, 0, 0 ], [ 0, 0, 0, 0, -2, 0, 0, 0, 0, 0 ], 
      [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], [ 0, 0, 0, 0, 0, 0, 0, 0, -2, 0 ], 
      [ 0, 0, 0, 0, 0, 0, 0, 2, 0, 0 ], [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ] ], 
  [ [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], 
      [ 0, 0, 2, 0, 0, 0, 0, 0, 0, 0 ], [ 0, 0, 0, 2, 0, 0, 0, 0, 0, 0 ], 
      [ 0, 0, 0, 0, -2, 0, 0, 0, 0, 0 ], [ 0, 0, 0, 0, 0, -2, 0, 0, 0, 0 ], 
      [ 0, 0, 0, 0, 0, 0, 2, 0, 0, 0 ], [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], 
      [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], [ 0, 0, 0, 0, 0, 0, 0, 0, 0, -2 ] ], 
  [ [ 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 ], [ 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 ], 
      [ 0, -2, 0, 0, 0, 0, 0, 0, 0, 0 ], [ -2, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], 
      [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], 
      [ 0, 0, 0, 0, 0, 0, 0, 0, 2, 0 ], [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], 
      [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 ], [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ] ], 
  [ [ 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 ], [ 0, 0, 0, 0, 0, -1, 0, 0, 0, 0 ], 
      [ 2, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], [ 0, -2, 0, 0, 0, 0, 0, 0, 0, 0 ], 
      [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], 
      [ 0, 0, 0, 0, 0, 0, 0, -2, 0, 0 ], [ 0, 0, 0, 0, 0, 0, 0, 0, 0, -1 ], 
      [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ] ], 
  [ [ 0, 0, 0, -1, 0, 0, 0, 0, 0, 0 ], [ 0, 0, -1, 0, 0, 0, 0, 0, 0, 0 ], 
      [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], 
      [ 0, 2, 0, 0, 0, 0, 0, 0, 0, 0 ], [ 2, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], 
      [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], 
      [ 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 ], [ 0, 0, 0, 0, 0, 0, 0, 0, 2, 0 ] ], 
  [ [ 0, 0, -1, 0, 0, 0, 0, 0, 0, 0 ], [ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 ], 
      [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], 
      [ -2, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], [ 0, 2, 0, 0, 0, 0, 0, 0, 0, 0 ], 
      [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], [ 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 ], 
      [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], [ 0, 0, 0, 0, 0, 0, 0, 2, 0, 0 ] ], 
  [ [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], 
      [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], 
      [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], 
      [ 0, -2, 0, 0, 0, 0, 0, 0, 0, 0 ], [ 0, 0, 0, 0, 0, -1, 0, 0, 0, 0 ], 
      [ 0, 0, 0, 0, -1, 0, 0, 0, 0, 0 ], [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ] ], 
  [ [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], 
      [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], 
      [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], 
      [ 0, 0, 0, 2, 0, 0, 0, 0, 0, 0 ], [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], 
      [ -2, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], [ 0, 0, 0, 0, 0, -2, 0, 0, 0, 0 ] ], 
  [ [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], 
      [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], 
      [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], 
      [ 0, 0, -2, 0, 0, 0, 0, 0, 0, 0 ], [ 2, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], 
      [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], [ 0, 0, 0, 0, -2, 0, 0, 0, 0, 0 ] ], 
  [ [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], 
      [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], 
      [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], 
      [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], [ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 ], 
      [ 0, 0, -1, 0, 0, 0, 0, 0, 0, 0 ], [ 0, 2, 0, 0, 0, 0, 0, 0, 0, 0 ] ] 
 ] )

#############################################################################
##
##  Expl. 3: Second example of Willem de Graaf
##
gap> T2:= EmptySCTable( 15, 0, "antisymmetric" );;
gap> SetEntrySCTable( T2, 1, 2, [-1,5] );
gap> SetEntrySCTable( T2, 1, 4, [-1,6] );
gap> SetEntrySCTable( T2, 1, 5, [-2,1] );
gap> SetEntrySCTable( T2, 1, 6, [-6,1] );
gap> SetEntrySCTable( T2, 1, 7, [-1,9] );
gap> SetEntrySCTable( T2, 1, 8, [-1,10] );
gap> SetEntrySCTable( T2, 1, 11, [3,5,1,6] );
gap> SetEntrySCTable( T2, 1, 12, [-1,13] );
gap> SetEntrySCTable( T2, 1, 13, [8,1] );
gap> SetEntrySCTable( T2, 1, 14, [4,1,1,10] );
gap> SetEntrySCTable( T2, 1, 15, [-3,9,1,10] );
gap> SetEntrySCTable( T2, 2, 3, [-1,7] );
gap> SetEntrySCTable( T2, 2, 5, [2,2] );
gap> SetEntrySCTable( T2, 2, 6, [-1,11] );
gap> SetEntrySCTable( T2, 2, 7, [-2,2] );
gap> SetEntrySCTable( T2, 2, 8, [-1,12] );
gap> SetEntrySCTable( T2, 2, 9, [-1,5,1,7] );
gap> SetEntrySCTable( T2, 2, 10, [-1,14] );
gap> SetEntrySCTable( T2, 2, 13, [-4,2,1,12] );
gap> SetEntrySCTable( T2, 2, 14, [-8,2] );
gap> SetEntrySCTable( T2, 2, 15, [-4,2,1,11] );
gap> SetEntrySCTable( T2, 3, 4, [-1,8] );
gap> SetEntrySCTable( T2, 3, 5, [1,9] );
gap> SetEntrySCTable( T2, 3, 6, [-1,10] );
gap> SetEntrySCTable( T2, 3, 7, [2,3] );
gap> SetEntrySCTable( T2, 3, 8, [-2,3] );
gap> SetEntrySCTable( T2, 3, 11, [1,5,1,6,-3,7,1,8,1,13] );
gap> SetEntrySCTable( T2, 3, 12, [-1,7,1,8] );
gap> SetEntrySCTable( T2, 3, 13, [-1,9,1,10] );
gap> SetEntrySCTable( T2, 3, 14, [4,3,1,10] );
gap> SetEntrySCTable( T2, 3, 15, [8,3] );
gap> SetEntrySCTable( T2, 4, 5, [-1,11] );
gap> SetEntrySCTable( T2, 4, 6, [6,4] );
gap> SetEntrySCTable( T2, 4, 7, [1,12] );
gap> SetEntrySCTable( T2, 4, 8, [2,4] );
gap> SetEntrySCTable( T2, 4, 9, [-1,5,-1,6,3,7,-1,8,-1,14] );
gap> SetEntrySCTable( T2, 4, 10, [1,6,3,8] );
gap> SetEntrySCTable( T2, 4, 13, [-4,4,3,12] );
gap> SetEntrySCTable( T2, 4, 14, [1,11,3,12] );
gap> SetEntrySCTable( T2, 4, 15, [-4,4,1,11] );
gap> SetEntrySCTable( T2, 5, 6, [-3,5,1,6] );
gap> SetEntrySCTable( T2, 5, 7, [-1,5,-1,7] );
gap> SetEntrySCTable( T2, 5, 8, [-1,13,1,14] );
gap> SetEntrySCTable( T2, 5, 9, [-2,1,1,9] );
gap> SetEntrySCTable( T2, 5, 10, [4,1,1,10] );
gap> SetEntrySCTable( T2, 5, 11, [6,2,-1,11] );
gap> SetEntrySCTable( T2, 5, 12, [4,2,-1,12] );
gap> SetEntrySCTable( T2, 5, 13, [4,5,1,13] );
gap> SetEntrySCTable( T2, 5, 14, [-4,5,-1,14] );
gap> SetEntrySCTable( T2, 5, 15, [-4,5,-1,6,-3,7,-1,14] );
gap> SetEntrySCTable( T2, 6, 7, [1,5,1,6,-3,7,1,8,1,13,1,14] );
gap> SetEntrySCTable( T2, 6, 8, [1,6,-3,8] );
gap> SetEntrySCTable( T2, 6, 9, [-4,1,3,9] );
gap> SetEntrySCTable( T2, 6, 10, [6,1,3,10] );
gap> SetEntrySCTable( T2, 6, 11, [6,4,-3,11] );
gap> SetEntrySCTable( T2, 6, 12, [4,4,-3,12] );
gap> SetEntrySCTable( T2, 6, 13, [4,6,3,13] );
gap> SetEntrySCTable( T2, 6, 14, [-3,5,4,6,3,8,3,13] );
gap> SetEntrySCTable( T2, 6, 15, [-1,6,-9,7,6,8,3,14] );
gap> SetEntrySCTable( T2, 7, 8, [-1,7,-1,8] );
gap> SetEntrySCTable( T2, 7, 9, [2,3,-1,9] );
gap> SetEntrySCTable( T2, 7, 10, [-4,3,-1,10] );
gap> SetEntrySCTable( T2, 7, 11, [-4,2,1,11] );
gap> SetEntrySCTable( T2, 7, 12, [-2,2,1,12] );
gap> SetEntrySCTable( T2, 7, 13, [-1,5,-4,7,1,8,1,14] );
gap> SetEntrySCTable( T2, 7, 14, [-4,7,1,14] );
gap> SetEntrySCTable( T2, 7, 15, [1,5,1,6,1,7,1,8,1,13] );
gap> SetEntrySCTable( T2, 8, 9, [-4,3,1,9] );
gap> SetEntrySCTable( T2, 8, 10, [6,3,1,10] );
gap> SetEntrySCTable( T2, 8, 11, [4,4,-1,11] );
gap> SetEntrySCTable( T2, 8, 12, [2,4,-1,12] );
gap> SetEntrySCTable( T2, 8, 13, [1,5,2,6,-3,8,1,14] );
gap> SetEntrySCTable( T2, 8, 14, [-1,5,6,7,3,8,-1,13] );
gap> SetEntrySCTable( T2, 8, 15, [-1,5,-1,6,3,7,3,8,-1,13] );
gap> SetEntrySCTable( T2, 9, 11, [-5,5,-2,6,6,7,-1,8,-1,13,-1,14] );
gap> SetEntrySCTable( T2, 9, 12, [-1,5,4,7,-1,8,1,13,-1,14] );
gap> SetEntrySCTable( T2, 9, 13, [-6,1,4,9] );
gap> SetEntrySCTable( T2, 9, 14, [-4,1,-4,3,-2,10] );
gap> SetEntrySCTable( T2, 9, 15, [-10,3,4,9] );
gap> SetEntrySCTable( T2, 10, 11, [3,5,4,6,3,8,3,13,-3,14] );
gap> SetEntrySCTable( T2, 10, 12, [-1,5,3,8,-1,13,-1,14] );
gap> SetEntrySCTable( T2, 10, 13, [10,1,4,10] );
gap> SetEntrySCTable( T2, 10, 14, [6,1,6,3,6,9,8,10] );
gap> SetEntrySCTable( T2, 10, 15, [18,3,4,10] );
gap> SetEntrySCTable( T2, 11, 13, [12,2,4,4,-6,12] );
gap> SetEntrySCTable( T2, 11, 14, [18,2,-4,11] );
gap> SetEntrySCTable( T2, 11, 15, [6,2,6,4,-8,11,6,12] );
gap> SetEntrySCTable( T2, 12, 13, [6,2,2,4,2,11,-8,12] );
gap> SetEntrySCTable( T2, 12, 14, [10,2,-4,12] );
gap> SetEntrySCTable( T2, 12, 15, [4,2,4,4,-2,11] );
gap> SetEntrySCTable( T2, 13, 14, [11,5,-3,8,1,13,1,14] );
gap> SetEntrySCTable( T2, 13, 15, [8,5,6,6,12,7,-6,8,4,13,-2,14] );
gap> SetEntrySCTable( T2, 14, 15, [3,5,4,6,18,7,3,8,3,13,-3,14] );
gap> l2:= AlgebraByStructureConstants( Rationals, T2 );
<algebra of dimension 15 over Rationals>
gap> IsLieAlgebra( l2 );
true
gap> IsCommutative( l2 );
false
gap> IsAssociative( l2 );
false
gap> Dimension( l2 );
15
gap> ucs:= LieUpperCentralSeries( l2 );
[ <two-sided ideal in <Lie algebra of dimension 15 over Rationals>, 
      (dimension 1)>, <Lie algebra of dimension 0 over Rationals> ]
gap> lcs:= LieLowerCentralSeries( l2 );
[ <Lie algebra of dimension 15 over Rationals>, 
  <Lie algebra of dimension 14 over Rationals> ]
gap> IsLieSolvable( l2 );
false
gap> IsLieNilpotent( l2 );
false
gap> IsLieAbelian( l2 );
false
gap> LieCentre( l2 );
<two-sided ideal in <Lie algebra of dimension 15 over Rationals>, (dimension 1
 )>
gap> gens:= GeneratorsOfAlgebra( l2 );;
gap> Print(gens,"\n");
[ v.1, v.2, v.3, v.4, v.5, v.6, v.7, v.8, v.9, v.10, v.11, v.12, v.13, v.14, 
  v.15 ]
gap> s2:= Subalgebra( l2, [ gens[1] ] );
<Lie algebra over Rationals, with 1 generator>
gap> Dimension( s2 );
1
gap> IsLieSolvable( s2 );
true
gap> IsLieNilpotent( s2 );
true
gap> IsLieAbelian( s2 );
true
gap> LieCentre( s2 );
<two-sided ideal in <Lie algebra of dimension 1 over Rationals>, (dimension 1
 )>
gap> LieCentralizer( l2, s2 );
<Lie algebra of dimension 9 over Rationals>
gap> ps:= ProductSpace( l2, s2 );
<vector space of dimension 6 over Rationals>
gap> LieCentralizer( l2, ps );
<Lie algebra of dimension 1 over Rationals>
gap> LieNormalizer( l2, ps );
<Lie algebra of dimension 10 over Rationals>
gap> Print( KappaPerp( l2, ps ), "\n" );
VectorSpace( Rationals, [ v.1, v.3, (-3)*v.5+v.6, v.5+(3)*v.7+v.8, v.9, v.10, 
  (3)*v.2+v.4+v.11, v.2+v.4+v.12, (4)*v.5+v.13, v.5+(-3)*v.7+v.14, 
  (-1)*v.5+(-6)*v.7+v.15 ] )
gap> b:= Basis( l2 );
CanonicalBasis( <Lie algebra of dimension 15 over Rationals> )
gap> Print(AdjointMatrix( b, gens[1] ),"\n");
[ [ 0, 0, 0, 0, -2, -6, 0, 0, 0, 0, 0, 0, 8, 4, 0 ], 
  [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], 
  [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], 
  [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], 
  [ 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0 ], 
  [ 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 ], 
  [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], 
  [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], 
  [ 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, -3 ], 
  [ 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 1, 1 ], 
  [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], 
  [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], 
  [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0 ], 
  [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], 
  [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ] ]
gap> der:= Derivations( b );
<Lie algebra of dimension 17 over Rationals>
gap> IsLieAlgebra( der );
true
gap> IsMatrixSpace( der );
true
gap> Dimension( der );
17
gap> Print(KillingMatrix( b ),"\n");
[ [ 0, -8, 0, -24, 0, 0, 0, 0, 0, 0, 48, 32, 0, 0, 0 ], 
  [ -8, 0, -8, 0, 0, 0, 0, 0, 16, -32, 0, 0, 0, 0, 0 ], 
  [ 0, -8, 0, -8, 0, 0, 0, 0, 0, 0, 32, 16, 0, 0, 0 ], 
  [ -24, 0, -8, 0, 0, 0, 0, 0, 32, -48, 0, 0, 0, 0, 0 ], 
  [ 0, 0, 0, 0, 16, 48, -16, 32, 0, 0, 0, 0, -64, -64, -80 ], 
  [ 0, 0, 0, 0, 48, 144, -32, 48, 0, 0, 0, 0, -192, -144, -144 ], 
  [ 0, 0, 0, 0, -16, -32, 16, -16, 0, 0, 0, 0, 48, 64, 64 ], 
  [ 0, 0, 0, 0, 32, 48, -16, 16, 0, 0, 0, 0, -80, -80, -64 ], 
  [ 0, 16, 0, 32, 0, 0, 0, 0, 0, 0, -80, -48, 0, 0, 0 ], 
  [ 0, -32, 0, -48, 0, 0, 0, 0, 0, 0, 144, 80, 0, 0, 0 ], 
  [ 48, 0, 32, 0, 0, 0, 0, 0, -80, 144, 0, 0, 0, 0, 0 ], 
  [ 32, 0, 16, 0, 0, 0, 0, 0, -48, 80, 0, 0, 0, 0, 0 ], 
  [ 0, 0, 0, 0, -64, -192, 48, -80, 0, 0, 0, 0, 256, 208, 224 ], 
  [ 0, 0, 0, 0, -64, -144, 64, -80, 0, 0, 0, 0, 208, 256, 272 ], 
  [ 0, 0, 0, 0, -80, -144, 64, -64, 0, 0, 0, 0, 224, 272, 256 ] ]
gap> IsNilpotentElement( l2, gens[1] );
true
gap> IsNilpotentElement( s2, Random( s2 ) );
true
gap> IsRestrictedLieAlgebra( l2 );
false
gap> NonNilpotentElement( l2 );
v.5

#############################################################################
##
##  Expl. 4: Third example of Willem de Graaf (solvable Lie algebra)
##
gap> T3:= EmptySCTable( 14, 0, "antisymmetric" );;
gap> SetEntrySCTable( T3, 1, 5, [1,2] );
gap> SetEntrySCTable( T3, 1, 6, [1,3] );
gap> SetEntrySCTable( T3, 1, 7, [1,4] );
gap> SetEntrySCTable( T3, 1, 11, [-2,1] );
gap> SetEntrySCTable( T3, 1, 12, [-1,1] );
gap> SetEntrySCTable( T3, 1, 13, [-1,1] );
gap> SetEntrySCTable( T3, 1, 14, [-1,1] );
gap> SetEntrySCTable( T3, 2, 8, [1,3] );
gap> SetEntrySCTable( T3, 2, 9, [1,4] );
gap> SetEntrySCTable( T3, 2, 11, [-1,2] );
gap> SetEntrySCTable( T3, 2, 12, [-2,2] );
gap> SetEntrySCTable( T3, 2, 13, [-1,2] );
gap> SetEntrySCTable( T3, 2, 14, [-1,2] );
gap> SetEntrySCTable( T3, 3, 10, [1,4] );
gap> SetEntrySCTable( T3, 3, 11, [-1,3] );
gap> SetEntrySCTable( T3, 3, 12, [-1,3] );
gap> SetEntrySCTable( T3, 3, 13, [-2,3] );
gap> SetEntrySCTable( T3, 3, 14, [-1,3] );
gap> SetEntrySCTable( T3, 4, 11, [-1,4] );
gap> SetEntrySCTable( T3, 4, 12, [-1,4] );
gap> SetEntrySCTable( T3, 4, 13, [-1,4] );
gap> SetEntrySCTable( T3, 4, 14, [-2,4] );
gap> SetEntrySCTable( T3, 5, 8, [1,6] );
gap> SetEntrySCTable( T3, 5, 9, [1,7] );
gap> SetEntrySCTable( T3, 5, 11, [1,5] );
gap> SetEntrySCTable( T3, 5, 12, [-1,5] );
gap> SetEntrySCTable( T3, 6, 10, [1,7] );
gap> SetEntrySCTable( T3, 6, 11, [1,6] );
gap> SetEntrySCTable( T3, 6, 13, [-1,6] );
gap> SetEntrySCTable( T3, 7, 11, [1,7] );
gap> SetEntrySCTable( T3, 7, 14, [-1,7] );
gap> SetEntrySCTable( T3, 8, 10, [1,9] );
gap> SetEntrySCTable( T3, 8, 12, [1,8] );
gap> SetEntrySCTable( T3, 8, 13, [-1,8] );
gap> SetEntrySCTable( T3, 9, 12, [1,9] );
gap> SetEntrySCTable( T3, 9, 14, [-1,9] );
gap> SetEntrySCTable( T3, 10, 13, [1,10] );
gap> SetEntrySCTable( T3, 10, 14, [-1,10] );
gap> l3:= AlgebraByStructureConstants( Rationals, T3 );
<algebra of dimension 14 over Rationals>
gap> IsLieAlgebra( l3 );
true
gap> IsCommutative( l3 );
false
gap> IsAssociative( l3 );
false
gap> Dimension( l3 );
14
gap> ucs:= LieUpperCentralSeries( l3 );
[ <Lie algebra of dimension 0 over Rationals> ]
gap> lcs:= LieLowerCentralSeries( l3 );
[ <Lie algebra of dimension 14 over Rationals>, 
  <Lie algebra of dimension 10 over Rationals> ]
gap> IsLieSolvable( l3 );
true
gap> IsLieNilpotent( l3 );
false
gap> IsLieAbelian( l3 );
false
gap> LieCentre( l3 );
<Lie algebra of dimension 0 over Rationals>
gap> gens:= GeneratorsOfAlgebra( l3 );
[ v.1, v.2, v.3, v.4, v.5, v.6, v.7, v.8, v.9, v.10, v.11, v.12, v.13, v.14 ]
gap> s3:= Subalgebra( l3, [ gens[1] ] );
<Lie algebra over Rationals, with 1 generator>
gap> Dimension( s3 );
1
gap> IsLieSolvable( s3 );
true
gap> IsLieNilpotent( s3 );
true
gap> IsLieAbelian( s3 );
true
gap> LieCentre( s3 );
<two-sided ideal in <Lie algebra of dimension 1 over Rationals>, (dimension 1
 )>
gap> LieCentralizer( l3, s3 );
<Lie algebra of dimension 10 over Rationals>
gap> ps:= ProductSpace( l3, s3 );;
gap> Print( ps, "\n" );
VectorSpace( Rationals, [ v.2, v.3, v.4, v.1 ] )
gap> LieCentralizer( l3, ps );
<Lie algebra of dimension 4 over Rationals>
gap> LieNormalizer( l3, ps );
<Lie algebra of dimension 14 over Rationals>
gap> KappaPerp( l3, ps );
<vector space of dimension 14 over Rationals>
gap> b:= Basis( l3 );
CanonicalBasis( <Lie algebra of dimension 14 over Rationals> )
gap> Print(AdjointMatrix( b, gens[1] ),"\n");
[ [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2, -1, -1, -1 ], 
  [ 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], 
  [ 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 ], 
  [ 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 ], 
  [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], 
  [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], 
  [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], 
  [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], 
  [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], 
  [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], 
  [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], 
  [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], 
  [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], 
  [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ] ]
gap> der:= Derivations( b );
<Lie algebra of dimension 14 over Rationals>
gap> IsLieAlgebra( der );
true
gap> IsMatrixSpace( der );
true
gap> Dimension( der );
14
gap> Print(KillingMatrix( b ),"\n");
[ [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], 
  [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], 
  [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], 
  [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], 
  [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], 
  [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], 
  [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], 
  [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], 
  [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], 
  [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], 
  [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 5, 5, 5 ], 
  [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 10, 5, 5 ], 
  [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 5, 10, 5 ], 
  [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 5, 5, 10 ] ]
gap> IsNilpotentElement( l3, gens[1] );
true
gap> IsNilpotentElement( s3, Random( s3 ) );
true
gap> IsRestrictedLieAlgebra( l3 );
false
gap> NonNilpotentElement( l3 );
v.11

#############################################################################
##
##  Expl. 5: Trivial s.c. algebra
##
gap> t:= AlgebraByStructureConstants( Rationals, [ 0, 0 ] );
<algebra of dimension 0 over Rationals>
gap> z:= Zero( t );
<zero of trivial s.c. algebra>
gap> String(z);
"<zero of trivial s.c. algebra>"
gap> Random( t );
<zero of trivial s.c. algebra>
gap> b:=Basis( t );
CanonicalBasis( <algebra of dimension 0 over Rationals> )
gap> coeff:= Coefficients( b, z );
<empty row vector>
gap> LinearCombination( b, coeff );
<zero of trivial s.c. algebra>
gap> LinearCombination( b, [] );
<zero of trivial s.c. algebra>
gap> c:= Centre( t );
<algebra of dimension 0 over Rationals>
gap> c = t;
true

#############################################################################
##
##  Some bugfixes
##
gap> a:= Algebra( Rationals, [ [ [ 0, 0 ], [ 1, 0 ] ] ] );;
gap> sc:= Image( IsomorphismSCAlgebra( a ) );;
gap> Dimension( RadicalOfAlgebra( sc ) );
1

#############################################################################
##
##  Test various functions
##

#
gap> QuaternionAlgebra();
Error, usage: QuaternionAlgebra( <F>[, <a>, <b>] ) for a ring <F>
gap> A:= QuaternionAlgebra( GF(5) );
<algebra-with-one of dimension 4 over GF(5)>
gap> A = QuaternionAlgebra( [Z(5)] );
true
gap> IsDivisionRing( QuaternionAlgebra( Rationals ) );
true
gap> IsDivisionRing( QuaternionAlgebra( CF(4) ) );
false

#
gap> A:= QuaternionAlgebra( Rationals, 2, 3 );
<algebra-with-one of dimension 4 over Rationals>
gap> A= QuaternionAlgebra( [1], 2, 3 );
true
gap> A= QuaternionAlgebra( [1], 2, 5 );
false
gap> gens:= GeneratorsOfAlgebra( A );
[ e, i, j, k ]
gap> List(gens, x -> x^2);
[ e, (2)*e, (3)*e, (-6)*e ]

#
gap> A:= QuaternionAlgebra( Rationals );
<algebra-with-one of dimension 4 over Rationals>
gap> gens:= GeneratorsOfAlgebra( A );
[ e, i, j, k ]
gap> v:= Sum( gens );
e+i+j+k
gap> i:= gens[2];
i
gap> ComplexConjugate(v);
e+(-1)*i+(-1)*j+(-1)*k
gap> RealPart(v);
e
gap> (v - ComplexConjugate( v )) / (2*i);
e+(-1)*j+k

#
gap> ComplexificationQuat( gens{[1]} );
[ 1, 0 ]
gap> ComplexificationQuat( gens{[2]} );
[ E(4), 0 ]
gap> ComplexificationQuat( gens{[3]} );
[ 0, 1 ]
gap> ComplexificationQuat( gens{[4]} );
[ 0, E(4) ]

#
gap> U:=Subspace(A, gens{[1,2]});
<vector space over Rationals, with 2 generators>
gap> V:=Subspace(A, gens{[2,3]});
<vector space over Rationals, with 2 generators>
gap> W:=Subspace(A, []);
<vector space of dimension 0 over Rationals>
gap> Intersection2(U,V);
<vector space of dimension 1 over Rationals>
gap> Intersection2(U,W);
<vector space of dimension 0 over Rationals>
gap> Intersection2(V,W);
<vector space of dimension 0 over Rationals>

#
gap> A:= OctaveAlgebra(Rationals);
<algebra of dimension 8 over Rationals>
gap> v:= Sum( GeneratorsOfAlgebra( A ) );
s1+t1+s2+t2+s3+t3+s4+t4
gap> List( GeneratorsOfAlgebra( A ), x -> x^2 );
[ s1, t1, 0*s1, 0*s1, 0*s1, 0*s1, 0*s1, 0*s1 ]

#############################################################################
gap> STOP_TEST("algsc.tst");

[ Verzeichnis aufwärts0.8unsichere Verbindung  Übersetzung europäischer Sprachen durch Browser  ]

                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

Software

     Produkte
     Quellcodebibliothek

Aktivitäten

     Artikel über Sicherheit
     Anleitung zur Aktivierung von SSL

Muße

     Gedichte
     Musik
     Bilder

Jenseits des Üblichen ....

Besucherstatistik

Besucherstatistik

Monitoring

Montastic status badge