\documentclass{article}1\include{macros}2%\usepackage{fullpage}3\newcommand{\head}[1]{\vspace{3ex}\par\noindent{\large \bf #1}\vspace{1ex}\par\noindent}4\newcommand{\bighead}[1]{\vspace{4ex}\par\noindent{\Large \bf #1}\vspace{1ex}\par\noindent}56\begin{document}7\begin{center}8{\bf \Large \sc HECKE: The Modular Forms Calculator}\vspace{1ex}\\9William A. Stein\\10\end{center}1112\head{What is \hecke{}?}\hecke{} is a program for computing with13modular forms. It implements algorithms of Cremona, Hijikata,14Merel, Mestre-Oesterl\'{e}, Shimura, and others. It is completely15{\em free} software, currently available only for Linux machines16at17\begin{verbatim}18http://shimura.math.berkeley.edu/~was/Tables/hecke.html19\end{verbatim}20Unfortunately it is still in development, and quite a bit of work21remains to be done\footnote{Hecke is being written by me, with22advice from K. Buzzard and H.W. Lenstra.}. I should emphasize that23\hecke{} is {\em not} yet ``rock solid'' and ready for general24release, so you should be especially skeptical of the results it25gives and aware that the interface is at certain points very26primitive. Nonetheless, \hecke{} is capable of many computations27which aren't currently possible in any other single, integrated,28publicly available, package. The main drawbacks are that the29interface may be awkward and certain parts of the implementation30have not been properly optimized.3132\head{What can \hecke{} do?} \hecke{} consists both of a \cpp{}33library and an interactive calculator. Most of the following is34implemented.35\begin{itemize}36\item {\bf Modular forms and Hecke operators:} Computations37on the spaces $M_k(\Gamma_1(N),\eps)$, $k\geq 2,$38over cyclotomic and finite fields.39Functions include:40\begin{itemize}41\item Computation of bases of newforms.42Within computational43limits, the level, weight, and character can be pretty44much arbitrary, with the restriction that $k\geq 2$ be45an integer. Furthermore, all eigenforms are computed,46{\em not} just the ones with eigenvalues in $\Q$.47\item Exact computation of the rational numbers48$L(M_f,i)/\Omega_i$ where $M_f$ is a complex torus49attached to $f$ and $\Omega_i$ is a certain volume.50\item Optimal quotients $A_f$ of $J_0(N)$ associated to newforms.51(An optimal quotient is a quotient $J_0(N)\ra A_f$ with connected kernel.)52\begin{enumerate}53\item The modular degree and structure of the canonical54polarization.55\item Congruences.56\item Order of image of $(0)-(\infty)$.57\item Upper bound on torsion.58\item Tamagawa numbers of semistable quotients of $J_0(N)$59(currently only for $N$ prime).60\end{enumerate}61\item Discriminants of Hecke algebras.62\item Numerical computation of special values and period63lattices of forms of even weight $k\geq 2$, in many64(but not all) cases. When $f$ has rational Fourier65coefficients, computation of the invariants of66the associated elliptic curve over $\R$.67\end{itemize}6869\item {\bf Formulas:} The classical formulas, such70as the numbers of cusps on modular curves, dimensions of spaces71of cusps forms, and computation of72$\dim S_k(\Gamma_1(N),\eps)$ for $k\geq 2$73and $\eps$ a Dirichlet character modulo $N$74(using the Hijikata trace formula).7576\item {\bf Character groups of tori:}77Action of Hecke operators on the character group associated to $J_0(p)$78(using the Mestre-Oesterl\'{e} graph method). The matrices attained79in this way are very sparse.8081\item {\bf Tables:} Functions for making tables of eigenforms.8283\item {\bf More:} And much more...8485\end{itemize}8687\head{Why does \hecke{} exist?}88\hecke{} grew out of work on my thesis which involves computing89special values of $L$-functions, congruences, and verifying modularity of90certain Galois representations. In a sense, \hecke{} is also the program91I wish had existed when I was taking my first modular forms course and92wanted to see lots of concrete examples of modular forms.93(Some of the tables computed using \hecke{} can be found at94{\tt http://shimura.math.berkeley.edu/\~{ }was/Tables}.)9596\bighead{Guided tour}97In this guided tour, you will see how to use98\hecke{} to compute the action of Hecke operators,99bases of eigenforms, and obtain information about100special values of $L$-functions.101102\head{Starting \hecke.} To start \hecke{}, type103{\tt hecke} at the command line. You will see something like104\begin{verbatim}105# hecke106HECKE: Modular Forms Calculator Version 0.4 (June 14, 1999)107William A. Stein108Send bug reports and suggestions to was@math.berkeley.edu.109Type ? for help.110HECKE>111\end{verbatim}112Typing {\tt ?} gives a list of ``modes'' which include:113\begin{verbatim}114calc: Motive calculator115exsymbols: Extended modular symbols mode116formulas: Formula calculator117graphs: Monodromy pairing calculator118msymbols: Modular symbols calculator119tables: Table making routines120\end{verbatim}121\head{Modular forms and Hecke operators calculator.}122Type {\tt msymbols} to start the modular forms and Hecke123operators calculator.124You will be asked for several bits of information which125define the space on which to work. Answer as follows:126\begin{verbatim}127level N = 389128character chi = 0129weight k = 2130\end{verbatim}131After a brief computation the calculator interface will132print some information about $M_2(\Gamma_0(389))$ and133await your command.134\begin{verbatim}135---------------------------------------------------------------136Current space: M_2(Gamma_0(389); Q)^+, dim=33137Hecke action on: V=M_2, dim=33138---------------------------------------------------------------139M_2(389) ?140\end{verbatim}141The help system is similar to that in \pari. Typing {\tt ?} gives142a list of subtopics.143\begin{verbatim}1441: computing OPERATORS1452: setting current SPACE1463: cutting out SUBSPACES1474: computing BASIS1485: CONVERSIONS between representations1496: arithmetic INVARIANTS of torus A_V1507: INVARIANTS of Hecke algebra1518: OPTIONS152\end{verbatim}153To get an idea of what $M_2(\Gamma_0(389))$ looks like, compute154the characteristic polynomials of several Hecke operators $T_n$.155Type {\tt t} then enter a positive integer $n$.156\begin{verbatim}157? t158Tn: Enter values of n, then q when done.1592160f2=(x-3)*(x + 2)*(x^2 -2)*(x^3 -4*x -2)*161(x^20 -3*x^19 -29*x^18 + 91*x^17 + 338*x^16 -1130*x^15162-2023*x^14 + 7432*x^13 + 6558*x^12 -28021*x^11 -10909*x^10163+ 61267*x^9 + 6954*x^8 -74752*x^7 + 1407*x^6 + 46330*x^5164-1087*x^4 -12558*x^3 -942*x^2 + 960*x + 148)*165(x^6 + 3*x^5 -2*x^4 -8*x^3 + 2*x^2 + 4*x -1);166q167\end{verbatim}168Let's compute the action of a few Hecke operators on the dimension169two factor. Type {\tt subeigenpoly}, then select the dimension170two factor:171\begin{verbatim}172M_2(389) ? subeigenpoly173[...]174n = 2 <---- you type this175Choose one of the following factors.1761: x+21772: x-31783: x^2-21794: x^3-4*x-21805: x^20-3*x^19-29*x^18+91*x^17+338*x^16-1130*x^15-2023*x^14+1817432*x^13+6558*x^12-28021*x^11-10909*x^10+61267*x^9+6954*x^8-18274752*x^7+1407*x^6+46330*x^5-1087*x^4-12558*x^3-942*x^2+960*x+1481836: x^6+3*x^5-2*x^4-8*x^3+2*x^2+4*x-11847: ALL factors185Select a factor: 3 <---- you type this186\end{verbatim}187188When the {\tt M\_2(389) ? } prompt appears, type {\tt opmatrix} to189turn on matrix display and {\tt opcharpoly} to turn off190computation of characteristic polynomials. Now you can compute191matrices which represent the Hecke operators on this dimension two192space:193\begin{verbatim}194M_2(389) ? t1952196T2=[2,1;-2,-2];1973198T3=[0,1;-2,-4];1996200T6=[-2,-2;4,6];201\end{verbatim}202Let $A$ denote the corresponding dimension two203optimal quotient of $J_0(389)$.204To compute the BSD value $L(A,1)/\Omega_A$, type205{\tt torusbsd}. \hecke{} outputs $0$ along206with the first few terms of the $q$-expansion of $f$207and the discriminant of the ring $\Z[\ldots,a_n,\ldots]$.208The sign in the functional equation for the $L$-function209is minus the sign of the Atkin-Lehner involution210$W_{389}$. To compute this involution, type {\tt actatkin}211and then enter {\tt 389} for $p$. \hecke{} compute that212$W_{389}=+1$ on $A$, so the sign in the functional equation213is $-1$ and $L(A,1)$ is forced to vanish.214215To obtain the $q$-expansion of a normalized eigenform in216our dimension two space, type {\tt basisnew} then {\tt n=7}.217The result is218\begin{verbatim}219s1=t^2-2; s=Mod(t,t^2-2);220f1 = q + (s)*q^2 + (s-2)*q^3 + -1*q^5 + (-2*s+2)*q^6 + (-2*s-1)*q^7 + O(q^8);221\end{verbatim}222which means that a normalized newform is223$$f_1 = q +\sqrt{2}q^2 + (\sqrt{2}-2)q^3224-q^5 + (-2\sqrt{2}+2)q^6225+(-2\sqrt{2}-1)q^7 + \cdots$$226To compute the discriminant of the Hecke algebra $\T$,227type {\tt heckedisc}. \hecke{} computes the228discriminant of the $\Z$-module generated by $T_1,\ldots,T_{ }$229and finds:230$$592456554486106225601956409404798293104261020095616213409857536000000$$231$$=2^{53} \cdot 3^4\cdot 5^6\cdot31^2\cdot 37\cdot97^2\cdot 389\cdot3881232\cdot 215517113148241233\cdot 477439237737571441$$234This is only known example in which $p \mid \disc(\T_{389})$235(there are no other such $p<12000$).236237\head{Nontrivial character and weight.}238Next, compute a basis of eigenforms for239$S_4(\Gamma_0(13),\eps)$240where $\eps:(\Z/13\Z)\ra\C^*$ is a character whose image has241order $3$. Type {\tt x} to quit computing on $M_2(389)$, type242{\tt msymbols} again and enter {\tt N = 13}, {\tt chi = 3},243and {\tt k = 4}. In a second, the status display will appear:244\begin{verbatim}245-------------------------------------------------------------------246Current space: M_4(Gamma_0(13), eps=[3]; Q[a]/(a^2-a+1))^+, dim=5247Hecke action on: V=M_4, dim=5248-------------------------------------------------------------------249M_4(13) ?250\end{verbatim}251(In the version you're using, the quadratic polynomial might252be in $x$ instead of $a$.)253Type {\tt basisnew}, then {\tt n = 3} to get the first $3$254terms of the $q$-expansions of a basis of newforms. Note:255only one representative from each Galois conjugacy class256of newforms is provided. The output is257\begin{verbatim}258f1 = q + (-4*a)*q^2 + (-2*a)*q^3 + O(q^4);259s2=t^2+(-5*a)*t+(2*a-2); s=Mod(t,t^2+(-5*a)*t+(2*a-2));260f2 = q + (s)*q^2 + ((-3)*s+(5*a))*q^3 + O(q^4);261\end{verbatim}262This means that there are two (conjugacy classes of) eigenforms263$f_1$ and $f_2$. The first is $f_1=q-4aq^2-2aq^3+\cdots$ where264$a$ is a primitive cube root of $1$, and the second is265$f_2 =q + sq^2 +(-3s+5a)q^3 +\cdots$ where $s$ is a root266of $t^2-5at+2a-2=0$.267268To work in fields of characteristic other than $0$,269use the extended mode by typing {\tt exsymbols} instead of {\tt msymbols}270at the {\tt HECKE> } prompt.271272\head{Motives associated to modular forms.}273The {\tt msymbols} mode is useful for computing basis of eigenforms274and the action of Hecke operators on rather general spaces of275modular forms. It is less useful for computing specific information276about the structure of $J_0(N)$. For that, use the {\tt calc}277mode.278Type {\tt x} to get to the {\tt HECKE>} prompt,279then type {\tt calc}. When asked if you want to work in the fast280$+1$ quotient, typing {\tt n}. (If you type {\tt yes}, many computations281will be orders of magnitude faster, but are likely to be wrong282by a power of $2$.)283The basic syntax of a {\tt calc} mode command is as follows:284\begin{center}285{\bf [level]k[weight][isogeny class].[command][(arguments)]}286\end{center}287Omitting the weight part of the command is the same as specifying288$k=2$.289Type {\tt 125} to obtain a list of optimal quotients of290$J_0(125)$.291\begin{verbatim}292? 125293****** SUMMARIZE LEVEL.294125k2: dim W295A 2 +296B 2 -297C 4 -298\end{verbatim}299This means that $J_0(125)\sim A\cross B\cross C$300where $A,B,C$ are abelian varieties of dimensions301$2$, $2$, and $4$. We can compute $L(A,1)/\Omega_A$,302$L(B,1)/\Omega_B$ and $L(C,1)/\Omega_C$:303\begin{verbatim}304? 125A.bsdratio3050306? 125B.bsdratio3072^2/5308? 125C.bsdratio3091/5310\end{verbatim}311The signs in the {\tt W} column above give the signs of the312Atkin-Lehner involution $W_{125}$. Thus one expects, because the313level is low, that $J(\Q)\tensor\Q\isom A(\Q)\tensor\Q\ncisom314\Q\oplus\Q$. This is in fact the case, though we will not prove it315here. (I haven't yet implemented a function for computation316$L'(A,1)$, so the rank can't yet be bounded from within \hecke.)317What about the torsion? Type {\tt 125.torsionbound(13)} to get an318upper bound on the torsion subgroup of $J_0(125)$. Then type {\tt319125.cusporder} to compute the order of $(0)-(\infty)\in320J_0(125)(\Q)$.321\begin{verbatim}322? 125.torsionbound(13)3235^2324? 125.cusporder3255^2326\end{verbatim}327We're lucky -- the lower and upper bounds match up and we conclude328that $J(\Q)\ncisom\Z^2\oplus(\Z/25\Z)$. Next type {\tt329125A.intersection(B)} to obtain the structure of the finite330abelian group $A'\intersect B'\subset J$, where $A'$, $B'$ are the331abelian varieties dual to $A$ and $B$. The answer {\tt [2,2,2,2]}332indicates that the intersection is $(\Z/2\Z)^4$. This implies333that the corresponding newforms satisfy a congruence in334characteristic $2$. To exit {\tt calc} mode, type {\tt335$\backslash{}$q}.336337This tutorial has barely scratched the surface of what is possible338using \hecke{}. If you are interesting in learning more, talk to339me.340\end{document}341342343%(For more on $J_0(125)$,344%see Poluakis, D. {\em La courbe modulaire $X_0(125)$ et sa345%jacobienne}, J. Num. Theory {\bf 25} (1987), no. 1, 112--131.)346347To compute the modular degree of $A$ type {\tt torusmoddeg}.348It will again ask for a factor of $T_2$; enter choice $1$.349The answer which \hecke{} returns is ``$2^2\cdot 3^2$.350{\em Warning:} We are really computing the action of Hecke351operators on the $+1$ subspace of $H_1(X_0(N))$ so the modular352degree can be wrong by a power of $2$; to compute the correct353modular degree it is necessary to start the modular symbols354mode using the command {\tt Modular} instead of {\tt modular}.355356