1#@local a,b,c,cen,cenu,cenv,d,f,fullcen,l,mat,n,r,rada,radc,sum
2#@local u,ua,ub,uc,ud,uz,v,z,zero
3gap> START_TEST("algmat.tst");
4
5#############################################################################
6gap> Ring( [ [ [ Z(9), Z(3) ], [ Z(3), 0*Z(3) ] ],
7>            [ [ 0*Z(9), Z(27) ], [ Z(3)^0, Z(3) ] ] ] );
8<algebra over GF(3), with 2 generators>
9gap> Ring( [ [ 1, E(5) ], [ E(5), 0 ] ] );
10<free left module over Integers, and ring, with 1 generators>
11gap> Ring( [ [ 1, 0 ], [ 0, 0 ] ], [ [ 0, E(5) ], [ E(7), 5 ] ] );
12<free left module over Integers, and ring, with 2 generators>
13gap> RingWithOne( [ [ [ Z(9), Z(3) ], [ Z(3), 0*Z(3) ] ],
14>                  [ [ 0*Z(9), Z(27) ], [ Z(3)^0, Z(3) ] ] ] );
15<algebra-with-one over GF(3), with 2 generators>
16gap> RingWithOne( [ [ 1, E(5) ], [ E(5), 0 ] ] );
17<free left module over Integers, and ring-with-one, with 1 generators>
18gap> RingWithOne( [ [ 1, 0 ], [ 0, 0 ] ], [ [ 0, E(5) ], [ E(7), 5 ] ] );
19<free left module over Integers, and ring-with-one, with 2 generators>
20gap> mat:= [ [ 1, E(4) ], [ 1, 1 ] ];
21[ [ 1, E(4) ], [ 1, 1 ] ]
22gap> r:= DefaultRing( [ mat ] );
23<algebra over Rationals, with 1 generators>
24gap> mat in r;
25true
26
27#############################################################################
28gap> z:= Algebra( GF(3), [], [ [ 0*Z(9), 0*Z(3) ], [ 0*Z(3), 0*Z(3) ] ] );
29<algebra of dimension 0 over GF(3)>
30gap> IsGaussianMatrixSpace( z );
31true
32gap> IsTrivial( z );
33true
34gap> Dimension( z );
350
36gap> a:= Algebra( GF(3), [ [ [ Z(9), Z(3) ], [ Z(3), 0*Z(3) ] ],
37>                   [ [ 0*Z(9), Z(27) ], [ Z(3)^0, Z(3) ] ] ] );
38<algebra over GF(3), with 2 generators>
39gap> IsNonGaussianMatrixSpace( a );
40true
41gap> Dimension( a );
4224
43gap> b:= Algebra( Rationals, [ [ [ 1, E(5) ], [ E(5), 0 ] ] ] );
44<algebra over Rationals, with 1 generators>
45gap> IsNonGaussianMatrixSpace( b );
46true
47gap> Dimension( b );
488
49gap> c:= Algebra( CF(5), [ [ [ 1, E(5) ], [ E(5), 0 ] ] ],
50>                     [ [ 0, 0 ], [ 0, 0 ] ] );
51<algebra over CF(5), with 1 generators>
52gap> IsGaussianMatrixSpace( c );
53true
54gap> Dimension( c );
552
56gap> d:= Algebra( Rationals, [ [ [ 1, 0 ], [ 0, 0 ] ],
57>                       [ [ 0, E(3) ], [ E(4), 5 ] ] ] );
58<algebra over Rationals, with 2 generators>
59gap> IsNonGaussianMatrixSpace( d );
60true
61gap> Dimension( d );
6216
63
64#############################################################################
65gap> uz:= AlgebraWithOne( GF(3), [],
66>                            [ [ 0*Z(9), 0*Z(3) ], [ 0*Z(3), 0*Z(3) ] ] );
67<algebra-with-one over GF(3), with 0 generators>
68gap> IsGaussianMatrixSpace( uz );
69true
70gap> IsTrivial( uz );
71false
72gap> Dimension( uz );
731
74gap> ua:= AlgebraWithOne( GF(3), [ [ [ Z(9), Z(3) ], [ Z(3), 0*Z(3) ] ],
75>                   [ [ 0*Z(9), Z(27) ], [ Z(3)^0, Z(3) ] ] ] );
76<algebra-with-one over GF(3), with 2 generators>
77gap> IsNonGaussianMatrixSpace( ua );
78true
79gap> Dimension( ua );
8024
81gap> ub:= AlgebraWithOne( Rationals, [ [ [ 1, E(5) ], [ E(5), 0 ] ] ] );
82<algebra-with-one over Rationals, with 1 generators>
83gap> IsNonGaussianMatrixSpace( ub );
84true
85gap> Dimension( ub );
868
87gap> uc:= AlgebraWithOne( CF(5), [ [ [ 1, E(5) ], [ E(5), 0 ] ] ],
88>                     [ [ 0, 0 ], [ 0, 0 ] ] );
89<algebra-with-one over CF(5), with 1 generators>
90gap> IsGaussianMatrixSpace( uc );
91true
92gap> Dimension( uc );
932
94gap> ud:= AlgebraWithOne( Rationals, [ [ [ 1, 0 ], [ 0, 0 ] ],
95>                       [ [ 0, E(3) ], [ E(4), 5 ] ] ] );
96<algebra-with-one over Rationals, with 2 generators>
97gap> IsNonGaussianMatrixSpace( ud );
98true
99gap> Dimension( ud );
10016
101
102#############################################################################
103gap> IsUnit( c, Zero( c ) );
104false
105gap> r:= [ [ 1, 1 ], [ 1, 1 ] ]; r in c; IsUnit( c, r );
106[ [ 1, 1 ], [ 1, 1 ] ]
107false
108false
109gap> r:= [ [ 1, 1 ], [ 0, 1 ] ]; r in c; IsUnit( c, r );
110[ [ 1, 1 ], [ 0, 1 ] ]
111false
112false
113gap> IsUnit( c, [ [ 1, E(5) ], [ E(5), 0 ] ] );
114true
115gap> IdentityMat( 2, GF(3) );
116[ [ Z(3)^0, 0*Z(3) ], [ 0*Z(3), Z(3)^0 ] ]
117
118#############################################################################
119gap> IsAssociative( a );
120true
121gap> rada:= RadicalOfAlgebra( a );
122<algebra of dimension 0 over GF(3)>
123gap> Dimension( rada );
1240
125gap> IsAssociative( c );
126true
127gap> radc:= RadicalOfAlgebra( c );
128<algebra of dimension 0 over CF(5)>
129gap> Dimension( radc );
1300
131gap> Dimension( RadicalOfAlgebra( radc ) );
1320
133
134#############################################################################
135gap> cen:= Centralizer( c, GeneratorsOfAlgebra( c )[1] );
136<algebra of dimension 2 over CF(5)>
137gap> cen = c;
138true
139gap> cen:= Centralizer( c, cen );
140<algebra of dimension 2 over CF(5)>
141gap> cen = c;
142true
143gap> cen:= Centralizer( uc, GeneratorsOfAlgebra( uc )[1] );
144<algebra-with-one of dimension 2 over CF(5)>
145gap> cen = uc;
146true
147gap> cen:= Centralizer( uc, cen );
148<algebra-with-one of dimension 2 over CF(5)>
149gap> cen = uc;
150true
151gap> cen:= Centralizer( a, GeneratorsOfAlgebra( a )[1] );
152<algebra of dimension 12 over GF(3)>
153gap> Dimension( cen );
15412
155gap> cen:= Centralizer( a, cen );
156<algebra of dimension 12 over GF(3)>
157gap> Dimension( cen );
15812
159gap> cen:= Centralizer( ua, One( ua ) );
160<algebra-with-one of dimension 24 over GF(3)>
161gap> cen = ua;
162true
163gap> cen:= Centralizer( ua, GeneratorsOfAlgebra( ua )[2] );
164<algebra-with-one of dimension 12 over GF(3)>
165gap> Dimension( cen );
16612
167gap> cen:= Centralizer( ua, cen );
168<algebra-with-one of dimension 12 over GF(3)>
169gap> Dimension( cen );
17012
171
172#############################################################################
173gap> fullcen:= FullMatrixAlgebraCentralizer( CF(5),
174>                  GeneratorsOfAlgebra( c ) );
175<algebra-with-one of dimension 2 over CF(5)>
176gap> Dimension( fullcen );
1772
178gap> fullcen:= FullMatrixAlgebraCentralizer( GF(3^6),
179>                  GeneratorsOfAlgebra( a ) );
180<algebra-with-one of dimension 1 over GF(3^6)>
181gap> Dimension( fullcen );
1821
183
184#############################################################################
185gap> f:= GF(2)^[3,3];
186( GF(2)^[ 3, 3 ] )
187gap> f = FullMatrixFLMLOR( GF(2), 3 );
188true
189gap> IsFullMatrixModule( f );
190true
191gap> IsAlgebra( f );
192true
193gap> u:= Algebra( GF(2),
194>         [ [ [ 1, 1, 1 ], [ 0, 1, 0 ], [ 0, 0, 1 ] ] * Z(2) ] );
195<algebra over GF(2), with 1 generators>
196gap> Dimension( u );
1972
198gap> IsSubset( f, u );
199true
200gap> cenu:= Centralizer( f, u );
201<algebra-with-one of dimension 5 over GF(2)>
202gap> Dimension( cenu );
2035
204gap> v:= FreeLeftModule( GF(2),
205>         [ [ [ 1, 1, 1 ], [ 0, 1, 0 ], [ 0, 0, 1 ] ] * Z(2) ] );
206<vector space over GF(2), with 1 generators>
207gap> Dimension( v );
2081
209gap> IsSubset( f, v );
210true
211gap> cenv:= Centralizer( f, v );
212<algebra-with-one of dimension 5 over GF(2)>
213gap> Dimension( cenv );
2145
215gap> IsSubset( cenv, cenu );
216true
217gap> cenv = Centralizer( f, GeneratorsOfLeftModule( v ) );
218true
219gap>
220gap> Centralizer( f, [] ) = f;
221true
222
223#############################################################################
224gap> l:= FullMatrixLieAlgebra( GF(2), 3 );
225<Lie algebra over GF(2), with 5 generators>
226gap> Dimension( l );
2279
228
229#############################################################################
230gap> sum:= DirectSumOfAlgebras( f, f );
231<algebra over GF(2), with 6 generators>
232gap> Dimension( sum ) = 2 * Dimension( f );
233true
234gap> IsFullMatrixModule( sum );
235false
236gap> sum:= DirectSumOfAlgebras( l, l );
237<Lie algebra over GF(2), with 10 generators>
238gap> Dimension( sum ) = 2 * Dimension( l );
239true
240gap> IsFullMatrixModule( sum );
241false
242gap> sum:= DirectSumOfAlgebras( l, f );
243<algebra of dimension 18 over GF(2)>
244gap> Dimension( sum ) = 2 * Dimension( l );
245true
246gap> IsFullMatrixModule( sum );
247false
248
249#############################################################################
250gap> n:= NullAlgebra( GF(3) );
251<algebra of dimension 0 over GF(3)>
252gap> Dimension( n );
2530
254gap> b:= Basis( n );;
255gap> BasisVectors( b );
256[  ]
257gap> zero:= Zero( n );
258EmptyMatrix( 3 )
259gap> Coefficients( b, zero );
260[  ]
261gap> zero + zero = zero;
262true
263gap> zero * zero = zero;
264true
265gap> [] * zero;
266[  ]
267gap> zero * [];
268[  ]
269gap> Z(3) * zero = zero;
270true
271gap> zero * Z(3) = zero;
272true
273gap> zero^3 = zero;
274true
275gap> zero^-3 = zero;
276true
277
278#############################################################################
279
280# missing: F.p. algebras
281
282# missing: standard bases of matrix algebras,
283#          fingerprints, 'RepresentativeOperation'
284
285# missing: natural modules, abstract expressions, field multiplicity
286
287#############################################################################
288gap> STOP_TEST( "algmat.tst", 1);
289