> < ^ Date: Fri, 04 Feb 2000 12:29:23 -0800
> < ^ From: Bill Thurston <wpt@math.ucdavis.edu >
> ^ Subject: Problem with GQuotients

Dear Gap Forum,
Nathan Dunfield and I have been using GAP to try to search
through subgroups of finite index in fundamental groups of three-manifolds,
to test the conjecture that there are always subgroups of finite index
with epimorphisms to Z; we've been checking the Census of 10,000
3-manifolds. GQuotients is usually effective for finding the
desired subgroups, but sporadically, it bombs, as illustrated in the
following session, (quoted from email from Nathan):
|
|I've looked into it and it's really bizarre. Its
|definately a bug of some sort. The problem is that it somehow manages
|to create an immutable list where it usually creates a mutable one.
|So if "re-enter" the list in break mode and continue, the function
|finishes fine. Further calls to GQuotients produce correct answers.
|Look at this:
|
|gap> F := FreeGroup(["a","b"]);; a := F.1;; b := F.2;;
|gap> G := F/[ a^3*b^3*a^3*b^-1*a^-1*b^-1*a^-1*b^-1, a*b^4*a^4*b^4*a*b*a*b ];;
|gap> GQuotients(G, AlternatingGroup(5));
|Lists Assignment: <list> must be a mutable list at
|list[i] := - list[i];
|RelatorRepresentatives( grels ) called from
|AugmentedCosetTableMtc( G, H, -1, "_x" ) called from
|Size( FpGroupPresentation( p ) ) called from
|ExcludedOrders( F, List( Fgens, function ( i )
| return e;
| end ) ) called from
|<function>( <arguments> ) called from read-eval-loop
|...
|brk> list;
|[1, 40]
|
|# Let's confirm "list" is immutable;
|
|brk> list[1] := 2;
|Lists Assignment: <list> must be a mutable list
|...
|brk_02> quit;
|
|# Now "fix" the problem, and the function finishes fine.
|
|brk> list := [1,40];
|[ 1, 40 ]
|brk> return;
|[ ]
|
|# and now it works again.
|
|gap> GQuotients(G, CyclicGroup(20));
|[ [ a, b ] -> [ f2*f3^2, f1 ] ]
|
|There's nothing special about the choice of alternating group in the
|first call to GQuotients, everything else I tried produced the same
|result.

Thanks,
Bill Thurston wpt@math.ucdavis.edu

> < [top]