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.
#I IsConsistent: a2 * ( c * d ) <> ( a2 * c ) * d
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
Peter Blanchard e-mail: firstname.lastname@example.org
Dept. of Mathematical Sciences http://vega.math.ualberta.ca/~pblancha
University of Alberta "Your mountain is waiting.."--Dr. Suesss"