3
$\begingroup$

Background: In GAP I created the DihedralGroup of an octagon as a quotient of the freegroup on 2 variables and the presentation $r^8=s^2=s*r*(r^7*s)^{-1}=e \ $ as follows:

 gap> f:=FreeGroup(2);    gap> r:=f.1;  f1  gap> s:=f.2;  f2  gap> G:=f/[r^8,s^2,s*r*(r^7*s)^-1];    gap> str(G);  "D16"  gap> r^8;  f1^8  gap> Elements(G); [ , f1, f2, f1^2, f1^4, f1*f2, f1^3, f1^5, f1^6*f2, f1^4*f2,  f1^6, f1^7*f2, f1^5*f2, f1^7, f1^2*f2, f1^3*f2 ]  gap> 

I would have expected that r^8 would return the identity element, instead it leaves r^8 unevaluated.

Question: What should I do so that GAP evaluates $r^8$ to $e$?

2 Answers 2

6

You wantSetReducedMultiplicationwhich handles the monoid conversion for you.

 gap> f := FreeGroup( "r", "s" );;  gap> g := f/ParseRelators(f,"r^8,s^2,rsr=s");;  gap> SetReducedMultiplication( g );;  gap> AssignGeneratorVariables(g);;  #I  Assigned the global variables [ r, s ]  gap> r^8;    gap> (r*s)^5;  r*s 
2

You have defined ${\mathrm r}$ to be the first generator of the free group, so there is no way of getting it to evaluate to the identity of $G$!

But you would have the same problem with $\mathrm{G.1^8}$. With a small finite group like this one, you could do the following:

gap> elts := Elements(G);; gap> elts[Position(elts,G.1^8)];  gap> elts[Position(elts, G.1^-3 * G.2 * G.1^6 * G.1^-1 * G.1)]; f1^7*f2 

There are things called rewriting systems in GAP that you can use to attempt to reduce words in finitely presented groups to a normal form, but they are a little complicated, and you have to start by converting the group to a monoid.

  • 0
    So, I'll find the 'proper' way of doing it in chapter 36 of the manual, is that right? Please let me know, if there is more.2012-02-07