> < ^ Date: Thu, 18 May 2000 08:57:04 +0300
> < ^ From: Alexander B. Konovalov <alexk@mcs.st-and.ac.uk >
> < ^ Subject: Re: A problem with "FreeMagmaRing"

Dear GAP Forum,
>I was trying to execute example from the Reference Manual to GAP 4.2
>concerning group rings on page 567. For the field GF(3) all is OK, but
>when I changed to GF(2) an error occured:
...

1. It is not a bug. The reason is that elements g1 and g2 are not invertible
since their support consists of even number of elements, so they lie in the
augmentation ideal.
BTW, you can simply test this, using funtion IsUnit().

2. Please also note that you could use GroupRing() function to construct
group rings, and also LAG share package provide more functionality to work
with group rings.

3. The full text of the log file follows.

```Sincerely yours,
Alexander B. Konovalov,
Ph.D. (Cand.Sci.), Senior lecturer, Algebra and Geometry Chair,
Zaporozhye State University, Zaporozhye, Ukraine.
--------------------------------------------------------------------------
Phone: office (38-0612) 347069, 643712, home 339185
Fax: (38-0612) 332382
P.O.Box 1317, Central Post Office, Zaporozhye, 69000, Ukraine
E-mail: konovalov@member.ams.org, algebra@hotmail.zp.ua
--------------------------------------------------------------------------

gap> d8:=DihedralGroup(8);
<pc group of size 8 with 3 generators>
gap> rm:=FreeMagmaRing(GF(2),d8);
<algebra-with-one over GF(2), with 3 generators>
gap> emb:=Embedding(d8,rm);
<mapping: Group( [ f1, f2, f3 ] ) -> AlgebraWithOne( GF(
2), ... ) >
gap> gens:=List(GeneratorsOfGroup(d8), x->x^emb);
[ (Z(2)^0)*f1, (Z(2)^0)*f2, (Z(2)^0)*f3 ]
gap> x1:=gens[1]+gens[2];
(Z(2)^0)*f1+(Z(2)^0)*f2
gap> x2:=(gens[1]-gens[2])*gens[3];
(Z(2)^0)*f1*f3+(Z(2)^0)*f2*f3
gap> x3:=gens[1]*gens[2]*(One(rm)-gens[3]);
(Z(2)^0)*f1*f2+(Z(2)^0)*f1*f2*f3
gap> g1:=x1-x2+x3;
(Z(2)^0)*f1+(Z(2)^0)*f2+(Z(2)^0)*f1*f2+(Z(2)^0)*f1*f3+(Z(2)^
0)*f2*f3+(Z(2)^0)*f1*f2*f3
gap> g2:=x1+x2;
(Z(2)^0)*f1+(Z(2)^0)*f2+(Z(2)^0)*f1*f3+(Z(2)^0)*f2*f3
gap> IsUnit(g1);
false
gap> IsUnit(g2);
false
gap> h1:=gens[1]+gens[2]+gens[3];
(Z(2)^0)*f1+(Z(2)^0)*f2+(Z(2)^0)*f3
gap> IsUnit(h1);
true
gap> h2:=(gens[1]+gens[2])*gens[3]+gens[3];
(Z(2)^0)*f3+(Z(2)^0)*f1*f3+(Z(2)^0)*f2*f3
gap> IsUnit(h2);
true
gap> Group(h1,h2);
<group with 2 generators>
```