Dear Laurent,
> hello again,
> i ran in a few new other problems with gap, which are:
>
> i cannot define a group algebra over an infinite non-free group:
> gap> G := FreeGroup("a","b");
> <free group on the generators [ a, b ]>
> gap> GroupRing(GF(2),G);
> <algebra-with-one over GF(2), with 4 generators>
> gap> G := G / [Comm(G.1,G.2)];
> <fp group on the generators [ a, b ]>
> gap> GroupRing(GF(2),G);
> Error the coset enumeration has defined more than 256000 cosets:
The situation here is a bit complicated: The way group rings are represented,
it is assumed that the group elements can be sorted with respect to <. For
finitely presented groups, defining a computable total order however is
quite hard -- what GAP 4.2 does is to order via a faithful permutation
representation. This obviously fails here.
In the development version, there is code which will try the coset
enumeration only to a certain limit and then use a (as mentioned before: much
better performing that in 4.2...) Knuth-Bendix and compare word normal forms.
With this, your example seems to work:
gap> r:=GroupRing(GF(2),G); <algebra-with-one over GF(2), with 4 generators> gap> r.1*r.2+r.3*r.4; (Z(2)^0)*a^-1*b^-1+(Z(2)^0)*a*b gap> last^5; (Z(2)^0)*a^-1*b^-1*a^-1*b^-1*a^-1*b^-1*a^-1*b^-1*a*b+(Z(2)^ 0)*a*b*a*b*a*b*a*b*a^-1*b^-1+(Z(2)^0)*a^-1*b^-1*a^-1*b^-1*a^-1*b^-1*a^-1*b^ -1*a^-1*b^-1+(Z(2)^0)*a*b*a*b*a*b*a*b*a*b
Alas, this is only in the development version and not in 4.2 and will not be
part of a bug fix. (I can only repeat my offer in my last forum mail, if you
are willing to play around with slightly undocumented beta code.)
> concerning coset enumeration, couldn't it be possible to set up a flag in
> a group structure that the group is infinite, so that gap does not attempt
> element or coset enumeration, but rather answers by an error message?
Indeed. I have added code in the development version now that will avoid a
coset enumeration in this case. Thanks!
All the best,
Alexander