Ticket #13253 (closed defect: fixed)

Opened 10 months ago

Last modified 6 months ago

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

trac-13253.patch Download (5.3 KB) - added by mderickx 9 months ago.

Change History

comment:1 Changed 10 months ago by mderickx

  • Status changed from new to needs_review

comment:2 Changed 10 months ago by jdemeyer

Please fill in your real name as Author.

comment:3 Changed 10 months ago by mderickx

  • Authors set to Maarten Derickx

comment:4 follow-up: ↓ 5 Changed 10 months ago by mstreng

  • small formatting mix-up in opening versus closing LaTeX symbols: `G' \supset G$
  • two trailing whitespaces added to non-empty lines: see the  patchbot whitespace plugin  output

Now building the documentation and reading in more detail...

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.

Changed 9 months ago by mderickx

comment:8 Changed 9 months ago by mderickx

  • Status changed from needs_work to needs_review

comment:9 Changed 9 months ago by mstreng

  • Status changed from needs_review to positive_review

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?

comment:13 in reply to: ↑ 12 Changed 6 months ago by cremona

Replying to mderickx:

Ah, good catch. Could you open yet another ticket about this, since this one is already merged for some time?

See #13805 for a follow-up ticket.

Note: See TracTickets for help on using tickets.