Ticket #13253 (closed defect: fixed)
galois_action on cusps has a bug and incorrect documentation
| Reported by: | mderickx | Owned by: | craigcitro |
|---|---|---|---|
| Priority: | major | Milestone: | sage-5.3 |
| Component: | modular forms | Keywords: | |
| Cc: | cremona | Work issues: | |
| Report Upstream: | N/A | Reviewers: | Marco Streng |
| Authors: | Maarten Derickx | Merged in: | sage-5.4.beta0 |
| Dependencies: | Stopgaps: |
Description
In #8998 there was some incorrect documentation added to Cusp.galois_action . This ticket is to fix the documentation. It is also to fix the following error, since in some cases the galois action is not even a permutation. For example the following:
N=5
G=Gamma1(N)
for i in G.cusps():
print [j.galois_action(2,N).is_gamma1_equiv(i,N)[0] for j in G.cusps()].count(True)
Outputs:
2 1 0 1
Attachments
Change History
comment:5 in reply to: ↑ 4 Changed 10 months ago by mstreng
- Status changed from needs_review to needs_work
- Reviewers set to Marco Streng
I sent some more ideas for the documentation and corrections for the formatting by email. I'll wait for those to be corrected, but aside from that, this patch is very good, so I'll probably give a positive review to the next version.
comment:6 Changed 10 months ago by mderickx
- Status changed from needs_work to needs_review
I think I incorporated all your comments.
I also made a slight change to the NOTE:: section since it was mathematically incorrect. Parametrizing all $\mu_N \times \ZZ/N\ZZ$ embeddings gives you reducible scheme that consists of euler_phi(N) isomorphic copies. The quotient of the upper halve plane by Gamma(N) however just gives one of these copies. The new version fixes this.
comment:7 Changed 10 months ago by mstreng
- Status changed from needs_review to needs_work
Maarten mentioned by email a few small changes that he plans to make. Once those are done, I'll review this.
comment:10 Changed 9 months ago by jdemeyer
- Status changed from positive_review to closed
- Resolution set to fixed
- Merged in set to sage-5.4.beta0
comment:11 Changed 6 months ago by cremona
I was using this function recently and unfortunately the documentation makes incorrect claims for its applicability! Being based on Steven's book, it works for *some* congruence subgroups of level N, but *not all* of them.
The example I have is this. I have a subgroup of level 13, index 91, consisting of matrices in PSL(2,Z) whose mod-13 reduction lie in a subgroup of PSL(2,13) isomorphic to A4. Under the action of A4 the 84 cusps of Gamma(13) form 7 orbits of size 12 each. But the action of (t mod 13) is only well-defined for t=1,5,8,12 (i.e. the cubes mod 13). I could give examples of 2 cusps c1,c2 which are A4-equivalent but the results of c.galois_action(2,13) for c=c1,c2 are not A4-equivalent. This can be explained by looking carefully at Stevens' proof of his proposition, which relies on the field of modular functions for the group in question being generated by by functions whose Q-expansions have rational coefficients. This is true for Gamma(N), Gamma0(N), Gamma1(N), but not in general. In my case the field of coefficients required is the cubic subfield of Q(zeta13), which explains why Stevens's formula is only valid when t is a cube.
I think that the way to fix this is to change the documentation so that the function does not claim to do more than it does. A complete fix would require something really new, with input more than just the level N and an invertible residue class t mod N. I was able to work out my specific example, but a general implementation would be quite hard. [For the record, the 7 cusps consist of 2 Galois orbits, of size 3 and 4. Using Sage's function restricted to t=5 (which generates the cubes mod 13) I found a 4-cycle and 3 fixed points, including infinity, and as I already knew that infinity was in an orbit of size 3 that was sufficient!]
comment:12 follow-up: ↓ 13 Changed 6 months ago by mderickx
Ah, good catch. Could you open yet another ticket about this, since this one is already merged for some time?

