I would like to be able to give GAP some relations and a word, and have it collect that word into a normal form (say with collection from the left).
For instance, I would tell GAP $ [x_{2},x_{1}]=x_{3} $ and then have it collect $ x_{2}x_{1} $ to obtain $x_{1} x_{2} x_{3} $.
The reason I am interested in this is that I have some large pc-presentations that are not consistent (but which I would like to be be consistent). I would like to use GAP to do the word collections in the consistency algorithm (Wamsley/Vaughan-Lee), and then to try to use this to inspect where things go wrong so I can try to tweak my presentations.
Here is a small example:
$ G = \langle x_{1},x_{2},x_{3} | x_{1}^{2}=x_{2}, x_{2}^{2}=x_{3}, x_{3}^{2}=1, [x_{2},x_{1}]=x_{3} \rangle $.
Collecting by hand we can see that: $(x_{1}^{2})x_{1}=x_{2}x_{1}=x_{1}x_{2}x_{3}$ but $x_{1}(x_{1}^{2})=x_{1}x_{2}$ and hence we deduce this is not a consistent presentation, and that $x_{3}=1$.
- Is it possible to do these computations within GAP, and if so, how?
- Could you demonstrate how one might do the example above, using GAP.
Thank you
This functionality is in GAP, but it is not exposed through nice functions. You will want to look at the function
GROUP_BY_PCGS_FINITE_ORDERSinlib/pcgs.giand the functions calles by it. In particularGroupByRwsinlib/rwsgrp.gi, as well as the confluence test inlib/rwspcgrp.gi. There is a bit of description in the manual https://www.gap-system.org/Manuals/doc/ref/chap46.html#X8581887880556E0C but it will require some trial and error. It would take me a couple of hours to extract a meaningful example, thus the vague answer.