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