< ^ From:

> < ^ Subject:

Dear Mr. and Mrs. Gap,

Mark Lewis asks why GAP seems happy to accept his group

c := AbstractGenerator ("c"); d := AbstractGenerator ("d"); a1 := AbstractGenerator ("a1"); a2 := AbstractGenerator ("a2"); b1 := AbstractGenerator ("b1"); b2 := AbstractGenerator ("b2"); g3 := AgGroupFpGroup( rec( generators := [d,c,a1,a2,b1,b2], relators := [b1^2,b2^2,a1^2*(b1)^(-1),a2^2*(b2)^(-1),c^3,d^2, (a1^c)*(a2)^(-1),(a2^c)*(a1*a2)^(-1), (b1^c)*(b2)^(-1),(b2^c)*(b1*b2)^(-1), (c^d)*(c^2)^(-1), (a2^d)*(a1*a2)^(-1),(b2^d)*(b1*b2)^(-1)]));

but then signals an error when he tries to compute the character table.

The reason is that the presentation Mark gave is not consistent, as

indicated by the following:

gap> InfoAgGroup2 := Print; #This ensures that Gap will tell

function (...) internal; end #us exactly how the group fails

gap> Read("g3.grp"); #to be consistently presented.

gap> IsConsistent(g3);

#I IsConsistent: a2 * ( c * d ) <> ( a2 * c ) * d

false

gap>

Mark, perhaps you left something out. Looking at your presentation,

it seems you want an S3 (generated by c and d) to be acting in a

semi-direct product on a normal subgroup C4 x C4 (generated by

a1,a2,b1,b2). But you have the generator d acting as the automorphism

[a1,a2,b1,b2] -> [a1,a1*a2,b1,b1*b2] which has order 4!.

I have had this problem often: make a mistake in the presentation

and then get pretty far with some calculation on an inconsistenly

presented group before I realize that something is not right.

I suggest that a call to InConsistent be included as part of the function

AgGroupFpGroup. It is not especially time consuming, and an optional

argument to AgGroupFpGroup could be used to bypass the call to InConsistent

if so desired. I don't see any reason not to do this. Have I missed

something?

--

Peter Blanchard e-mail: pblancha@vega.math.ualberta.ca

Dept. of Mathematical Sciences http://vega.math.ualberta.ca/~pblancha

University of Alberta "Your mountain is waiting.."--Dr. Suesss"

> < [top]