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
Serious bug in modular symbols for GammaH #3217
Comments
Attachment: trac-3217.patch.gz |
comment:1
This looks like something for William to review. Cheers, Michael |
comment:2
The |
comment:3
The patch applies cleanly to 3.0.2 and passes doctests. I have not tested the code apart from the above (and below). I do approve of the philosophy outlined, namely to rely on an equivalence test rather than a reduction to normal form, since the latter is notoriously hard to get right. But I see no harm in keeping cusp reduction in there. Shouldn't there be an additional doctest showing that the specific reported problem is now solved: even
perhaps? |
comment:4
Merged in Sage 3.0.3.alpha0. I would definitely merge an added doctest patch that tests the original issue even assuming it is already covered by the new doctests. Cheers, Michael |
comment:5
John -- thanks very much for refereeing this! I should have realized to ask you earlier -- I was basically following a proof from your book. I'm happy to add another doctest with the failure -- but it's basically already there. (See lines 613-614 in |
comment:6
Replying to @craigcitro:
You are quite right: those lines demonstrate precisely that the original problem case is now correct. So I don't believe any more is necessary, and this can remain closed and be resolved (or whatever the right term is to make it display with a line through!) |
There are currently serious problems with the computation of cuspidal subspaces on GammaH. Here's something fairly horrifying:
Notice that at the bottom there, the cuspidal subspace isn't invariant under the Hecke operator T_2. Of course, that's because the cuspidal subspace should be 0. The problem was in the
_reduce_cusp
function -- basically the algorithm there had a number of problems. After some doing, I came up with a new algorithm that worked. (This isn't terribly hard, but is very delicate.) Of course, after writing the algorithm, I realized that we don't even need it -- we can just writeis_gamma_h_equiv
the same way we do the other congruence subgroups, because we have an explicit condition on when two cusps are equivalent. However, I left the code in for_reduce_cusp
... I don't know what one might use it for, but hey, it's already written. At the very least, it lets you compute the cusps in two distinct ways, which is always reassuring.I've run a bunch of consistency checks, so I feel pretty confident about this code. In particular, we get the same answers for
GammaH(N,[])
andGamma1(N)
forN
up to about 100, and I checked (via consistency checks and checking dimensions against the dimension formulas insage.modular.dims
for spaces of modular symbols) on what I thought was a "representative set" of examples. That said, these bugs have been around for a while now -- so I'm happy to have the referee give this code a serious thrashing, and see if anything comes up.I haven't worked too hard at optimizing any of this code -- I'm much more concerned with getting correct code in right away. I'm happy to file a ticket saying "optimize this," which I'll take care of in the next few weeks. We should also probably file a ticket that says "look over
_reduce_coset
" -- that code looks very similar to where this code started, so it's possibly producing some funky answers, too.Since sage is actually producing wrong answers (as opposed to just throwing errors), I'm listing this as a blocker for 3.0.2.
Component: modular forms
Issue created by migration from https://trac.sagemath.org/ticket/3217
The text was updated successfully, but these errors were encountered: