CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutSign UpSign In

Real-time collaboration for Jupyter Notebooks, Linux Terminals, LaTeX, VS Code, R IDE, and more,
all in one place.

| Download

GAP 4.8.9 installation with standard packages -- copy to your CoCalc project to get it

Path: gap4r8 / doc / tut / chap6.txt
Views: 418346
1
2
6 Vector Spaces and Algebras
3
4
This chapter contains an introduction into vector spaces and algebras in
5
GAP.
6
7
8
6.1 Vector Spaces
9
10
A vector space over the field F is an additive group that is closed under
11
scalar multiplication with elements in F. In GAP, only those domains that
12
are constructed as vector spaces are regarded as vector spaces. In
13
particular, an additive group that does not know about an acting domain of
14
scalars is not regarded as a vector space in GAP.
15
16
Probably the most common F-vector spaces in GAP are so-called row spaces.
17
They consist of row vectors, that is, lists whose elements lie in F. In the
18
following example we compute the vector space spanned by the row vectors [
19
1, 1, 1 ] and [ 1, 0, 2 ] over the rationals.
20
21
 Example 
22
gap> F:= Rationals;;
23
gap> V:= VectorSpace( F, [ [ 1, 1, 1 ], [ 1, 0, 2 ] ] );
24
<vector space over Rationals, with 2 generators>
25
gap> [ 2, 1, 3 ] in V;
26
true
27

28
29
The full row space F^n is created by commands like:
30
31
 Example 
32
gap> F:= GF( 7 );;
33
gap> V:= F^3; # The full row space over F of dimension 3. 
34
( GF(7)^3 )
35
gap> [ 1, 2, 3 ] * One( F ) in V; 
36
true
37

38
39
In the same way we can also create matrix spaces. Here the short notation
40
field^[dim1,dim2] can be used:
41
42
 Example 
43
gap> m1:= [ [ 1, 2 ], [ 3, 4 ] ];; m2:= [ [ 0, 1 ], [ 1, 0 ] ];;
44
gap> V:= VectorSpace( Rationals, [ m1, m2 ] );
45
<vector space over Rationals, with 2 generators>
46
gap> m1+m2 in V;
47
true
48
gap> W:= Rationals^[3,2];
49
( Rationals^[ 3, 2 ] )
50
gap> [ [ 1, 1 ], [ 2, 2 ], [ 3, 3 ] ] in W;
51
true
52

53
54
A field is naturally a vector space over itself.
55
56
 Example 
57
gap> IsVectorSpace( Rationals );
58
true
59

60
61
If Φ is an algebraic extension of F, then Φ is also a vector space over F
62
(and indeed over any subfield of Φ that contains F). This field F is stored
63
in the attribute LeftActingDomain (Reference: LeftActingDomain). In GAP, the
64
default is to view fields as vector spaces over their prime fields. By the
65
function AsVectorSpace (Reference: AsVectorSpace), we can view fields as
66
vector spaces over fields other than the prime field.
67
68
 Example 
69
gap> F:= GF( 16 );;
70
gap> LeftActingDomain( F );
71
GF(2)
72
gap> G:= AsVectorSpace( GF( 4 ), F );
73
AsField( GF(2^2), GF(2^4) )
74
gap> F = G;
75
true
76
gap> LeftActingDomain( G );
77
GF(2^2)
78

79
80
A vector space has three important attributes: its field of definition, its
81
dimension and a basis. We already encountered the function LeftActingDomain
82
(Reference: LeftActingDomain) in the example above. It extracts the field of
83
definition of a vector space. The function Dimension (Reference: Dimension)
84
provides the dimension of the vector space.
85
86
 Example 
87
gap> F:= GF( 9 );;
88
gap> m:= [ [ Z(3)^0, 0*Z(3), 0*Z(3) ], [ 0*Z(3), Z(3)^0, Z(3)^0 ] ];;
89
gap> V:= VectorSpace( F, m );
90
<vector space over GF(3^2), with 2 generators>
91
gap> Dimension( V );
92
2
93
gap> W:= AsVectorSpace( GF( 3 ), V );
94
<vector space over GF(3), with 4 generators>
95
gap> V = W;
96
true
97
gap> Dimension( W );
98
4
99
gap> LeftActingDomain( W );
100
GF(3)
101

102
103
One of the most important attributes is a basis. For a given basis B of V,
104
every vector v in V can be expressed uniquely as v = ∑_b ∈ B c_b b, with
105
coefficients c_b ∈ F.
106
107
In GAP, bases are special lists of vectors. They are used mainly for the
108
computation of coefficients and linear combinations.
109
110
Given a vector space V, a basis of V is obtained by simply applying the
111
function Basis (Reference: Basis) to V. The vectors that form the basis are
112
extracted from the basis by BasisVectors (Reference: BasisVectors).
113
114
 Example 
115
gap> m1:= [ [ 1, 2 ], [ 3, 4 ] ];; m2:= [ [ 1, 1 ], [ 1, 0 ] ];;
116
gap> V:= VectorSpace( Rationals, [ m1, m2 ] );
117
<vector space over Rationals, with 2 generators>
118
gap> B:= Basis( V );
119
SemiEchelonBasis( <vector space over Rationals, with 
120
2 generators>, ... )
121
gap> BasisVectors( Basis( V ) );
122
[ [ [ 1, 2 ], [ 3, 4 ] ], [ [ 0, 1 ], [ 2, 4 ] ] ]
123

124
125
The coefficients of a vector relative to a given basis are found by the
126
function Coefficients (Reference: Coefficients). Furthermore, linear
127
combinations of the basis vectors are constructed using LinearCombination
128
(Reference: LinearCombination).
129
130
 Example 
131
gap> V:= VectorSpace( Rationals, [ [ 1, 2 ], [ 3, 4 ] ] );
132
<vector space over Rationals, with 2 generators>
133
gap> B:= Basis( V );
134
SemiEchelonBasis( <vector space over Rationals, with 
135
2 generators>, ... )
136
gap> BasisVectors( Basis( V ) );
137
[ [ 1, 2 ], [ 0, 1 ] ]
138
gap> Coefficients( B, [ 1, 0 ] );
139
[ 1, -2 ]
140
gap> LinearCombination( B, [ 1, -2 ] );
141
[ 1, 0 ]
142

143
144
In the above examples we have seen that GAP often chooses the basis it wants
145
to work with. It is also possible to construct bases with prescribed basis
146
vectors by giving a list of these vectors as second argument to Basis
147
(Reference: Basis).
148
149
 Example 
150
gap> V:= VectorSpace( Rationals, [ [ 1, 2 ], [ 3, 4 ] ] );; 
151
gap> B:= Basis( V, [ [ 1, 0 ], [ 0, 1 ] ] );
152
SemiEchelonBasis( <vector space over Rationals, with 2 generators>, 
153
[ [ 1, 0 ], [ 0, 1 ] ] )
154
gap> Coefficients( B, [ 1, 2 ] );
155
[ 1, 2 ]
156

157
158
We can construct subspaces and quotient spaces of vector spaces. The natural
159
projection map (constructed by NaturalHomomorphismBySubspace (Reference:
160
NaturalHomomorphismBySubspace)), connects a vector space with its quotient
161
space.
162
163
 Example 
164
gap> V:= Rationals^4;
165
( Rationals^4 )
166
gap> W:= Subspace( V, [ [ 1, 2, 3, 4 ], [ 0, 9, 8, 7 ] ] );
167
<vector space over Rationals, with 2 generators>
168
gap> VmodW:= V/W;
169
( Rationals^2 )
170
gap> h:= NaturalHomomorphismBySubspace( V, W );
171
<linear mapping by matrix, ( Rationals^4 ) -> ( Rationals^2 )>
172
gap> Image( h, [ 1, 2, 3, 4 ] );
173
[ 0, 0 ]
174
gap> PreImagesRepresentative( h, [ 1, 0 ] );
175
[ 1, 0, 0, 0 ]
176

177
178
179
6.2 Algebras
180
181
If a multiplication is defined for the elements of a vector space, and if
182
the vector space is closed under this multiplication then it is called an
183
algebra. For example, every field is an algebra:
184
185
 Example 
186
gap> f:= GF(8); IsAlgebra( f );
187
GF(2^3)
188
true
189

190
191
One of the most important classes of algebras are sub-algebras of matrix
192
algebras. On the set of all n × n matrices over a field F it is possible to
193
define a multiplication in many ways. The most frequent are the ordinary
194
matrix multiplication and the Lie multiplication.
195
196
Each matrix constructed as [ row1, row2, ... ] is regarded by GAP as an
197
ordinary matrix, its multiplication is the ordinary associative matrix
198
multiplication. The sum and product of two ordinary matrices are again
199
ordinary matrices.
200
201
The full matrix associative algebra can be created as follows:
202
203
 Example 
204
gap> F:= GF( 9 );;
205
gap> A:= F^[3,3];
206
( GF(3^2)^[ 3, 3 ] )
207

208
209
An algebra can be constructed from generators using the function Algebra
210
(Reference: Algebra). It takes as arguments the field of coefficients and a
211
list of generators. Of course the coefficient field and the generators must
212
fit together; if we want to construct an algebra of ordinary matrices, we
213
may take the field generated by the entries of the generating matrices, or a
214
subfield or extension field.
215
216
 Example 
217
gap> m1:= [ [ 1, 1 ], [ 0, 0 ] ];; m2:= [ [ 0, 0 ], [ 0, 1 ] ];;
218
gap> A:= Algebra( Rationals, [ m1, m2 ] );
219
<algebra over Rationals, with 2 generators>
220

221
222
An interesting class of algebras for which many special algorithms are
223
implemented is the class of Lie algebras. They arise for example as algebras
224
of matrices whose product is defined by the Lie bracket [ A, B ] = A * B - B
225
* A, where * denotes the ordinary matrix product.
226
227
Since the multiplication of objects in GAP is always assumed to be the
228
operation * (resp. the infix operator *), and since there is already the
229
ordinary matrix product defined for ordinary matrices, as mentioned above,
230
we must use a different construction for matrices that occur as elements of
231
Lie algebras. Such Lie matrices can be constructed by LieObject (Reference:
232
LieObject) from ordinary matrices, the sum and product of Lie matrices are
233
again Lie matrices.
234
235
 Example 
236
gap> m:= LieObject( [ [ 1, 1 ], [ 1, 1 ] ] ); 
237
LieObject( [ [ 1, 1 ], [ 1, 1 ] ] )
238
gap> m*m;
239
LieObject( [ [ 0, 0 ], [ 0, 0 ] ] )
240
gap> IsOrdinaryMatrix( m1 ); IsOrdinaryMatrix( m );
241
true
242
false
243
gap> IsLieMatrix( m1 ); IsLieMatrix( m );
244
false
245
true
246

247
248
Given a field F and a list mats of Lie objects over F, we can construct the
249
Lie algebra generated by mats using the function Algebra (Reference:
250
Algebra). Alternatively, if we do not want to be bothered with the function
251
LieObject (Reference: LieObject), we can use the function LieAlgebra
252
(Reference: LieAlgebraByStructureConstants) that takes a field and a list of
253
ordinary matrices, and constructs the Lie algebra generated by the
254
corresponding Lie matrices. Note that this means that the ordinary matrices
255
used in the call of LieAlgebra (Reference: LieAlgebraByStructureConstants)
256
are not contained in the returned Lie algebra.
257
258
 Example 
259
gap> m1:= [ [ 0, 1 ], [ 0, 0 ] ];;
260
gap> m2:= [ [ 0, 0 ], [ 1, 0 ] ];; 
261
gap> L:= LieAlgebra( Rationals, [ m1, m2 ] );
262
<Lie algebra over Rationals, with 2 generators>
263
gap> m1 in L;
264
false
265

266
267
A second way of creating an algebra is by specifying a multiplication table.
268
Let A be a finite dimensional algebra with basis (x_1, x_2, ..., x_n), then
269
for 1 ≤ i, j ≤ n the product x_i x_j is a linear combination of basis
270
elements, i.e., there are c_ij^k in the ground field such that x_i x_j =
271
∑_k=1^n c_ij^k x_k. It is not difficult to show that the constants c_ij^k
272
determine the multiplication completely. Therefore, the c_ij^k are called
273
structure constants. In GAP we can create a finite dimensional algebra by
274
specifying an array of structure constants.
275
276
In GAP such a table of structure constants is represented using lists. The
277
obvious way to do this would be to construct a three-dimensional list T such
278
that T[i][j][k] equals c_ij^k. But it often happens that many of these
279
constants vanish. Therefore a more complicated structure is used in order to
280
be able to omit the zeros. A multiplication table of an n-dimensional
281
algebra is an n × n array T such that T[i][j] describes the product of the
282
i-th and the j-th basis element. This product is encoded in the following
283
way. The entry T[i][j] is a list of two elements. The first of these is a
284
list of indices k such that c_ij^k is nonzero. The second list contains the
285
corresponding constants c_ij^k. Suppose, for example, that S is the table of
286
an algebra with basis (x_1, x_2, ..., x_8) and that S[3][7] equals [ [ 2, 4,
287
6 ], [ 1/2, 2, 2/3 ] ]. Then in the algebra we have the relation x_3 x_7 =
288
(1/2) x_2 + 2 x_4 + (2/3) x_6. Furthermore, if S[6][1] = [ [ ], [ ] ] then
289
the product of the sixth and first basis elements is zero.
290
291
Finally two numbers are added to the table. The first number can be 1, -1,
292
or 0. If it is 1, then the table is known to be symmetric, i.e., c_ij^k =
293
c_ji^k. If this number is -1, then the table is known to be antisymmetric
294
(this happens for instance when the algebra is a Lie algebra). The remaining
295
case, 0, occurs in all other cases. The second number that is added is the
296
zero element of the field over which the algebra is defined.
297
298
Empty structure constants tables are created by the function EmptySCTable
299
(Reference: EmptySCTable), which takes a dimension d, a zero element z, and
300
optionally one of the strings "symmetric", "antisymmetric", and returns an
301
empty structure constants table T corresponding to a d-dimensional algebra
302
over a field with zero element z. Structure constants can be entered into
303
the table T using the function SetEntrySCTable (Reference: SetEntrySCTable).
304
It takes four arguments, namely T, two indices i and j, and a list of the
305
form [ c_ij^{k_1}, k_1, c_ij^{k_2}, k_2, ... ]. In this call to
306
SetEntrySCTable, the product of the i-th and the j-th basis vector in any
307
algebra described by T is set to ∑_l c_ij^{k_l} x_{k_l}. (Note that in the
308
empty table, this product was zero.) If T knows that it is (anti)symmetric,
309
then at the same time also the product of the j-th and the i-th basis vector
310
is set appropriately.
311
312
In the following example we temporarily increase the line length limit from
313
its default value 80 to 82 in order to make the long output expression fit
314
into one line.
315
316
 Example 
317
gap> T:= EmptySCTable( 2, 0, "symmetric" );
318
[ [ [ [ ], [ ] ], [ [ ], [ ] ] ], 
319
 [ [ [ ], [ ] ], [ [ ], [ ] ] ], 1, 0 ]
320
gap> SetEntrySCTable( T, 1, 2, [1/2,1,1/3,2] ); T;
321
[ [ [ [ ], [ ] ], [ [ 1, 2 ], [ 1/2, 1/3 ] ] ], 
322
 [ [ [ 1, 2 ], [ 1/2, 1/3 ] ], [ [ ], [ ] ] ], 1, 0 ]
323

324
325
If we have defined a structure constants table, then we can construct the
326
corresponding algebra by AlgebraByStructureConstants (Reference:
327
AlgebraByStructureConstants).
328
329
 Example 
330
gap> A:= AlgebraByStructureConstants( Rationals, T );
331
<algebra of dimension 2 over Rationals>
332

333
334
If we know that a structure constants table defines a Lie algebra, then we
335
can construct the corresponding Lie algebra by
336
LieAlgebraByStructureConstants (Reference: LieAlgebraByStructureConstants);
337
the algebra returned by this function knows that it is a Lie algebra, so GAP
338
need not check the Jacobi identity.
339
340
 Example 
341
gap> T:= EmptySCTable( 2, 0, "antisymmetric" );;
342
gap> SetEntrySCTable( T, 1, 2, [2/3,1] );
343
gap> L:= LieAlgebraByStructureConstants( Rationals, T );
344
<Lie algebra of dimension 2 over Rationals>
345

346
347
In GAP an algebra is naturally a vector space. Hence all the functionality
348
for vector spaces is also available for algebras.
349
350
 Example 
351
gap> F:= GF(2);;
352
gap> z:= Zero( F );; o:= One( F );;
353
gap> T:= EmptySCTable( 3, z, "antisymmetric" );;
354
gap> SetEntrySCTable( T, 1, 2, [ o, 1, o, 3 ] );
355
gap> SetEntrySCTable( T, 1, 3, [ o, 1 ] );
356
gap> SetEntrySCTable( T, 2, 3, [ o, 3 ] );
357
gap> A:= AlgebraByStructureConstants( F, T );
358
<algebra of dimension 3 over GF(2)>
359
gap> Dimension( A );
360
3
361
gap> LeftActingDomain( A );
362
GF(2)
363
gap> Basis( A );
364
CanonicalBasis( <algebra of dimension 3 over GF(2)> )
365

366
367
Subalgebras and ideals of an algebra can be constructed by specifying a set
368
of generators for the subalgebra or ideal. The quotient space of an algebra
369
by an ideal is naturally an algebra itself.
370
371
In the following example we temporarily increase the line length limit from
372
its default value 80 to 81 in order to make the long output expression fit
373
into one line.
374
375
 Example 
376
gap> m:= [ [ 1, 2, 3 ], [ 0, 1, 6 ], [ 0, 0, 1 ] ];;
377
gap> A:= Algebra( Rationals, [ m ] );;
378
gap> subA:= Subalgebra( A, [ m-m^2 ] );
379
<algebra over Rationals, with 1 generators>
380
gap> Dimension( subA );
381
2
382
gap> idA:= Ideal( A, [ m-m^3 ] );
383
<two-sided ideal in <algebra of dimension 3 over Rationals>, 
384
 (1 generators)>
385
gap> Dimension( idA ); 
386
2
387
gap> B:= A/idA;
388
<algebra of dimension 1 over Rationals>
389

390
391
The call B:= A/idA creates a new algebra that does not know about its
392
connection with A. If we want to connect an algebra with its factor via a
393
homomorphism, then we first have to create the homomorphism
394
(NaturalHomomorphismByIdeal (Reference: NaturalHomomorphismByIdeal)). After
395
this we create the factor algebra from the homomorphism by the function
396
ImagesSource (Reference: ImagesSource). In the next example we divide an
397
algebra A by its radical and lift the central idempotents of the factor to
398
the original algebra A.
399
400
 Example 
401
gap> m1:=[[1,0,0],[0,2,0],[0,0,3]];;
402
gap> m2:=[[0,1,0],[0,0,2],[0,0,0]];;
403
gap> A:= Algebra( Rationals, [ m1, m2 ] );;
404
gap> Dimension( A );
405
6
406
gap> R:= RadicalOfAlgebra( A );
407
<algebra of dimension 3 over Rationals>
408
gap> h:= NaturalHomomorphismByIdeal( A, R );
409
<linear mapping by matrix, <algebra of dimension 
410
6 over Rationals> -> <algebra of dimension 3 over Rationals>>
411
gap> AmodR:= ImagesSource( h );
412
<algebra of dimension 3 over Rationals>
413
gap> id:= CentralIdempotentsOfAlgebra( AmodR );
414
[ v.3, v.2+(-3)*v.3, v.1+(-2)*v.2+(3)*v.3 ]
415
gap> PreImagesRepresentative( h, id[1] );
416
[ [ 0, 0, 0 ], [ 0, 0, 0 ], [ 0, 0, 1 ] ]
417
gap> PreImagesRepresentative( h, id[2] );
418
[ [ 0, 0, 0 ], [ 0, 1, 0 ], [ 0, 0, 0 ] ]
419
gap> PreImagesRepresentative( h, id[3] );
420
[ [ 1, 0, 0 ], [ 0, 0, 0 ], [ 0, 0, 0 ] ]
421

422
423
Structure constants tables for the simple Lie algebras are present in GAP.
424
They can be constructed using the function SimpleLieAlgebra (Reference:
425
SimpleLieAlgebra). The Lie algebras constructed by this function come with a
426
root system attached.
427
428
 Example 
429
gap> L:= SimpleLieAlgebra( "G", 2, Rationals );
430
<Lie algebra of dimension 14 over Rationals>
431
gap> R:= RootSystem( L );
432
<root system of rank 2>
433
gap> PositiveRoots( R );
434
[ [ 2, -1 ], [ -3, 2 ], [ -1, 1 ], [ 1, 0 ], [ 3, -1 ], [ 0, 1 ] ]
435
gap> CartanMatrix( R );
436
[ [ 2, -1 ], [ -3, 2 ] ]
437

438
439
Another example of algebras is provided by quaternion algebras. We define a
440
quaternion algebra over an extension field of the rationals, namely the
441
field generated by sqrt{5}. (The number EB(5) is equal to 1/2 (-1+sqrt{5}).
442
The field is printed as NF(5,[ 1, 4 ]).)
443
444
 Example 
445
gap> b5:= EB(5);
446
E(5)+E(5)^4
447
gap> q:= QuaternionAlgebra( FieldByGenerators( [ b5 ] ) );
448
<algebra-with-one of dimension 4 over NF(5,[ 1, 4 ])>
449
gap> gens:= GeneratorsOfAlgebra( q );
450
[ e, i, j, k ]
451
gap> e:= gens[1];; i:= gens[2];; j:= gens[3];; k:= gens[4];;
452
gap> IsAssociative( q );
453
true
454
gap> IsCommutative( q );
455
false
456
gap> i*j; j*i;
457
k
458
(-1)*k
459
gap> One( q );
460
e
461

462
463
If the coefficient field is a real subfield of the complex numbers then the
464
quaternion algebra is in fact a division ring.
465
466
 Example 
467
gap> IsDivisionRing( q );
468
true
469
gap> Inverse( e+i+j );
470
(1/3)*e+(-1/3)*i+(-1/3)*j
471

472
473
So GAP knows about this fact. As in any ring, we can look at groups of
474
units. (The function StarCyc (Reference: StarCyc) used below computes the
475
unique algebraic conjugate of an element in a quadratic subfield of a
476
cyclotomic field.)
477
478
 Example 
479
gap> c5:= StarCyc( b5 );
480
E(5)^2+E(5)^3
481
gap> g1:= 1/2*( b5*e + i - c5*j );
482
(1/2*E(5)+1/2*E(5)^4)*e+(1/2)*i+(-1/2*E(5)^2-1/2*E(5)^3)*j
483
gap> Order( g1 );
484
5
485
gap> g2:= 1/2*( -c5*e + i + b5*k );
486
(-1/2*E(5)^2-1/2*E(5)^3)*e+(1/2)*i+(1/2*E(5)+1/2*E(5)^4)*k
487
gap> Order( g2 );
488
10
489
gap> g:=Group( g1, g2 );;
490
#I default `IsGeneratorsOfMagmaWithInverses' method returns `true' for 
491
 [ (1/2*E(5)+1/2*E(5)^4)*e+(1/2)*i+(-1/2*E(5)^2-1/2*E(5)^3)*j, 
492
 (-1/2*E(5)^2-1/2*E(5)^3)*e+(1/2)*i+(1/2*E(5)+1/2*E(5)^4)*k ]
493
gap> Size( g );
494
120
495
gap> IsPerfect( g );
496
true
497

498
499
Since there is only one perfect group of order 120, up to isomorphism, we
500
see that the group g is isomorphic to SL_2(5). As usual, a permutation
501
representation of the group can be constructed using a suitable action of
502
the group.
503
504
 Example 
505
gap> cos:= RightCosets( g, Subgroup( g, [ g1 ] ) );;
506
gap> Length( cos );
507
24
508
gap> hom:= ActionHomomorphism( g, cos, OnRight );;
509
gap> im:= Image( hom );
510
Group([ (2,3,5,9,15)(4,7,12,8,14)(10,17,23,20,24)(11,19,22,16,13), 
511
 (1,2,4,8,3,6,11,20,17,19)(5,10,18,7,13,22,12,21,24,15)(9,16)(14,23) ])
512
gap> Size( im );
513
120
514

515
516
To get a matrix representation of g or of the whole algebra q, we must
517
specify a basis of the vector space on which the algebra acts, and compute
518
the linear action of elements w.r.t. this basis.
519
520
 Example 
521
gap> bas:= CanonicalBasis( q );;
522
gap> BasisVectors( bas );
523
[ e, i, j, k ]
524
gap> op:= OperationAlgebraHomomorphism( q, bas, OnRight );
525
<op. hom. AlgebraWithOne( NF(5,[ 1, 4 ]), 
526
[ e, i, j, k ] ) -> matrices of dim. 4>
527
gap> ImagesRepresentative( op, e );
528
[ [ 1, 0, 0, 0 ], [ 0, 1, 0, 0 ], [ 0, 0, 1, 0 ], [ 0, 0, 0, 1 ] ]
529
gap> ImagesRepresentative( op, i );
530
[ [ 0, 1, 0, 0 ], [ -1, 0, 0, 0 ], [ 0, 0, 0, -1 ], [ 0, 0, 1, 0 ] ]
531
gap> ImagesRepresentative( op, g1 );
532
[ [ 1/2*E(5)+1/2*E(5)^4, 1/2, -1/2*E(5)^2-1/2*E(5)^3, 0 ], 
533
 [ -1/2, 1/2*E(5)+1/2*E(5)^4, 0, -1/2*E(5)^2-1/2*E(5)^3 ], 
534
 [ 1/2*E(5)^2+1/2*E(5)^3, 0, 1/2*E(5)+1/2*E(5)^4, -1/2 ], 
535
 [ 0, 1/2*E(5)^2+1/2*E(5)^3, 1/2, 1/2*E(5)+1/2*E(5)^4 ] ]
536

537
538
539
6.3 Further Information about Vector Spaces and Algebras
540
541
More information about vector spaces can be found in Chapter 'Reference:
542
Vector Spaces'. Chapter 'Reference: Algebras' deals with the functionality
543
for general algebras. Furthermore, concerning special functions for Lie
544
algebras, there is Chapter 'Reference: Lie Algebras'.
545
546
547