**GAP Lesson 3
**

*Change to the directory where you store your GAP files, and then start up GAP. In the session which follows, pause for discussion at the spaces between command groupings.
*

gap> c:=Group((1,2,3,4,5,6,7),(2,3)(4,7));

gap> At(c);

gap> Size(c);

gap> GeneratorsOfGroup(c);

gap> c.1;

gap> c.2;

gap> At(c);

gap> s:=SylowSubgroup(c,2);

gap> At(c);

gap> At(s);

gap> Orbits(s,[1..7]);

gap> news:=Action(s,last[3]);

gap> Size(news);

gap> Size(news);

What do you think would happen if you were to do

?

gap> Tuples([1..3],2);

gap> UnorderedTuples([1..3],2);

gap> Arrangements([1..3],2);

gap> Combinations([1..3],2);

gap> Orbits(newers);

gap> Action(c,RightCosets(c,s),OnRight);

gap> Orbits(last);

gap> h:=SL(2,4);

gap> Size(h);

gap> sh:=SylowSubgroup(h,2);

gap> n:=Normalizer(h,sh);

gap> Size(n);

gap> newh:=Action(h,RightCosets(h,n),OnRight);

gap> Size(newh);

gap> k:=Group((1,5)(2,6),(1,3)(4,6),(2,3)(4,5));

We learn: vectors are lists, matrices are lists of lists, they can be manipulated the same way as integers, the functions BaseMat, TransposedMat, NullspaceMat, RankMat, TriangulizeMat, PrintArray, the library of matrix groups; how finite field elements are represented and manipulated; computations with matrix groups are mostly done by finding a permutation representation first.

gap> Size(g);

gap> GeneratorsOfGroup(g);

gap> g.1;

gap> Print(g.1);

gap> PrintArray(g.1);

gap> SylowSubgroup(g,2);

gap> At(g);

gap> FieldOfMatrixGroup(g);

gap> GF(2);

gap> Elements(GF(2));

gap> Elements(GF(4));

gap> Z(16)^3+Z(16)^4;

gap> List(Elements(GF(2)),Int);

gap> List(Elements(GF(4)),Int);

gap> List(Elements(GF(11)),Int);

gap> Elements(GF(11));

gap> MatPrint:=function(mat)

> PrintArray(List(mat,x->List(x,Int)));

> end;

function( mat ) ... end

gap> MatPrint(g.1);

gap> MatPrint(g.2);

gap> g.1*g.2;

gap> MatPrint(g.1*g.2);

gap> MatPrint((g.1*g.2)^-1);

gap> mat:=g.2+g.2^2;

gap> MatPrint(mat);

gap> MatPrint(BaseMat(mat));

gap> MatPrint(mat);

gap> MatPrint(NullspaceMat(mat));

gap> RankMat(mat);

gap> MatPrint(TransposedMat(g.2));

gap> Orbits(g,GF(2)^3);

gap> gcopy:=Action(g, last[2]);

gap> Size(gcopy);

gap> Print(g.1);

gap> Orbit(g,g.1[1]);

gap> Action(g,last);

gap> NiceObject(g);

gap> hom:=NiceMonomorphism(g);

<Action homomorphism>

gap> Image(hom,g);

Group([ (5,7)(6,8), (2,3,5)(4,7,6) ])

gap> Image(hom,g.1);

(5,7)(6,8)