-
Notifications
You must be signed in to change notification settings - Fork 3
Description
Dear all,
I believe I have found a bug for the congruence subgroup package.
I am running GAP 4.10.0 from Nov 2018 - probably not the latest, but I doubt any updates have been made to the congruence subgroup package since then.
Specifically, the error is in the Congruence package's implementation of "GeneratorsOfGroup" for their congruence subgroups. The simplest example is the following. When I call:
GeneratorsOfGroup(CongruenceSubgroupGamma0(3));
I get the pair:
[ [ [ 1, 1 ], [ 0, 1 ] ], [ [ 1, -1 ], [ 3, -2 ] ] ]
One can check explicitly that in terms of the generators E = [[0,1],[-1,0]] and V = [[1,1],[-1,0]], this pair is given by:
EV^-1 and (E^-1V)^3 * (V*E^-1)
If one presents SL(2,Z) as generated by E,V with relations E^4, E^2*V^-3, then one can compute that E^2 = -1 does not lie in the subgroup generated by these two elements, even though of course -1 lies in the subgroup Gamma0(3).
One can check that this issue is indeed with "GeneratorsOfGroup", since the command
Index(SL(2,Integers),CongruenceSubgroupGamma0(3));
Yields the correct result (ie, 4), whereas the subgroup generated by EV^-1 and (E^-1V)^3 * (V*E^-1) gives rise to an index 8 subgroup.
Here is my guess: Their algorithm, which seems to be geometric in nature, is likely working via the action of SL(2,Z) on the upper half plane, but this has kernel {1,-1}. Thus, I'm guessing their generators only generate the subgroup inside PSL(2,Z), ie up to {1,-1}. This contradicts their documentation in https://www.gap-system.org/Manuals/pkg/congruence-1.2.2/doc/manual.pdf , where they claim that this command gives generators in SL(2,Z).
A similar error occurs for Gamma0(n) with n = 4,6,7,8,9,11,12,14,15,...
I hope this helps!