> < ^ Date: Thu, 16 Nov 2000 10:22:51 -0500 (EST)
> < ^ From: Alexander Hulpke <hulpke@math.colostate.edu >
< ^ Subject: Re: other problems with gap

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

> < [top]