recently Evelyn Hart asked you whether GAP can handle group rings.
She toldI'm interested in the group ring Z[\pi] where Z is the integers and \pi is the group on four generators, a,b,c,d with one relation a b 1/a 1/b c d 1/c 1/d.
At the moment GAP has no facilities to do computations with
group rings. In the near future we will introduce group ring
data structures. But there is no aim to deal with group rings
of finitely presented groups, since for arithmetic calculations
with group ring elements it is necessary to decide at least
whether or not two group elements are equal, for which there is
no general algorithmic method with finitely presented groups.
Sorry that GAP does not provide the expected tools in any
straightforward way. However, does anybody have ideas how
to attack problems of this kind algorithmically?
The group in question appears to admit a finite confluent rewriting
system (with the RPO, according to Derek Holt's Knuth-Bendix
program). If this is true (ie if I haven't made a typing mistake)
then the word problem is easily solvable and so computation in the
group ring should be feasible. As yet GAP has neither group rings
nor groups given by confluent rewriting systems (except AG groups) ,
but they could be added within the domain system.
There are some tentative plans to add groups given by confluent rewriting
systems to GAP.
The group in question is a two-dimensional surface group, and LeChenadec
proved that all such groups have confluent rewriting systems with
respect to a short-lex ordering (which is preferable to RPO, because words
are reduced to their shortest possible forms). The snag is that the
ordering of the generators that you need for this is not the obvious one.
In this example, the ordering a < c < b < d works, but a < b < c < d does not.
The complete rewriting system is
a*a^-1 > 1 a^-1*a > 1 c*c^-1 > 1 c^-1*c > 1 b*b^-1 > 1 b^-1*b > 1 d*d^-1 > 1 d^-1*d > 1 b*a*b^-1*a^-1 > c*d*c^-1*d^-1 b^-1*c*d*c^-1 > a*b^-1*a^-1*d b^-1*a^-1*d*c > a^-1*b^-1*c*d b*a^-1*b^-1*c > a^-1*d*c*d^-1 d*c*d^-1*c^-1 > a*b*a^-1*b^-1 d*c^-1*d^-1*a > c^-1*b*a*b^-1 d^-1*a*b*a^-1 > c*d^-1*c^-1*b