Conjectural slopes of Hecke polynomials¶
Interface to Kevin Buzzard’s PARI program for computing conjectural slopes of characteristic polynomials of Hecke operators.
AUTHORS:
William Stein (2006-03-05): Sage interface
Kevin Buzzard: PARI program that implements underlying functionality
- sage.modular.buzzard.buzzard_tpslopes(p, N, kmax)[source]¶
Return a vector of length kmax, whose \(k\)-th entry (\(0 \leq k \leq k_{max}\)) is the conjectural sequence of valuations of eigenvalues of \(T_p\) on forms of level \(N\), weight \(k\), and trivial character.
This conjecture is due to Kevin Buzzard, and is only made assuming that \(p\) does not divide \(N\) and if \(p\) is \(\Gamma_0(N)\)-regular.
EXAMPLES:
sage: from sage.modular.buzzard import buzzard_tpslopes sage: c = buzzard_tpslopes(2,1,50) ... sage: c[50] [4, 8, 13]
>>> from sage.all import * >>> from sage.modular.buzzard import buzzard_tpslopes >>> c = buzzard_tpslopes(Integer(2),Integer(1),Integer(50)) ... >>> c[Integer(50)] [4, 8, 13]
from sage.modular.buzzard import buzzard_tpslopes c = buzzard_tpslopes(2,1,50) c[50]
Hence Buzzard would conjecture that the \(2\)-adic valuations of the eigenvalues of \(T_2\) on cusp forms of level 1 and weight \(50\) are \([4,8,13]\), which indeed they are, as one can verify by an explicit computation using, e.g., modular symbols:
sage: M = ModularSymbols(1,50, sign=1).cuspidal_submodule() sage: T = M.hecke_operator(2) sage: f = T.charpoly('x') sage: f.newton_slopes(2) [13, 8, 4]
>>> from sage.all import * >>> M = ModularSymbols(Integer(1),Integer(50), sign=Integer(1)).cuspidal_submodule() >>> T = M.hecke_operator(Integer(2)) >>> f = T.charpoly('x') >>> f.newton_slopes(Integer(2)) [13, 8, 4]
M = ModularSymbols(1,50, sign=1).cuspidal_submodule() T = M.hecke_operator(2) f = T.charpoly('x') f.newton_slopes(2)
AUTHORS:
Kevin Buzzard: several PARI/GP scripts
William Stein (2006-03-17): small Sage wrapper of Buzzard’s scripts