Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Bug in "GeneratorsOfGroup" for congruence subgroups generated by this package #8

Open
oxeimon opened this issue Jun 3, 2019 · 3 comments
Assignees

Comments

@oxeimon
Copy link

oxeimon commented Jun 3, 2019

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!

@olexandr-konovalov olexandr-konovalov self-assigned this Jun 4, 2019
@olexandr-konovalov
Copy link
Member

Thank you @oxeimon - I will investigate.

@grahamknockillaree
Copy link

I came across exactly this bug yesterday, and was about to flag it. But I see it is already flagged.

@olexandr-konovalov
Copy link
Member

Thanks for reminding. I think the documentation should be updated. A PR would be most appreciated!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants