PREP - Professional Enhancement Programs of the MAA



 

Incorporating the Software GAP into Teaching Abstract Algebra

A PREP Workshop

GAP log - Friday July 14, 2:00 pm - 4:00 pm

Project of Anne and Gordon W.
gap> Read("EllipticCurveFunctions");
gap> goodEllipticCurve(2,4,7);
true
gap> ec:=makeEllipticCurve(2,4,7);
[ [  ], [ 0*Z(7), Z(7)^2 ], [ 0*Z(7), Z(7)^5 ], [ Z(7)^0, 0*Z(7) ], [ Z(7), Z(7) ], [ Z(7), Z(7)^4 ], [ Z(7)^2, Z(7) ], 
  [ Z(7)^2, Z(7)^4 ], [ Z(7)^3, Z(7)^0 ], [ Z(7)^3, Z(7)^3 ] ]
gap> ecList(ec);
[ [  ], [ 0, 2 ], [ 0, 5 ], [ 1, 0 ], [ 3, 3 ], [ 3, 4 ], [ 2, 3 ], [ 2, 4 ], [ 6, 1 ], [ 6, 6 ] ]
gap> ecg:= ecGroupMake(2,4,7);

gap> ecPlus([3,3], [6,1], 2,4,7);
[ 0, 2 ]
gap> ecScalarMult(34,[9,5], 1,0,23))
Syntax error: ; expected
ecScalarMult(34,[9,5], 1,0,23))
                              ^
gap> ;
gap> ecScalarMult(34,[9,5], 1,0,23);
[ 18, 13 ]
gap> ecScalarMult(83,[9,5], 1,0,23);
[ 9, 18 ]
gap> ecScalarMult(83,[18,13], 1,0,23);
[ 18, 10 ]
gap> ecScalarMult(83,[9,5], 1,0,23);
[ 9, 18 ]
gap> ecScalarMult(34,[9,18], 1,0,23);
[ 18, 10 ]
Section 19: Gaussian Integers
gap> R:= GaussianIntegers;
GaussianIntegers
gap> i= E(4);
Variable: 'i' must have a value

gap> i:= E(4);
E(4)
gap> i^2;
-1
gap> Factors(6);
[ 2, 3 ]
gap> Factors(R,6);
[ 1-E(4), 1+E(4), 3 ]
gap> Factors(R,2);  2 mod 4;
[ 1-E(4), 1+E(4) ]
2
gap> Factors(R,3);  3 mod 4;
[ 3 ]
3
gap> Factors(R,5);  5 mod 4;
[ 2-E(4), 2+E(4) ]
1
gap> 
gap> Factors(R,7);  7 mod 4;
[ 7 ]
3
gap> Factors(R,11);  11 mod 4;
[ 11 ]
3
gap> Factors(R,13);  13 mod 4;
[ 3-2*E(4), 3+2*E(4) ]
1
gap> Factors(R,17);  17 mod 4;
[ 4-E(4), 4+E(4) ]
1
gap> Factors(R,23);  23 mod 4;
[ 23 ]
3
gap> Factors(R,29);  29 mod 4;
[ 5-2*E(4), 5+2*E(4) ]
1
        
Section 21: Orbits and Stabilizers
gap> G:= SymmetricGroup(8);
Sym( [ 1 .. 8 ] )
gap> H:= Subgroup(G, [(1,2,3)(4,5,6), (7,8)]);
Group([ (1,2,3)(4,5,6), (7,8) ])
gap> Elements(H);
[ (), (7,8), (1,2,3)(4,5,6), (1,2,3)(4,5,6)(7,8), (1,3,2)(4,6,5), 
  (1,3,2)(4,6,5)(7,8) ]
gap> Order(H,3);
Error, no method found! For debugging hints type ?Recovery from NoMethodFound
Error, no 1st choice method found for `Order' on 2 arguments called from
(  ) 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> quit;
gap> Orbit(H,3);
[ 1, 3, 2 ]
gap> Stabilizer(H,3);
Group([ (7,8) ])
gap> Elements(Stabilizer(H,3));
[ (), (7,8) ]
gap> g:= DihedralGroup(IsPermGroup,20);
Group([ (1,2,3,4,5,6,7,8,9,10), (2,10)(3,9)(4,8)(5,7) ])
gap> e:= [1..10];
[ 1 .. 10 ]
gap> List(e, x -> Size(Orbit(g,x)));
[ 10, 10, 10, 10, 10, 10, 10, 10, 10, 10 ]
gap> List(e, x -> Size(Stabilizer(g,x)));
[ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 ]
gap> g:= DihedralGroup(IsPermGroup,100);

gap> e:= [1..50];
[ 1 .. 50 ]
gap> List(e, x -> Size(Orbit(g,x)));
[ 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 
  50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 
  50, 50, 50, 50, 50, 50, 50, 50, 50, 50 ]
gap> List(e, x -> Size(Stabilizer(g,x)));
[ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 
  2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 ]
gap> g:= SymmetricGroup(4);
Sym( [ 1 .. 4 ] )
gap> e:= [1..4];
[ 1 .. 4 ]
gap> List(e, x -> Size(Orbit(g,x)));
[ 4, 4, 4, 4 ]
gap> List(e, x -> Size(Stabilizer(g,x)));
[ 6, 6, 6, 6 ]
Section 20: Solvable Groups
gap> S:= SymmetricGroup(3);
Sym( [ 1 .. 3 ] )
gap> DerivedSeries(S);
[ Sym( [ 1 .. 3 ] ), Group([ (1,3,2) ]), Group(()) ]
gap> S:= SymmetricGroup(5);
Sym( [ 1 .. 5 ] )
gap> DerivedSeries(S);
[ Sym( [ 1 .. 5 ] ), Group([ (1,3,2), (2,4,3), (2,3)(4,5) ]) ]
gap> IsSolvable(S);
false
gap> d5:= DihedralGroup(IsPermGroup,10);
Group([ (1,2,3,4,5), (2,5)(3,4) ])
gap> DerivedSeries(d5);
[ Group([ (1,2,3,4,5), (2,5)(3,4) ]), Group([ (1,3,5,2,4) ]), Group(()) ]
gap> d30:= DihedralGroup(IsPermGroup,60);
Group([ (1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,
    29,30), (2,30)(3,29)(4,28)(5,27)(6,26)(7,25)(8,24)(9,23)(10,22)(11,21)(12,20)(13,
    19)(14,18)(15,17) ])
gap> DerivedSeries(d30);
[ Group([ (1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,
        28,29,30), (2,30)(3,29)(4,28)(5,27)(6,26)(7,25)(8,24)(9,23)(10,22)(11,21)(12,
        20)(13,19)(14,18)(15,17) ]), 
  Group([ (1,3,5,7,9,11,13,15,17,19,21,23,25,27,29)(2,4,6,8,10,12,14,16,18,20,22,24,
        26,28,30), (1,7,13,19,25)(2,8,14,20,26)(3,9,15,21,27)(4,10,16,22,28)(5,11,17,
        23,29)(6,12,18,24,30) ]), Group(()) ]
gap> d4:= DihedralGroup(IsPermGroup,8);
Group([ (1,2,3,4), (2,4) ])
gap> d8:= DihedralGroup(IsPermGroup,16);
Group([ (1,2,3,4,5,6,7,8), (2,8)(3,7)(4,6) ])
gap> DerivedSeries(DirectProduct(d4,d8));
[ Group([ (1,2,3,4), (2,4), (5,6,7,8,9,10,11,12), (6,12)(7,11)(8,10) ]), 
  Group([ (5,7,9,11)(6,8,10,12), (5,9)(6,10)(7,11)(8,12), (1,3)(2,4) ]), Group(()) ]
gap> IsSolvable(DirectProduct(d4,d8));
true

Back to Home Page
 
 

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

<\body>