#18061: Implement (correct) action of Atkin-Lehner operators on newforms
-------------------------------------+-------------------------------------
Reporter: pbruin | Owner:
Type: defect | Status: needs_review
Priority: major | Milestone: sage-6.8
Component: modular forms | Resolution:
Keywords: newform Atkin- | Merged in:
Lehner operator | Reviewers:
Authors: Peter Bruin | Work issues:
Report Upstream: N/A | Commit:
Branch: | a98bee2a3337431582e1762a0bf30f7577742bee
u/pbruin/18061-atkin_lehner_action | Stopgaps:
Dependencies: #18068, #18072, |
#18086, #18478 |
-------------------------------------+-------------------------------------
Comment (by davidloeffler):
I think there are still some cases where the modular symbol algorithm
actually works, but this implementation doesn't realise it. Here are two
ways this can come up:
- It can happen that the action of W_Q on f is multiplication by a scalar
in the Hecke eigenvalue field of f, but not one which is in the base ring
of f. Then the matrix of W_Q on the modular symbol space is not obviously
recognisable as a scalar, but is contained in the subalgebra of the
endomorphisms of the mod sym space generated by the Hecke operators (which
is isomorphic to the Hecke eigenvalue field), and one should really
recognise it as such and return the appropriate number field element. This
comes up for my level 15 weight 3 example, where the W_5 eigenvalue is a
square root of -5, but not just any square root -- rather, a specific one
lying in the Hecke eigenvalue field of f:
{{{
sage: Newforms(Gamma1(15), 3, names='a')
[q - q^2 + 3*q^3 - 3*q^4 - 5*q^5 + O(q^6),
q + q^2 - 3*q^3 - 3*q^4 + 5*q^5 + O(q^6),
q + a2*q^2 + (-a2 - 2)*q^3 - q^4 - a2*q^5 + O(q^6),
q + a3*q^2 + (3/5*a3^3 + 11/5*a3^2 + 22/5*a3 - 11/5)*q^3 + (-8/5*a3^3 -
31/5*a3^2 - 72/5*a3 + 16/5)*q^4 + (a3^3 + 4*a3^2 + 6*a3 - 6)*q^5 + O(q^6)]
sage: F = _[2]
sage: M = F.modular_symbols(sign=0)
sage: M.atkin_lehner_operator(5).matrix()
[ -1/5 -39/10 -33/10 3/2]
[ 9/5 -19/10 -63/10 -13/2]
[ -3/5 9/5 28/5 6]
[ 0 -3/2 -9/2 -7/2]
sage: M.hecke_operator(5).matrix()
[ 1/5 39/10 33/10 -3/2]
[ -9/5 19/10 63/10 13/2]
[ 3/5 -9/5 -28/5 -6]
[ 0 3/2 9/2 7/2]
}}}
- It can also happen that calculating the action of W_Q on the modular
symbols space fails if you use "sign = 1" (as in your implementation).
This is because the Atkin--Lehner operator and the star involution don't
commute, although they do when restricted to an eigenspace on which the
diamond operators at Q are trivial (if I remember rightly, the commutator
of the two operators is exactly eps_Q(-1)). So one can get spurious linear
algebra errors working on the sign 1 symbols, because the action of W_Q on
the whole space is not defined, even though it is defined on the subspace
we care about. This also comes up in the above example:
{{{
sage: F.modular_symbols(sign=1).atkin_lehner_operator(5)
...
ArithmeticError: subspace is not invariant under matrix
}}}
I have a proof-of-concept implementation lying around on my hard drive
which avoids these pitfalls, and I can merge it with your implementation
to cover these extra cases; but this is definitely an enhancement of your
work rather than a bug, and I won't have time to work on it for a week or
so since I am away at a conference. So I will leave the ticket at
needs_review for now, in case anybody else wants to look at it.
--
Ticket URL: <http://trac.sagemath.org/ticket/18061#comment:20>
Sage <http://www.sagemath.org>
Sage: Creating a Viable Open Source Alternative to Magma, Maple, Mathematica,
and MATLAB
--
You received this message because you are subscribed to the Google Groups
"sage-trac" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/sage-trac.
For more options, visit https://groups.google.com/d/optout.