[GAP Forum] Checking equality of elements of words in a finitely presented group

Derek Holt D.F.Holt at warwick.ac.uk
Fri Apr 29 14:01:19 BST 2016


Dear Edwin, dear GAP Forum

You can attempt to solve problems like this using the kbmag package (which
needs to be compiled). I would guess that it is also possible to do so
using the built-in GAP Knuth-Bendix rewriting system functionality, but
I will leave someone else to help with that, since I am not so familiar
with it. 

In this example, we are fortunate and, although the group is infinite, we get
a finite confluent rewriting system (with 1734 rewrite rules), which we can
use to solve the word problem.

In most examples of infinite groups defined by a finite presentation, you
do not get a finite confluent rewriting system (although you still may
be able to find an automatic structure), but you can still use the rewrite
rules to attempt to prove that eleemnts are equal to the identity. In this
situation, you cannot in general prove that an element is not equal to the
identity, but you can verify that it is.

Here are the commands need for this calcualtion using kbmag.

LoadPackage("kbmag");
f:=FreeGroup(5);;
rel:=[(f.(5)*f.(1))^5];;
for i in [1..4] do
  Add(rel,(f.(i)*f.(i+1))*(f.(5)*f.(1))^(-1));
od;
g:=f/rel;;
R:=KBMAGRewritingSystem(g);;
MakeConfluent(R);
  #true
F:=FreeStructureOfRewritingSystem(R);;
u := GeneratorsOfGroup(F);;
ReducedWord(R, (u[5]*u[1])^5);
 #<identity ...>
ReducedWord(R, u[1]^5*u[2]*u[4]*u[1]*u[3]*u[5]);
 # <identity ...>

Good luck!
Derek Holt.

On Thu, Apr 28, 2016 at 03:01:13PM -0400, W. Edwin Clark wrote:
> I am trying to use GAP to establish equality of two words in a finitely
> presented group and am having problems.
> 
> First here is a successful test case:
> 
> f:=FreeGroup(5);;
> rel:=[(f.(5)*f.(1))^5];;
> g:=f/rel;;
> u:=GeneratorsOfGroup(g);;
> (u[5]*u[1])^5 = Identity(g);  #testing this identity which is actually a
> given relation works successfully
> 
>        true
> 
> But if I add some more relators to rel, I cannot even get
> equality to the identity of the first relator.  Here's what I tried:
> 
> f:=FreeGroup(5);;
> rel:=[(f.(5)*f.(1))^5];;
> for i in [1..4] do
>  Add(rel,(f.(i)*f.(i+1))*(f.(5)*f.(1))^(-1));
> od;
> rel;;
> g:=f/rel;;
> u:=GeneratorsOfGroup(g);
> 
> (u[5]*u[1])^5 = Identity(g);  #I gave up waiting for an answer
> 
> Why is this so difficult?
> 
> What I really want in this group is to show that
> 
> u[1]^5*u[2]*u[4]*u[1]*u[3]*u[5] = Identity(g)
> 
> Any help would be appreciated.
> 
> --Edwin Clark
> _______________________________________________
> Forum mailing list
> Forum at mail.gap-system.org
> http://mail.gap-system.org/mailman/listinfo/forum



More information about the Forum mailing list