PREP - Professional Enhancement Programs of the MAA


Abstract Algebra with GAP

A PREP Workshop

GAP log - Thursday July 17, 10 am - 11:30 am

gap> V:=GF(3)^2;
( GF(3)^2 )
gap> Elements(V);
[ [ 0*Z(3), 0*Z(3) ], [ 0*Z(3), Z(3)^0 ], [ 0*Z(3), Z(3) ], [ Z(3)^0, 0*Z(3) ], [ Z(3)^0, Z(3)^0 ], [ Z(3)^0, Z(3) ],
  [ Z(3), 0*Z(3) ], [ Z(3), Z(3)^0 ], [ Z(3), Z(3) ] ]
gap> D:=Subspaces(V,1);
Subspaces( ( GF(3)^2 ), 1 )
gap> e:=Elements(D);
[ <vector space of dimension 1 over GF(3)>, <vector space of dimension 1 over GF(3)>, 
  <vector space of dimension 1 over GF(3)>, <vector space of dimension 1 over GF(3)> ]
gap> Elements(e[1]);
[ [ 0*Z(3), 0*Z(3) ], [ 0*Z(3), Z(3)^0 ], [ 0*Z(3), Z(3) ] ]
gap> Elements(e[2]);
[ [ 0*Z(3), 0*Z(3) ], [ Z(3)^0, 0*Z(3) ], [ Z(3), 0*Z(3) ] ]
gap> Elements(e[3]);
[ [ 0*Z(3), 0*Z(3) ], [ Z(3)^0, Z(3)^0 ], [ Z(3), Z(3) ] ]
gap> Elements(e[4]);
[ [ 0*Z(3), 0*Z(3) ], [ Z(3)^0, Z(3) ], [ Z(3), Z(3)^0 ] ]
gap> Size(Subspaces(V,1));
4
gap> Display(Elements(V));
 . .
 . 1
 . 2
 1 .
 1 1
 1 2
 2 .
 2 1
 2 2
gap> V:=GF(3)^3;
( GF(3)^3 )
gap> Display(Elements(V));
 . . .
 . . 1
 . . 2
 . 1 .
 . 1 1
 . 1 2
 . 2 .
 . 2 1
 . 2 2
 1 . .
 1 . 1
 1 . 2
 1 1 .
 1 1 1
 1 1 2
 1 2 .
 1 2 1
 1 2 2
 2 . .
 2 . 1
 2 . 2
 2 1 .
 2 1 1
 2 1 2
 2 2 .
 2 2 1
 2 2 2
gap> D:=Subspaces(V,1);
Subspaces( ( GF(3)^3 ), 1 )
gap> Size(D);
13
gap> e:=Elements(D);
[ <vector space of dimension 1 over GF(3)>, <vector space of dimension 1 over GF(3)>, 
  <vector space of dimension 1 over GF(3)>, <vector space of dimension 1 over GF(3)>, 
  <vector space of dimension 1 over GF(3)>, <vector space of dimension 1 over GF(3)>, 
  <vector space of dimension 1 over GF(3)>, <vector space of dimension 1 over GF(3)>, 
  <vector space of dimension 1 over GF(3)>, <vector space of dimension 1 over GF(3)>, 
  <vector space of dimension 1 over GF(3)>, <vector space of dimension 1 over GF(3)>, 
  <vector space of dimension 1 over GF(3)> ]
gap> List([1..13],x->Elements(e[x]));
[ [ [ 0*Z(3), 0*Z(3), 0*Z(3) ], [ 0*Z(3), 0*Z(3), Z(3)^0 ], [ 0*Z(3), 0*Z(3), Z(3) ] ], 
  [ [ 0*Z(3), 0*Z(3), 0*Z(3) ], [ 0*Z(3), Z(3)^0, 0*Z(3) ], [ 0*Z(3), Z(3), 0*Z(3) ] ], 
  [ [ 0*Z(3), 0*Z(3), 0*Z(3) ], [ 0*Z(3), Z(3)^0, Z(3)^0 ], [ 0*Z(3), Z(3), Z(3) ] ], 
  [ [ 0*Z(3), 0*Z(3), 0*Z(3) ], [ 0*Z(3), Z(3)^0, Z(3) ], [ 0*Z(3), Z(3), Z(3)^0 ] ], 
  [ [ 0*Z(3), 0*Z(3), 0*Z(3) ], [ Z(3)^0, 0*Z(3), 0*Z(3) ], [ Z(3), 0*Z(3), 0*Z(3) ] ], 
  [ [ 0*Z(3), 0*Z(3), 0*Z(3) ], [ Z(3)^0, 0*Z(3), Z(3)^0 ], [ Z(3), 0*Z(3), Z(3) ] ], 
  [ [ 0*Z(3), 0*Z(3), 0*Z(3) ], [ Z(3)^0, 0*Z(3), Z(3) ], [ Z(3), 0*Z(3), Z(3)^0 ] ], 
  [ [ 0*Z(3), 0*Z(3), 0*Z(3) ], [ Z(3)^0, Z(3)^0, 0*Z(3) ], [ Z(3), Z(3), 0*Z(3) ] ], 
  [ [ 0*Z(3), 0*Z(3), 0*Z(3) ], [ Z(3)^0, Z(3)^0, Z(3)^0 ], [ Z(3), Z(3), Z(3) ] ], 
  [ [ 0*Z(3), 0*Z(3), 0*Z(3) ], [ Z(3)^0, Z(3)^0, Z(3) ], [ Z(3), Z(3), Z(3)^0 ] ], 
  [ [ 0*Z(3), 0*Z(3), 0*Z(3) ], [ Z(3)^0, Z(3), 0*Z(3) ], [ Z(3), Z(3)^0, 0*Z(3) ] ], 
  [ [ 0*Z(3), 0*Z(3), 0*Z(3) ], [ Z(3)^0, Z(3), Z(3)^0 ], [ Z(3), Z(3)^0, Z(3) ] ], 
  [ [ 0*Z(3), 0*Z(3), 0*Z(3) ], [ Z(3)^0, Z(3), Z(3) ], [ Z(3), Z(3)^0, Z(3)^0 ] ] ]
gap> Display(Elements(D));
[ VectorSpace( GF(3), [ [ 0*Z(3), 0*Z(3), Z(3)^0 ] ] ), VectorSpace( GF(3), [ [ 0*Z(3), Z(3)^0, 0*Z(3) ] ] ), 
  VectorSpace( GF(3), [ [ 0*Z(3), Z(3)^0, Z(3)^0 ] ] ), VectorSpace( GF(3), [ [ 0*Z(3), Z(3)^0, Z(3) ] ] ), 
  VectorSpace( GF(3), [ [ Z(3)^0, 0*Z(3), 0*Z(3) ] ] ), VectorSpace( GF(3), [ [ Z(3)^0, 0*Z(3), Z(3)^0 ] ] ), 
  VectorSpace( GF(3), [ [ Z(3)^0, 0*Z(3), Z(3) ] ] ), VectorSpace( GF(3), [ [ Z(3)^0, Z(3)^0, 0*Z(3) ] ] ), 
  VectorSpace( GF(3), [ [ Z(3)^0, Z(3)^0, Z(3)^0 ] ] ), VectorSpace( GF(3), [ [ Z(3)^0, Z(3)^0, Z(3) ] ] ), 
  VectorSpace( GF(3), [ [ Z(3)^0, Z(3), 0*Z(3) ] ] ), VectorSpace( GF(3), [ [ Z(3)^0, Z(3), Z(3)^0 ] ] ), 
  VectorSpace( GF(3), [ [ Z(3)^0, Z(3), Z(3) ] ] ) ]
gap> V:=GF(2)^3;
( GF(2)^3 )
gap> D:=Subspaces(V,1);
Subspaces( ( GF(2)^3 ), 1 )
gap> Size(D);
7
gap> V:=GF(5)^3;
( GF(5)^3 )
gap> D:=Subspaces(V,1);
Subspaces( ( GF(5)^3 ), 1 )
gap> Size(D);
31
gap> V:=GF(7)^3;
( GF(7)^3 )
gap> D:=Subspaces(V,1);
Subspaces( ( GF(7)^3 ), 1 )
gap> Size(D);
57
gap> V:=GF(11)^3;
( GF(11)^3 )
gap> D:=Subspaces(V,1);
Subspaces( ( GF(11)^3 ), 1 )
gap> Size(D);
133
gap> V:=GF(3)^3;
( GF(3)^3 )
gap> D:=Subspaces(V,2);
Subspaces( ( GF(3)^3 ), 2 )
gap> Size(D);
13
gap> V:=GF(5)^3;
( GF(5)^3 )
gap> D:=Subspaces(V,2);
Subspaces( ( GF(5)^3 ), 2 )
gap> Size(D);
31
gap> GF(5);
GF(5)
gap> F:= GF(2^4);
GF(2^4)
gap> Elements(F);
[ 0*Z(2), Z(2)^0, Z(2^2), Z(2^2)^2, Z(2^4), Z(2^4)^2, Z(2^4)^3, Z(2^4)^4, Z(2^4)^6, Z(2^4)^7, Z(2^4)^8, Z(2^4)^9, 
  Z(2^4)^11, Z(2^4)^12, Z(2^4)^13, Z(2^4)^14 ]
gap> Order(Z(2^2));
3
gap> DegreeFFE(Z(2^4));
4
gap> DegreeFFE(Z(2^4)^2);
4
gap> Order(Z(2^6));
63
gap> Order(Z(2^2)^3);
1
gap> Order(Z(2^2));
3
gap> DegreeFFE(Z(2^6));
6
gap> DegreeFFE(Z(2^2)^3);
1
gap> x:= X(GF(2),"x");
x
gap> f:= x^4+x+1;
Z(2)^0+x+x^4
gap> IsIrreducible(f);
true
gap> F:= AlgebraicExtension(GF(2),f);
<field of size 16>
gap> Elements(F);
Error, no method found! For debugging hints type ?Recovery from NoMethodFound
Error, no 3rd choice method found for `PrimitiveRoot' on 1 arguments called from
PrimitiveRoot( F ) called from
Basis( V ) called from
AsSSortedList( coll ) called from
<function>( <arguments> ) called from read-eval-loop
Entering break read-eval-print loop ...
you can 'quit;' to quit to outer loop, or
you can 'return;' to continue
brk> gap> g:= x^3+x^2+1;
Z(2)^0+x^2+x^3
gap> IsIrreducbile(g);
Variable: 'IsIrreducbile' must have a value

gap> IsIrreducible(g);
true
gap> F:= AlgebraicExtension(GF(2),g);
<field of size 8>
gap> DegreeFFE(Z(2^4)^1); DegreeFFE(Z(2^4)^2); Degree(Z(2^4)^3);
4
4
Error, no method found! For debugging hints type ?Recovery from NoMethodFound
Error, no 1st choice method found for `Degree' on 1 arguments called from
<function>( <arguments> ) called from read-eval-loop
Entering break read-eval-print loop ...
you can 'quit;' to quit to outer loop, or
you can 'return;' to continue
brk> gap> DegreeFFE(Z(2^4)^1); DegreeFFE(Z(2^4)^2); DegreeFFE(Z(2^4)^3);
4
4
4
gap> DegreeFFE(Z(2^4)^6); DegreeFFE(Z(2^4)^5); DegreeFFE(Z(2^4)^4);
4
2
4
gap> DegreeFFE(Z(2^4)^7); DegreeFFE(Z(2^4)^8); DegreeFFE(Z(2^4)^9);
4
4
4
gap> DegreeFFE(Z(2^4)^7); DegreeFFE(Z(2^4)^8); DegreeFFE(Z(2^4)^10);
4
4
2
gap> Order(Z(2^4)^1); Order(Z(2^4)^2); Order(Z(2^4)^3);
15
15
5
gap> Order(Z(2^4)^6); Order(Z(2^4)^5); Order(Z(2^4)^4);
5
3
15
gap> Order(Z(2^4)^7); Order(Z(2^4)^8); Order(Z(2^4)^9);
15
15
5
gap> Order(Z(2^4)^7); Order(Z(2^4)^8); Order(Z(2^4)^10);
15
15
3
gap> x:= X(GF(3),"x");
x
gap> Factors(x^9-x);
[ x, Z(3)^0+x, -Z(3)^0+x, Z(3)^0+x^2, -Z(3)^0+x+x^2, -Z(3)^0-x+x^2 ]
gap> Factors(x^27-x);
[ x, Z(3)^0+x, -Z(3)^0+x, Z(3)^0-x+x^3, -Z(3)^0-x+x^3, -Z(3)^0+x^2+x^3, -Z(3)^0+x+x^2+x^3, Z(3)^0-x+x^2+x^3, 
  Z(3)^0-x^2+x^3, Z(3)^0+x-x^2+x^3, -Z(3)^0-x-x^2+x^3 ]
gap> Factors(x^81-x);
[ x, Z(3)^0+x, -Z(3)^0+x, Z(3)^0+x^2, -Z(3)^0+x+x^2, -Z(3)^0-x+x^2, -Z(3)^0+x+x^4, -Z(3)^0-x+x^4, -Z(3)^0+x^2+x^4, 
  Z(3)^0+x+x^2+x^4, Z(3)^0-x+x^2+x^4, -Z(3)^0-x^2+x^4, -Z(3)^0+x^3+x^4, Z(3)^0-x+x^3+x^4, Z(3)^0+x^2+x^3+x^4, 
  Z(3)^0+x+x^2+x^3+x^4, -Z(3)^0-x+x^2+x^3+x^4, -Z(3)^0-x-x^2+x^3+x^4, -Z(3)^0-x^3+x^4, Z(3)^0+x-x^3+x^4, 
  Z(3)^0+x^2-x^3+x^4, -Z(3)^0+x+x^2-x^3+x^4, Z(3)^0-x+x^2-x^3+x^4, -Z(3)^0+x-x^2-x^3+x^4 ]
gap> f:= x^3-x+1;
Z(3)^0-x+x^3
gap> IsIrreducible(f);
true
gap> F:= AlgebraicExtension(GF(3),f);
<field of size 27>
gap> H:= Display(F);
Field( [ (a) ] )
Function call: <func> must return a value
gap> Elements(H);
Variable: 'H' must have a value

gap> r:= PrimitiveElements(F);
Variable: 'PrimitiveElements' must have a value

gap> r:= PrimitiveElement(F);
(a)
gap> r^4;
(Z(3)*a+a^2)
gap> KnownAttributesOfObject(F);
[ "Size", "ZeroImmutable", "OneImmutable", "Characteristic", "LeftActingDomain", "MultiplicativeNeutralElement", 
  "Dimension", "DefiningPolynomial", "DegreeOverPrimeField", "GeneratorsOfDivisionRing", "PrimitiveElement", 
  "RootOfDefiningPolynomial" ]
gap> LogTo();
Back to Home Page
 
 

This PREP workshop is made possible by the NSF grant DUE: 0089005