Author: William A. Stein
1\documentclass{article}
2\include{macros}
3%\usepackage{fullpage}
6
7\begin{document}
8\begin{center}
9{\bf \Large \sc HECKE: The Modular Forms Calculator}\vspace{1ex}\\
10William A. Stein\\
11\end{center}
12
13\head{What is \hecke{}?}\hecke{} is a program for computing with
14modular forms. It implements algorithms of Cremona, Hijikata,
15Merel, Mestre-Oesterl\'{e}, Shimura, and others. It is completely
16{\em free} software, currently available only for Linux machines
17at
18\begin{verbatim}
19       http://shimura.math.berkeley.edu/~was/Tables/hecke.html
20\end{verbatim}
21Unfortunately it is still in development, and quite a bit of work
22remains to be done\footnote{Hecke is being written by me, with
23advice from K. Buzzard and H.W. Lenstra.}. I should emphasize that
24\hecke{} is {\em not} yet rock solid'' and ready for general
25release, so you should be especially skeptical of the results it
26gives and aware that the interface is at certain points very
27primitive.  Nonetheless, \hecke{} is capable of many computations
28which aren't currently possible in any other single, integrated,
29publicly available, package.  The main drawbacks are that the
30interface may be awkward and certain parts of the implementation
31have not been properly optimized.
32
33\head{What can \hecke{} do?} \hecke{} consists both of a \cpp{}
34library and an interactive calculator.  Most of the following is
35implemented.
36\begin{itemize}
37\item {\bf Modular forms and Hecke operators:} Computations
38on the spaces  $M_k(\Gamma_1(N),\eps)$, $k\geq 2,$
39over cyclotomic and finite fields.
40Functions include:
41 \begin{itemize}
42 \item Computation of bases of newforms.
43      Within computational
44      limits, the level, weight, and character can be pretty
45      much arbitrary, with the restriction that $k\geq 2$ be
46      an integer.  Furthermore, all eigenforms are computed,
47      {\em not} just the ones with eigenvalues in $\Q$.
48 \item Exact computation of the rational numbers
49       $L(M_f,i)/\Omega_i$ where $M_f$ is a complex torus
50       attached to $f$ and $\Omega_i$ is a certain volume.
51 \item Optimal quotients $A_f$ of $J_0(N)$ associated to newforms.
52(An optimal quotient is a quotient $J_0(N)\ra A_f$ with connected kernel.)
53 \begin{enumerate}
54   \item The modular degree and structure of the canonical
55         polarization.
56   \item Congruences.
57   \item Order of image of $(0)-(\infty)$.
58   \item Upper bound on torsion.
59   \item Tamagawa numbers of semistable quotients of $J_0(N)$
60         (currently only for $N$ prime).
61 \end{enumerate}
62 \item Discriminants of Hecke algebras.
63 \item Numerical computation of special values and period
64       lattices of forms of even weight $k\geq 2$, in many
65       (but not all) cases. When $f$ has rational Fourier
66       coefficients, computation of the invariants of
67       the associated elliptic curve over $\R$.
68  \end{itemize}
69
70  \item {\bf Formulas:} The classical formulas, such
71as the numbers of cusps on modular curves, dimensions of spaces
72of cusps forms, and computation of
73$\dim S_k(\Gamma_1(N),\eps)$ for $k\geq 2$
74and $\eps$ a Dirichlet character modulo $N$
75(using the Hijikata trace formula).
76
77  \item {\bf Character groups of tori:}
78Action of Hecke operators on the character group associated to $J_0(p)$
79(using the Mestre-Oesterl\'{e} graph method).  The matrices attained
80in this way are very sparse.
81
82  \item {\bf Tables:} Functions for making tables of eigenforms.
83
84  \item {\bf More:} And much more...
85
86\end{itemize}
87
89\hecke{} grew out of work on my thesis which involves computing
90special values of $L$-functions, congruences, and verifying modularity of
91certain Galois representations.  In a sense, \hecke{} is also the program
92I wish had existed when I was taking my first modular forms course and
93wanted to see lots of concrete examples of modular forms.
94(Some of the tables computed using \hecke{} can be found at
95{\tt http://shimura.math.berkeley.edu/\~{ }was/Tables}.)
96
98In this guided tour, you will see how to use
99\hecke{} to compute the action of Hecke operators,
100bases of eigenforms, and obtain information about
101special values of $L$-functions.
102
103\head{Starting \hecke.} To start \hecke{}, type
104{\tt hecke} at the command line.  You will see something like
105\begin{verbatim}
106# hecke
107  HECKE:  Modular Forms Calculator   Version 0.4 (June 14, 1999)
108                    William A. Stein
109Send bug reports and suggestions to was@math.berkeley.edu.
110Type ? for help.
111HECKE>
112\end{verbatim}
113Typing {\tt ?} gives a list of modes'' which include:
114\begin{verbatim}
115  calc:      Motive calculator
116  exsymbols: Extended modular symbols mode
117  formulas:  Formula calculator
118  graphs:    Monodromy pairing calculator
119  msymbols:  Modular symbols calculator
120  tables:    Table making routines
121\end{verbatim}
122\head{Modular forms and Hecke operators calculator.}
123Type {\tt msymbols} to start the modular forms and Hecke
124operators calculator.
125You will be asked for several bits of information which
126define the space on which to work.  Answer as follows:
127\begin{verbatim}
128   level N = 389
129   character chi = 0
130   weight k = 2
131\end{verbatim}
132After a brief computation the calculator interface will
133print some information about $M_2(\Gamma_0(389))$ and
135\begin{verbatim}
136   ---------------------------------------------------------------
137   Current space:   M_2(Gamma_0(389); Q)^+, dim=33
138   Hecke action on: V=M_2, dim=33
139   ---------------------------------------------------------------
140   M_2(389) ?
141\end{verbatim}
142The help system is similar to that in \pari. Typing {\tt ?} gives
143a list of subtopics.
144\begin{verbatim}
145   1: computing OPERATORS
146   2: setting current SPACE
147   3: cutting out SUBSPACES
148   4: computing BASIS
149   5: CONVERSIONS between representations
150   6: arithmetic INVARIANTS of torus A_V
151   7: INVARIANTS of Hecke algebra
152   8: OPTIONS
153\end{verbatim}
154To get an idea of what  $M_2(\Gamma_0(389))$ looks like, compute
155the characteristic polynomials of several Hecke operators $T_n$.
156Type {\tt t} then enter a positive integer $n$.
157\begin{verbatim}
158   ? t
159   Tn: Enter values of n, then q when done.
160   2
161   f2=(x-3)*(x + 2)*(x^2 -2)*(x^3 -4*x -2)*
162      (x^20 -3*x^19 -29*x^18 + 91*x^17 + 338*x^16 -1130*x^15
163       -2023*x^14 + 7432*x^13 + 6558*x^12 -28021*x^11 -10909*x^10
164       + 61267*x^9 + 6954*x^8 -74752*x^7 + 1407*x^6 + 46330*x^5
165       -1087*x^4 -12558*x^3 -942*x^2 + 960*x + 148)*
166      (x^6 + 3*x^5 -2*x^4 -8*x^3 + 2*x^2 + 4*x -1);
167   q
168\end{verbatim}
169Let's compute the action of a few Hecke operators on the dimension
170two factor.  Type {\tt subeigenpoly}, then select the dimension
171two factor:
172\begin{verbatim}
173   M_2(389) ? subeigenpoly
174   [...]
175   n = 2                             <---- you type this
176   Choose one of the following factors.
177        1: x+2
178        2: x-3
179        3: x^2-2
180        4: x^3-4*x-2
181        5: x^20-3*x^19-29*x^18+91*x^17+338*x^16-1130*x^15-2023*x^14+
182        7432*x^13+6558*x^12-28021*x^11-10909*x^10+61267*x^9+6954*x^8-
183        74752*x^7+1407*x^6+46330*x^5-1087*x^4-12558*x^3-942*x^2+960*x+148
184        6: x^6+3*x^5-2*x^4-8*x^3+2*x^2+4*x-1
185        7: ALL factors
186   Select a factor: 3               <---- you type this
187\end{verbatim}
188
189When the {\tt M\_2(389) ? } prompt appears, type {\tt opmatrix} to
190turn on matrix display and {\tt opcharpoly} to turn off
191computation of characteristic polynomials. Now you can compute
192matrices which represent the Hecke operators on this dimension two
193space:
194\begin{verbatim}
195   M_2(389) ? t
196   2
197   T2=[2,1;-2,-2];
198   3
199   T3=[0,1;-2,-4];
200   6
201   T6=[-2,-2;4,6];
202\end{verbatim}
203Let $A$ denote the corresponding dimension two
204optimal quotient of $J_0(389)$.
205To compute the BSD value $L(A,1)/\Omega_A$, type
206{\tt torusbsd}.  \hecke{} outputs $0$ along
207with the first few terms of the $q$-expansion of $f$
208and the discriminant of the ring $\Z[\ldots,a_n,\ldots]$.
209The sign in the functional equation for the $L$-function
210is minus the sign of the Atkin-Lehner involution
211$W_{389}$.   To compute this involution, type {\tt actatkin}
212and then enter {\tt 389} for $p$.  \hecke{} compute that
213$W_{389}=+1$ on $A$, so the sign in the functional equation
214is $-1$ and $L(A,1)$ is forced to vanish.
215
216To obtain the $q$-expansion of a normalized eigenform in
217our dimension two space, type {\tt basisnew} then {\tt n=7}.
218The result is
219\begin{verbatim}
220s1=t^2-2;  s=Mod(t,t^2-2);
221f1 = q + (s)*q^2 + (s-2)*q^3 + -1*q^5 + (-2*s+2)*q^6 + (-2*s-1)*q^7 + O(q^8);
222\end{verbatim}
223which means that a normalized newform is
224$$f_1 = q +\sqrt{2}q^2 + (\sqrt{2}-2)q^3 225 -q^5 + (-2\sqrt{2}+2)q^6 226 +(-2\sqrt{2}-1)q^7 + \cdots$$
227To compute the discriminant of the Hecke algebra $\T$,
228type {\tt heckedisc}.  \hecke{} computes the
229discriminant of the $\Z$-module generated by $T_1,\ldots,T_{ }$
230and finds:
231$$592456554486106225601956409404798293104261020095616213409857536000000$$
232$$=2^{53} \cdot 3^4\cdot 5^6\cdot31^2\cdot 37\cdot97^2\cdot 389\cdot3881 233\cdot 215517113148241 234\cdot 477439237737571441$$
235This is only known example in which $p \mid \disc(\T_{389})$
236(there are no other such $p<12000$).
237
239Next, compute a basis of eigenforms for
240$S_4(\Gamma_0(13),\eps)$
241where $\eps:(\Z/13\Z)\ra\C^*$ is a character whose image has
242order $3$. Type {\tt x} to quit computing on $M_2(389)$, type
243{\tt msymbols} again and enter {\tt N = 13}, {\tt chi = 3},
244and {\tt k = 4}.  In a second, the status display will appear:
245\begin{verbatim}
246   -------------------------------------------------------------------
247   Current space:   M_4(Gamma_0(13), eps=; Q[a]/(a^2-a+1))^+, dim=5
248   Hecke action on: V=M_4, dim=5
249   -------------------------------------------------------------------
250   M_4(13) ?
251\end{verbatim}
252(In the version you're using, the quadratic polynomial might
253be in $x$ instead of $a$.)
254Type {\tt basisnew}, then {\tt n = 3} to get the first $3$
255terms of the $q$-expansions of a basis of newforms. Note:
256only one representative from each Galois conjugacy class
257of newforms is provided.   The output is
258\begin{verbatim}
259   f1 = q + (-4*a)*q^2 + (-2*a)*q^3 + O(q^4);
260   s2=t^2+(-5*a)*t+(2*a-2); s=Mod(t,t^2+(-5*a)*t+(2*a-2));
261   f2 = q + (s)*q^2 + ((-3)*s+(5*a))*q^3 + O(q^4);
262\end{verbatim}
263This means that there are two (conjugacy classes of) eigenforms
264$f_1$ and $f_2$.  The first is $f_1=q-4aq^2-2aq^3+\cdots$ where
265$a$ is a primitive cube root of $1$, and the second is
266$f_2 =q + sq^2 +(-3s+5a)q^3 +\cdots$ where $s$ is a root
267of $t^2-5at+2a-2=0$.
268
269To work in fields of characteristic other than $0$,
270use the extended mode by typing {\tt exsymbols} instead of {\tt msymbols}
271at the {\tt HECKE> } prompt.
272
274The {\tt msymbols} mode is useful for computing basis of eigenforms
275and the action of Hecke operators on rather general spaces of
276modular forms.  It is less useful for computing specific information
277about the structure of $J_0(N)$.  For that, use the {\tt calc}
278mode.
279Type {\tt x} to get to the {\tt HECKE>} prompt,
280then type {\tt calc}.  When asked if you want to work in the fast
281$+1$ quotient, typing {\tt n}. (If you type {\tt yes}, many computations
282will be orders of magnitude faster, but are likely to be wrong
283by a power of $2$.)
284The basic syntax of a {\tt calc} mode command is as follows:
285\begin{center}
286   {\bf [level]k[weight][isogeny class].[command][(arguments)]}
287\end{center}
288Omitting the weight part of the command is the same as specifying
289$k=2$.
290Type {\tt 125} to obtain a list of optimal quotients of
291$J_0(125)$.
292\begin{verbatim}
293  ? 125
294  ****** SUMMARIZE LEVEL.
295  125k2:    dim    W
296   A        2      +
297   B        2      -
298   C        4      -
299\end{verbatim}
300This means that $J_0(125)\sim A\cross B\cross C$
301where $A,B,C$ are abelian varieties of dimensions
302$2$, $2$, and $4$.  We can compute $L(A,1)/\Omega_A$,
303$L(B,1)/\Omega_B$ and $L(C,1)/\Omega_C$:
304\begin{verbatim}
305   ? 125A.bsdratio
306   0
307   ? 125B.bsdratio
308   2^2/5
309   ? 125C.bsdratio
310   1/5
311\end{verbatim}
312The signs in the {\tt W} column above give the signs of the
313Atkin-Lehner involution $W_{125}$.  Thus one expects, because the
314level is low, that $J(\Q)\tensor\Q\isom A(\Q)\tensor\Q\ncisom 315\Q\oplus\Q$. This is in fact the case, though we will not prove it
316here.  (I haven't yet implemented a function for computation
317$L'(A,1)$, so the rank can't yet be bounded from within \hecke.)
318What about the torsion?  Type {\tt 125.torsionbound(13)} to get an
319upper bound on the torsion subgroup of $J_0(125)$.  Then type {\tt
320125.cusporder} to compute the order of $(0)-(\infty)\in 321J_0(125)(\Q)$.
322\begin{verbatim}
323   ? 125.torsionbound(13)
324   5^2
325   ? 125.cusporder
326   5^2
327\end{verbatim}
328We're lucky -- the lower and upper bounds match up and we conclude
329that $J(\Q)\ncisom\Z^2\oplus(\Z/25\Z)$. Next type {\tt
330125A.intersection(B)} to obtain the structure of the finite
331abelian group $A'\intersect B'\subset J$, where $A'$, $B'$ are the
332abelian varieties dual to $A$ and $B$. The answer {\tt [2,2,2,2]}
333indicates that the intersection is $(\Z/2\Z)^4$.  This implies
334that the corresponding newforms satisfy a congruence in
335characteristic $2$. To exit {\tt calc} mode, type {\tt
336$\backslash{}$q}.
337
338This tutorial has barely scratched the surface of what is possible
339using \hecke{}.  If you are interesting in learning more, talk to
340me.
341\end{document}
342
343
344%(For more on $J_0(125)$,
345%see Poluakis, D. {\em La courbe modulaire $X_0(125)$ et sa
346%jacobienne}, J. Num. Theory {\bf 25} (1987), no. 1, 112--131.)
347
348To compute the modular degree of $A$ type {\tt torusmoddeg}.
349It will again ask for a factor of $T_2$; enter choice $1$.
350The answer which \hecke{} returns is $2^2\cdot 3^2$.
351{\em Warning:} We are really computing the action of Hecke
352operators on the $+1$ subspace of $H_1(X_0(N))$ so the modular
353degree can be wrong by a power of $2$; to compute the correct
354modular degree it is necessary to start the modular symbols
355mode using the command {\tt Modular} instead of {\tt modular}.
356