Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/GAP/tst/testinstall/   (GAP Algebra Version 4.15.1©)  Datei vom 18.9.2025 mit Größe 34 kB image not shown  

Quelle  algsc.tst   Sprache: unbekannt

 
Spracherkennung für: .tst vermutete Sprache: Unknown {[0] [0] [0]} [Methode: Schwerpunktbildung, einfache Gewichte, sechs Dimensionen]

#@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]]],
>            00 ];;
gap> id:= IdentityFromSCTable( T0 );
1000 ]
gap> v:= [ 0111 ];;
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, [ 0101 ] * Z(2) );
Error, family of <coeffs> does not fit to <Fam>
gap> ObjByExtRep( fam, [ 010 ] );
Error, <coeffs> must be a list of length 4
gap> v:= ObjByExtRep( fam, [ 0101 ] );
v.2+v.4
gap> t:= AlgebraByStructureConstants( Rationals, [ 00 ] );
<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 );
0101 ]
gap> w:= LinearCombination( b, [ 1234 ] );
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, [ 0101 ] * Z(2) );
Error, family of <coeffs> does not fit to <Fam>
gap> ObjByExtRep( fam, [ 010 ] );
Error, <coeffs> must be a list of length 4
gap> v:= ObjByExtRep( fam, [ 0101 ] );
v.2+v.4
gap> t:= AlgebraByStructureConstants( Rationals, [ 00 ] );
<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 );
0101 ]
gap> w:= LinearCombination( b, [ 1234 ] );
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,[ 111 ])>
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( 100, "antisymmetric" );;
gap> SetEntrySCTable( T1, 13, [2,4] );
gap> SetEntrySCTable( T1, 14, [-2,3] );
gap> SetEntrySCTable( T1, 15, [-2,6] );
gap> SetEntrySCTable( T1, 16, [2,5] );
gap> SetEntrySCTable( T1, 18, [2,9] );
gap> SetEntrySCTable( T1, 19, [-2,8] );
gap> SetEntrySCTable( T1, 23, [2,3] );
gap> SetEntrySCTable( T1, 24, [2,4] );
gap> SetEntrySCTable( T1, 25, [-2,5] );
gap> SetEntrySCTable( T1, 26, [-2,6] );
gap> SetEntrySCTable( T1, 27, [2,7] );
gap> SetEntrySCTable( T1, 210, [-2,10] );
gap> SetEntrySCTable( T1, 35, [1,2] );
gap> SetEntrySCTable( T1, 36, [1,1] );
gap> SetEntrySCTable( T1, 39, [2,7] );
gap> SetEntrySCTable( T1, 310, [1,9] );
gap> SetEntrySCTable( T1, 45, [1,1] );
gap> SetEntrySCTable( T1, 46, [-1,2] );
gap> SetEntrySCTable( T1, 48, [-2,7] );
gap> SetEntrySCTable( T1, 410, [-1,8] );
gap> SetEntrySCTable( T1, 57, [1,9] );
gap> SetEntrySCTable( T1, 59, [2,10] );
gap> SetEntrySCTable( T1, 67, [1,8] );
gap> SetEntrySCTable( T1, 68, [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 );
[ [ [ 008 ], [ 016 ], [ 024 ], [ 028 ], [ 032 ], 
      [ 036 ], [ 040 ], [ 044 ], [ 052 ], [ 060 ], 
      [ 105 ], [ 109 ], [ 113 ], [ 117 ], [ 121 ], 
      [ 125 ], [ 133 ], [ 137 ], [ 141 ], [ 145 ], 
      [ 153 ], [ 161 ], [ 206 ], [ 214 ], [ 218 ], 
      [ 222 ], [ 226 ], [ 230 ], [ 234 ], [ 242 ], 
      [ 246 ], [ 250 ], [ 254 ], [ 262 ], [ 303 ], 
      [ 307 ], [ 311 ], [ 315 ], [ 323 ], [ 327 ], 
      [ 331 ], [ 335 ], [ 343 ], [ 351 ], [ 355 ], 
      [ 363 ], [ 404 ], [ 408 ], [ 412 ], [ 416 ], 
      [ 420 ], [ 424 ], [ 432 ], [ 436 ], [ 440 ], 
      [ 444 ], [ 452 ], [ 501 ], [ 505 ], [ 513 ], 
      [ 517 ], [ 521 ], [ 525 ], [ 533 ], [ 541 ], 
      [ 545 ], [ 553 ], [ 602 ], [ 606 ], [ 610 ], 
      [ 614 ], [ 622 ], [ 626 ], [ 630 ], [ 634 ], 
      [ 642 ], [ 703 ], [ 711 ], [ 715 ], [ 723 ], 
      [ 731 ], [ 800 ], [ 804 ], [ 812 ], [ 820 ], 
      [ 901 ] ], 
  [ 122122122111141551422134
      245265122113167255521131
      442762242136154521131245
      12213412111211 ] ]

# 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");
[ [ 0000000000 ], [ 0000000000 ], 
  [ 000, -2000000 ], [ 0020000000 ], 
  [ 0000020000 ], [ 0000, -200000 ], 
  [ 0000000000 ], [ 00000000, -20 ], 
  [ 0000000200 ], [ 0000000000 ] ]
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");
[ [ -24000000000 ], [ 02400000000 ], 
  [ 00001200000 ], [ 00000, -120000 ], 
  [ 00120000000 ], [ 000, -12000000 ], 
  [ 0000000000 ], [ 0000000000 ], 
  [ 0000000000 ], [ 0000000000 ] ]
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, 
[ [ [ 0000000000 ], [ 0000000000 ], 
      [ 000, -2000000 ], [ 0020000000 ], 
      [ 0000020000 ], [ 0000, -200000 ], 
      [ 0000000000 ], [ 00000000, -20 ], 
      [ 0000000200 ], [ 0000000000 ] ], 
  [ [ 0000000000 ], [ 0000000000 ], 
      [ 0020000000 ], [ 0002000000 ], 
      [ 0000, -200000 ], [ 00000, -20000 ], 
      [ 0000002000 ], [ 0000000000 ], 
      [ 0000000000 ], [ 000000000, -2 ] ], 
  [ [ 0000010000 ], [ 0000100000 ], 
      [ 0, -200000000 ], [ -2000000000 ], 
      [ 0000000000 ], [ 0000000000 ], 
      [ 0000000020 ], [ 0000000000 ], 
      [ 0000000001 ], [ 0000000000 ] ], 
  [ [ 0000100000 ], [ 00000, -10000 ], 
      [ 2000000000 ], [ 0, -200000000 ], 
      [ 0000000000 ], [ 0000000000 ], 
      [ 0000000, -200 ], [ 000000000, -1 ], 
      [ 0000000000 ], [ 0000000000 ] ], 
  [ [ 000, -1000000 ], [ 00, -10000000 ], 
      [ 0000000000 ], [ 0000000000 ], 
      [ 0200000000 ], [ 2000000000 ], 
      [ 0000000000 ], [ 0000000000 ], 
      [ 0000001000 ], [ 0000000020 ] ], 
  [ [ 00, -10000000 ], [ 0001000000 ], 
      [ 0000000000 ], [ 0000000000 ], 
      [ -2000000000 ], [ 0200000000 ], 
      [ 0000000000 ], [ 0000001000 ], 
      [ 0000000000 ], [ 0000000200 ] ], 
  [ [ 0000000000 ], [ 0000000000 ], 
      [ 0000000000 ], [ 0000000000 ], 
      [ 0000000000 ], [ 0000000000 ], 
      [ 0, -200000000 ], [ 00000, -10000 ], 
      [ 0000, -100000 ], [ 0000000000 ] ], 
  [ [ 0000000000 ], [ 0000000000 ], 
      [ 0000000000 ], [ 0000000000 ], 
      [ 0000000000 ], [ 0000000000 ], 
      [ 0002000000 ], [ 0000000000 ], 
      [ -2000000000 ], [ 00000, -20000 ] ], 
  [ [ 0000000000 ], [ 0000000000 ], 
      [ 0000000000 ], [ 0000000000 ], 
      [ 0000000000 ], [ 0000000000 ], 
      [ 00, -20000000 ], [ 2000000000 ], 
      [ 0000000000 ], [ 0000, -200000 ] ], 
  [ [ 0000000000 ], [ 0000000000 ], 
      [ 0000000000 ], [ 0000000000 ], 
      [ 0000000000 ], [ 0000000000 ], 
      [ 0000000000 ], [ 0001000000 ], 
      [ 00, -10000000 ], [ 0200000000 ] ] 
 ] ), 
[ [ [ 0000000000 ], [ 0000000000 ], 
      [ 000, -2000000 ], [ 0020000000 ], 
      [ 0000020000 ], [ 0000, -200000 ], 
      [ 0000000000 ], [ 00000000, -20 ], 
      [ 0000000200 ], [ 0000000000 ] ], 
  [ [ 0000000000 ], [ 0000000000 ], 
      [ 0020000000 ], [ 0002000000 ], 
      [ 0000, -200000 ], [ 00000, -20000 ], 
      [ 0000002000 ], [ 0000000000 ], 
      [ 0000000000 ], [ 000000000, -2 ] ], 
  [ [ 0000010000 ], [ 0000100000 ], 
      [ 0, -200000000 ], [ -2000000000 ], 
      [ 0000000000 ], [ 0000000000 ], 
      [ 0000000020 ], [ 0000000000 ], 
      [ 0000000001 ], [ 0000000000 ] ], 
  [ [ 0000100000 ], [ 00000, -10000 ], 
      [ 2000000000 ], [ 0, -200000000 ], 
      [ 0000000000 ], [ 0000000000 ], 
      [ 0000000, -200 ], [ 000000000, -1 ], 
      [ 0000000000 ], [ 0000000000 ] ], 
  [ [ 000, -1000000 ], [ 00, -10000000 ], 
      [ 0000000000 ], [ 0000000000 ], 
      [ 0200000000 ], [ 2000000000 ], 
      [ 0000000000 ], [ 0000000000 ], 
      [ 0000001000 ], [ 0000000020 ] ], 
  [ [ 00, -10000000 ], [ 0001000000 ], 
      [ 0000000000 ], [ 0000000000 ], 
      [ -2000000000 ], [ 0200000000 ], 
      [ 0000000000 ], [ 0000001000 ], 
      [ 0000000000 ], [ 0000000200 ] ], 
  [ [ 0000000000 ], [ 0000000000 ], 
      [ 0000000000 ], [ 0000000000 ], 
      [ 0000000000 ], [ 0000000000 ], 
      [ 0, -200000000 ], [ 00000, -10000 ], 
      [ 0000, -100000 ], [ 0000000000 ] ], 
  [ [ 0000000000 ], [ 0000000000 ], 
      [ 0000000000 ], [ 0000000000 ], 
      [ 0000000000 ], [ 0000000000 ], 
      [ 0002000000 ], [ 0000000000 ], 
      [ -2000000000 ], [ 00000, -20000 ] ], 
  [ [ 0000000000 ], [ 0000000000 ], 
      [ 0000000000 ], [ 0000000000 ], 
      [ 0000000000 ], [ 0000000000 ], 
      [ 00, -20000000 ], [ 2000000000 ], 
      [ 0000000000 ], [ 0000, -200000 ] ], 
  [ [ 0000000000 ], [ 0000000000 ], 
      [ 0000000000 ], [ 0000000000 ], 
      [ 0000000000 ], [ 0000000000 ], 
      [ 0000000000 ], [ 0001000000 ], 
      [ 00, -10000000 ], [ 0200000000 ] ] 
 ] )

#############################################################################
##
##  Expl. 3: Second example of Willem de Graaf
##
gap> T2:= EmptySCTable( 150, "antisymmetric" );;
gap> SetEntrySCTable( T2, 12, [-1,5] );
gap> SetEntrySCTable( T2, 14, [-1,6] );
gap> SetEntrySCTable( T2, 15, [-2,1] );
gap> SetEntrySCTable( T2, 16, [-6,1] );
gap> SetEntrySCTable( T2, 17, [-1,9] );
gap> SetEntrySCTable( T2, 18, [-1,10] );
gap> SetEntrySCTable( T2, 111, [3,5,1,6] );
gap> SetEntrySCTable( T2, 112, [-1,13] );
gap> SetEntrySCTable( T2, 113, [8,1] );
gap> SetEntrySCTable( T2, 114, [4,1,1,10] );
gap> SetEntrySCTable( T2, 115, [-3,9,1,10] );
gap> SetEntrySCTable( T2, 23, [-1,7] );
gap> SetEntrySCTable( T2, 25, [2,2] );
gap> SetEntrySCTable( T2, 26, [-1,11] );
gap> SetEntrySCTable( T2, 27, [-2,2] );
gap> SetEntrySCTable( T2, 28, [-1,12] );
gap> SetEntrySCTable( T2, 29, [-1,5,1,7] );
gap> SetEntrySCTable( T2, 210, [-1,14] );
gap> SetEntrySCTable( T2, 213, [-4,2,1,12] );
gap> SetEntrySCTable( T2, 214, [-8,2] );
gap> SetEntrySCTable( T2, 215, [-4,2,1,11] );
gap> SetEntrySCTable( T2, 34, [-1,8] );
gap> SetEntrySCTable( T2, 35, [1,9] );
gap> SetEntrySCTable( T2, 36, [-1,10] );
gap> SetEntrySCTable( T2, 37, [2,3] );
gap> SetEntrySCTable( T2, 38, [-2,3] );
gap> SetEntrySCTable( T2, 311, [1,5,1,6,-3,7,1,8,1,13] );
gap> SetEntrySCTable( T2, 312, [-1,7,1,8] );
gap> SetEntrySCTable( T2, 313, [-1,9,1,10] );
gap> SetEntrySCTable( T2, 314, [4,3,1,10] );
gap> SetEntrySCTable( T2, 315, [8,3] );
gap> SetEntrySCTable( T2, 45, [-1,11] );
gap> SetEntrySCTable( T2, 46, [6,4] );
gap> SetEntrySCTable( T2, 47, [1,12] );
gap> SetEntrySCTable( T2, 48, [2,4] );
gap> SetEntrySCTable( T2, 49, [-1,5,-1,6,3,7,-1,8,-1,14] );
gap> SetEntrySCTable( T2, 410, [1,6,3,8] );
gap> SetEntrySCTable( T2, 413, [-4,4,3,12] );
gap> SetEntrySCTable( T2, 414, [1,11,3,12] );
gap> SetEntrySCTable( T2, 415, [-4,4,1,11] );
gap> SetEntrySCTable( T2, 56, [-3,5,1,6] );
gap> SetEntrySCTable( T2, 57, [-1,5,-1,7] );
gap> SetEntrySCTable( T2, 58, [-1,13,1,14] );
gap> SetEntrySCTable( T2, 59, [-2,1,1,9] );
gap> SetEntrySCTable( T2, 510, [4,1,1,10] );
gap> SetEntrySCTable( T2, 511, [6,2,-1,11] );
gap> SetEntrySCTable( T2, 512, [4,2,-1,12] );
gap> SetEntrySCTable( T2, 513, [4,5,1,13] );
gap> SetEntrySCTable( T2, 514, [-4,5,-1,14] );
gap> SetEntrySCTable( T2, 515, [-4,5,-1,6,-3,7,-1,14] );
gap> SetEntrySCTable( T2, 67, [1,5,1,6,-3,7,1,8,1,13,1,14] );
gap> SetEntrySCTable( T2, 68, [1,6,-3,8] );
gap> SetEntrySCTable( T2, 69, [-4,1,3,9] );
gap> SetEntrySCTable( T2, 610, [6,1,3,10] );
gap> SetEntrySCTable( T2, 611, [6,4,-3,11] );
gap> SetEntrySCTable( T2, 612, [4,4,-3,12] );
gap> SetEntrySCTable( T2, 613, [4,6,3,13] );
gap> SetEntrySCTable( T2, 614, [-3,5,4,6,3,8,3,13] );
gap> SetEntrySCTable( T2, 615, [-1,6,-9,7,6,8,3,14] );
gap> SetEntrySCTable( T2, 78, [-1,7,-1,8] );
gap> SetEntrySCTable( T2, 79, [2,3,-1,9] );
gap> SetEntrySCTable( T2, 710, [-4,3,-1,10] );
gap> SetEntrySCTable( T2, 711, [-4,2,1,11] );
gap> SetEntrySCTable( T2, 712, [-2,2,1,12] );
gap> SetEntrySCTable( T2, 713, [-1,5,-4,7,1,8,1,14] );
gap> SetEntrySCTable( T2, 714, [-4,7,1,14] );
gap> SetEntrySCTable( T2, 715, [1,5,1,6,1,7,1,8,1,13] );
gap> SetEntrySCTable( T2, 89, [-4,3,1,9] );
gap> SetEntrySCTable( T2, 810, [6,3,1,10] );
gap> SetEntrySCTable( T2, 811, [4,4,-1,11] );
gap> SetEntrySCTable( T2, 812, [2,4,-1,12] );
gap> SetEntrySCTable( T2, 813, [1,5,2,6,-3,8,1,14] );
gap> SetEntrySCTable( T2, 814, [-1,5,6,7,3,8,-1,13] );
gap> SetEntrySCTable( T2, 815, [-1,5,-1,6,3,7,3,8,-1,13] );
gap> SetEntrySCTable( T2, 911, [-5,5,-2,6,6,7,-1,8,-1,13,-1,14] );
gap> SetEntrySCTable( T2, 912, [-1,5,4,7,-1,8,1,13,-1,14] );
gap> SetEntrySCTable( T2, 913, [-6,1,4,9] );
gap> SetEntrySCTable( T2, 914, [-4,1,-4,3,-2,10] );
gap> SetEntrySCTable( T2, 915, [-10,3,4,9] );
gap> SetEntrySCTable( T2, 1011, [3,5,4,6,3,8,3,13,-3,14] );
gap> SetEntrySCTable( T2, 1012, [-1,5,3,8,-1,13,-1,14] );
gap> SetEntrySCTable( T2, 1013, [10,1,4,10] );
gap> SetEntrySCTable( T2, 1014, [6,1,6,3,6,9,8,10] );
gap> SetEntrySCTable( T2, 1015, [18,3,4,10] );
gap> SetEntrySCTable( T2, 1113, [12,2,4,4,-6,12] );
gap> SetEntrySCTable( T2, 1114, [18,2,-4,11] );
gap> SetEntrySCTable( T2, 1115, [6,2,6,4,-8,11,6,12] );
gap> SetEntrySCTable( T2, 1213, [6,2,2,4,2,11,-8,12] );
gap> SetEntrySCTable( T2, 1214, [10,2,-4,12] );
gap> SetEntrySCTable( T2, 1215, [4,2,4,4,-2,11] );
gap> SetEntrySCTable( T2, 1314, [11,5,-3,8,1,13,1,14] );
gap> SetEntrySCTable( T2, 1315, [8,5,6,6,12,7,-6,8,4,13,-2,14] );
gap> SetEntrySCTable( T2, 1415, [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");
[ [ 0000, -2, -6000000840 ], 
  [ 000000000000000 ], 
  [ 000000000000000 ], 
  [ 000000000000000 ], 
  [ 0, -10000000030000 ], 
  [ 000, -100000010000 ], 
  [ 000000000000000 ], 
  [ 000000000000000 ], 
  [ 000000, -10000000, -3 ], 
  [ 0000000, -10000011 ], 
  [ 000000000000000 ], 
  [ 000000000000000 ], 
  [ 00000000000, -1000 ], 
  [ 000000000000000 ], 
  [ 000000000000000 ] ]
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, -80, -240000004832000 ], 
  [ -80, -80000016, -3200000 ], 
  [ 0, -80, -80000003216000 ], 
  [ -240, -80000032, -4800000 ], 
  [ 00001648, -16320000, -64, -64, -80 ], 
  [ 000048144, -32480000, -192, -144, -144 ], 
  [ 0000, -16, -3216, -160000486464 ], 
  [ 00003248, -16160000, -80, -80, -64 ], 
  [ 016032000000, -80, -48000 ], 
  [ 0, -320, -4800000014480000 ], 
  [ 4803200000, -8014400000 ], 
  [ 3201600000, -488000000 ], 
  [ 0000, -64, -19248, -800000256208224 ], 
  [ 0000, -64, -14464, -800000208256272 ], 
  [ 0000, -80, -14464, -640000224272256 ] ]
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( 140, "antisymmetric" );;
gap> SetEntrySCTable( T3, 15, [1,2] );
gap> SetEntrySCTable( T3, 16, [1,3] );
gap> SetEntrySCTable( T3, 17, [1,4] );
gap> SetEntrySCTable( T3, 111, [-2,1] );
gap> SetEntrySCTable( T3, 112, [-1,1] );
gap> SetEntrySCTable( T3, 113, [-1,1] );
gap> SetEntrySCTable( T3, 114, [-1,1] );
gap> SetEntrySCTable( T3, 28, [1,3] );
gap> SetEntrySCTable( T3, 29, [1,4] );
gap> SetEntrySCTable( T3, 211, [-1,2] );
gap> SetEntrySCTable( T3, 212, [-2,2] );
gap> SetEntrySCTable( T3, 213, [-1,2] );
gap> SetEntrySCTable( T3, 214, [-1,2] );
gap> SetEntrySCTable( T3, 310, [1,4] );
gap> SetEntrySCTable( T3, 311, [-1,3] );
gap> SetEntrySCTable( T3, 312, [-1,3] );
gap> SetEntrySCTable( T3, 313, [-2,3] );
gap> SetEntrySCTable( T3, 314, [-1,3] );
gap> SetEntrySCTable( T3, 411, [-1,4] );
gap> SetEntrySCTable( T3, 412, [-1,4] );
gap> SetEntrySCTable( T3, 413, [-1,4] );
gap> SetEntrySCTable( T3, 414, [-2,4] );
gap> SetEntrySCTable( T3, 58, [1,6] );
gap> SetEntrySCTable( T3, 59, [1,7] );
gap> SetEntrySCTable( T3, 511, [1,5] );
gap> SetEntrySCTable( T3, 512, [-1,5] );
gap> SetEntrySCTable( T3, 610, [1,7] );
gap> SetEntrySCTable( T3, 611, [1,6] );
gap> SetEntrySCTable( T3, 613, [-1,6] );
gap> SetEntrySCTable( T3, 711, [1,7] );
gap> SetEntrySCTable( T3, 714, [-1,7] );
gap> SetEntrySCTable( T3, 810, [1,9] );
gap> SetEntrySCTable( T3, 812, [1,8] );
gap> SetEntrySCTable( T3, 813, [-1,8] );
gap> SetEntrySCTable( T3, 912, [1,9] );
gap> SetEntrySCTable( T3, 914, [-1,9] );
gap> SetEntrySCTable( T3, 1013, [1,10] );
gap> SetEntrySCTable( T3, 1014, [-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");
[ [ 0000000000, -2, -1, -1, -1 ], 
  [ 00001000000000 ], 
  [ 00000100000000 ], 
  [ 00000010000000 ], 
  [ 00000000000000 ], 
  [ 00000000000000 ], 
  [ 00000000000000 ], 
  [ 00000000000000 ], 
  [ 00000000000000 ], 
  [ 00000000000000 ], 
  [ 00000000000000 ], 
  [ 00000000000000 ], 
  [ 00000000000000 ], 
  [ 00000000000000 ] ]
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");
[ [ 00000000000000 ], 
  [ 00000000000000 ], 
  [ 00000000000000 ], 
  [ 00000000000000 ], 
  [ 00000000000000 ], 
  [ 00000000000000 ], 
  [ 00000000000000 ], 
  [ 00000000000000 ], 
  [ 00000000000000 ], 
  [ 00000000000000 ], 
  [ 000000000010555 ], 
  [ 000000000051055 ], 
  [ 000000000055105 ], 
  [ 000000000055510 ] ]
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, [ 00 ] );
<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, [ [ [ 00 ], [ 10 ] ] ] );;
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, 23 );
<algebra-with-one of dimension 4 over Rationals>
gap> A= QuaternionAlgebra( [1], 23 );
true
gap> A= QuaternionAlgebra( [1], 25 );
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]} );
10 ]
gap> ComplexificationQuat( gens{[2]} );
[ E(4), 0 ]
gap> ComplexificationQuat( gens{[3]} );
01 ]
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");

[zur Elbe Produktseite wechseln0.78QuellennavigatorsAnalyse erneut starten2026-06-11]