GAP Lesson 4
Change to the directory where you store your GAP files, and then start up GAP.
gap> LogTo("GAPlesson4");
gap> At:=KnownAttributesOfObject;
Groups given by Presentations
There is more than one syntactically correct way to input a group given by a presentation. We start with various ways to input free groups.
gap> a:=FreeGroup(2);
gap> a.1*a.2;
gap> f1*f2;
gap> b:=FreeGroup(2,"b");
gap> b.1/b.2^3;
gap> b1*b2;
gap> c:=FreeGroup(2,"b");
gap> c.1*c.2;
gap> b.1*b.2;
gap> c.1*c.2=b.1*b.2;
gap> c.1 in c;
gap> c.1 in b;
gap> d:=FreeGroup("u","v");
gap> u;
gap> d.1;
Discuss all the things that went on in the last lines. How many ways can you think of to specify to the computer the first generator of the group d? What should you try to avoid? Would the computer allow you to do, for example, e:=FreeGroup("ab", "b^-1"); and why might this be a bad idea?
gap> u:=d.1;
gap> v:=d.2;
gap> u*v/(v*u);
Having named variables in a convenient fashion, we now impose relations on a free group.
gap> d;
gap> Size(d);
gap> d:=d/[u^4,v^2,v*u*v*u];
gap> At(d);
gap> Size(d);
gap> At(d);
gap> Elements(d);
gap> At(d);
gap> Center(d);
gap> isod:=IsomorphismPermGroup(d);
gap> Image(isod);
gap> Image(isod, d.1*d.2));
Some of the last lines were intended to show you that the commands the worked for
permutation and matrix groups may also work for groups given by generators
and relations. What is going on in the following lines?
gap> v;
gap> v in d;
gap> GeneratorsOfGroup(d);
gap> d.2;
gap> d.2 in d;
We had started to feel comfortable about GAP's conventions, and now we see more pitfalls!
The following lines fix the problem.
gap> u:=d.1;
gap> v:=d.2;
gap> v in d;
The following computes the homomorphism to a permutation group which GAP has already done:
gap> FactorCosetOperation(d,Subgroup(d,[v]));
[ u, v ] -> [ (1,2,3,4), (2,4) ]
The following command is also possible at this stage.
gap> Action(d,RightCosets(d,Subgroup(d,[v])),OnRight);
We now study the group <r,s,t | r^2 = s^3 = t^5 = rst>. Somehow we have to enter these three relations, and it may help to shorten the generator names, as in the following.
gap> e:=FreeGroup(3,"e");
e1:=e.1;
e2:=e.2;
e3:=e.3;
gap> e:=e/[e1^2/e2^3,e2^3/e3^5,e3^5/(e1*e2*e3)];
gap> Size(e);
gap> At(e);
gap> ce:=Centre(e);
Exercises: 1. Determine whether or not the center is generated by the element rst.
Discuss what issues came up, and whether anything happened that might lead to an incorrect conclusion.
2. Determine the isomorphism type of the factor group e/ce.
3. Show that e is not isomorphic to the direct product of ce and (e/ce).
In doing these exercises you will explore what commands seem to work for groups given by a presentation.