Sharedwww / Tables / hecke.texOpen in CoCalc
Author: William A. Stein
1
\documentclass{article}
2
\include{macros}
3
%\usepackage{fullpage}
4
\newcommand{\head}[1]{\vspace{3ex}\par\noindent{\large \bf #1}\vspace{1ex}\par\noindent}
5
\newcommand{\bighead}[1]{\vspace{4ex}\par\noindent{\Large \bf #1}\vspace{1ex}\par\noindent}
6
7
\begin{document}
8
\begin{center}
9
{\bf \Large \sc HECKE: The Modular Forms Calculator}\vspace{1ex}\\
10
William A. Stein\\
11
\end{center}
12
13
\head{What is \hecke{}?}\hecke{} is a program for computing with
14
modular forms. It implements algorithms of Cremona, Hijikata,
15
Merel, Mestre-Oesterl\'{e}, Shimura, and others. It is completely
16
{\em free} software, currently available only for Linux machines
17
at
18
\begin{verbatim}
19
http://shimura.math.berkeley.edu/~was/Tables/hecke.html
20
\end{verbatim}
21
Unfortunately it is still in development, and quite a bit of work
22
remains to be done\footnote{Hecke is being written by me, with
23
advice from K. Buzzard and H.W. Lenstra.}. I should emphasize that
24
\hecke{} is {\em not} yet ``rock solid'' and ready for general
25
release, so you should be especially skeptical of the results it
26
gives and aware that the interface is at certain points very
27
primitive. Nonetheless, \hecke{} is capable of many computations
28
which aren't currently possible in any other single, integrated,
29
publicly available, package. The main drawbacks are that the
30
interface may be awkward and certain parts of the implementation
31
have not been properly optimized.
32
33
\head{What can \hecke{} do?} \hecke{} consists both of a \cpp{}
34
library and an interactive calculator. Most of the following is
35
implemented.
36
\begin{itemize}
37
\item {\bf Modular forms and Hecke operators:} Computations
38
on the spaces $M_k(\Gamma_1(N),\eps)$, $k\geq 2,$
39
over cyclotomic and finite fields.
40
Functions 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
71
as the numbers of cusps on modular curves, dimensions of spaces
72
of cusps forms, and computation of
73
$\dim S_k(\Gamma_1(N),\eps)$ for $k\geq 2$
74
and $\eps$ a Dirichlet character modulo $N$
75
(using the Hijikata trace formula).
76
77
\item {\bf Character groups of tori:}
78
Action of Hecke operators on the character group associated to $J_0(p)$
79
(using the Mestre-Oesterl\'{e} graph method). The matrices attained
80
in 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
88
\head{Why does \hecke{} exist?}
89
\hecke{} grew out of work on my thesis which involves computing
90
special values of $L$-functions, congruences, and verifying modularity of
91
certain Galois representations. In a sense, \hecke{} is also the program
92
I wish had existed when I was taking my first modular forms course and
93
wanted 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
97
\bighead{Guided tour}
98
In this guided tour, you will see how to use
99
\hecke{} to compute the action of Hecke operators,
100
bases of eigenforms, and obtain information about
101
special 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
109
Send bug reports and suggestions to was@math.berkeley.edu.
110
Type ? for help.
111
HECKE>
112
\end{verbatim}
113
Typing {\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.}
123
Type {\tt msymbols} to start the modular forms and Hecke
124
operators calculator.
125
You will be asked for several bits of information which
126
define 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}
132
After a brief computation the calculator interface will
133
print some information about $M_2(\Gamma_0(389))$ and
134
await your command.
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}
142
The help system is similar to that in \pari. Typing {\tt ?} gives
143
a 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}
154
To get an idea of what $M_2(\Gamma_0(389))$ looks like, compute
155
the characteristic polynomials of several Hecke operators $T_n$.
156
Type {\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}
169
Let's compute the action of a few Hecke operators on the dimension
170
two factor. Type {\tt subeigenpoly}, then select the dimension
171
two 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
189
When the {\tt M\_2(389) ? } prompt appears, type {\tt opmatrix} to
190
turn on matrix display and {\tt opcharpoly} to turn off
191
computation of characteristic polynomials. Now you can compute
192
matrices which represent the Hecke operators on this dimension two
193
space:
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}
203
Let $A$ denote the corresponding dimension two
204
optimal quotient of $J_0(389)$.
205
To compute the BSD value $L(A,1)/\Omega_A$, type
206
{\tt torusbsd}. \hecke{} outputs $0$ along
207
with the first few terms of the $q$-expansion of $f$
208
and the discriminant of the ring $\Z[\ldots,a_n,\ldots]$.
209
The sign in the functional equation for the $L$-function
210
is minus the sign of the Atkin-Lehner involution
211
$W_{389}$. To compute this involution, type {\tt actatkin}
212
and then enter {\tt 389} for $p$. \hecke{} compute that
213
$W_{389}=+1$ on $A$, so the sign in the functional equation
214
is $-1$ and $L(A,1)$ is forced to vanish.
215
216
To obtain the $q$-expansion of a normalized eigenform in
217
our dimension two space, type {\tt basisnew} then {\tt n=7}.
218
The result is
219
\begin{verbatim}
220
s1=t^2-2; s=Mod(t,t^2-2);
221
f1 = 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}
223
which 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$$
227
To compute the discriminant of the Hecke algebra $\T$,
228
type {\tt heckedisc}. \hecke{} computes the
229
discriminant of the $\Z$-module generated by $T_1,\ldots,T_{ }$
230
and 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$$
235
This is only known example in which $p \mid \disc(\T_{389})$
236
(there are no other such $p<12000$).
237
238
\head{Nontrivial character and weight.}
239
Next, compute a basis of eigenforms for
240
$S_4(\Gamma_0(13),\eps)$
241
where $\eps:(\Z/13\Z)\ra\C^*$ is a character whose image has
242
order $3$. Type {\tt x} to quit computing on $M_2(389)$, type
243
{\tt msymbols} again and enter {\tt N = 13}, {\tt chi = 3},
244
and {\tt k = 4}. In a second, the status display will appear:
245
\begin{verbatim}
246
-------------------------------------------------------------------
247
Current space: M_4(Gamma_0(13), eps=[3]; 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
253
be in $x$ instead of $a$.)
254
Type {\tt basisnew}, then {\tt n = 3} to get the first $3$
255
terms of the $q$-expansions of a basis of newforms. Note:
256
only one representative from each Galois conjugacy class
257
of 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}
263
This 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
267
of $t^2-5at+2a-2=0$.
268
269
To work in fields of characteristic other than $0$,
270
use the extended mode by typing {\tt exsymbols} instead of {\tt msymbols}
271
at the {\tt HECKE> } prompt.
272
273
\head{Motives associated to modular forms.}
274
The {\tt msymbols} mode is useful for computing basis of eigenforms
275
and the action of Hecke operators on rather general spaces of
276
modular forms. It is less useful for computing specific information
277
about the structure of $J_0(N)$. For that, use the {\tt calc}
278
mode.
279
Type {\tt x} to get to the {\tt HECKE>} prompt,
280
then 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
282
will be orders of magnitude faster, but are likely to be wrong
283
by a power of $2$.)
284
The 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}
288
Omitting the weight part of the command is the same as specifying
289
$k=2$.
290
Type {\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}
300
This means that $J_0(125)\sim A\cross B\cross C$
301
where $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}
312
The signs in the {\tt W} column above give the signs of the
313
Atkin-Lehner involution $W_{125}$. Thus one expects, because the
314
level 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
316
here. (I haven't yet implemented a function for computation
317
$L'(A,1)$, so the rank can't yet be bounded from within \hecke.)
318
What about the torsion? Type {\tt 125.torsionbound(13)} to get an
319
upper bound on the torsion subgroup of $J_0(125)$. Then type {\tt
320
125.cusporder} to compute the order of $(0)-(\infty)\in
321
J_0(125)(\Q)$.
322
\begin{verbatim}
323
? 125.torsionbound(13)
324
5^2
325
? 125.cusporder
326
5^2
327
\end{verbatim}
328
We're lucky -- the lower and upper bounds match up and we conclude
329
that $J(\Q)\ncisom\Z^2\oplus(\Z/25\Z)$. Next type {\tt
330
125A.intersection(B)} to obtain the structure of the finite
331
abelian group $A'\intersect B'\subset J$, where $A'$, $B'$ are the
332
abelian varieties dual to $A$ and $B$. The answer {\tt [2,2,2,2]}
333
indicates that the intersection is $(\Z/2\Z)^4$. This implies
334
that the corresponding newforms satisfy a congruence in
335
characteristic $2$. To exit {\tt calc} mode, type {\tt
336
$\backslash{}$q}.
337
338
This tutorial has barely scratched the surface of what is possible
339
using \hecke{}. If you are interesting in learning more, talk to
340
me.
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
348
To compute the modular degree of $A$ type {\tt torusmoddeg}.
349
It will again ask for a factor of $T_2$; enter choice $1$.
350
The answer which \hecke{} returns is ``$2^2\cdot 3^2$.
351
{\em Warning:} We are really computing the action of Hecke
352
operators on the $+1$ subspace of $H_1(X_0(N))$ so the modular
353
degree can be wrong by a power of $2$; to compute the correct
354
modular degree it is necessary to start the modular symbols
355
mode using the command {\tt Modular} instead of {\tt modular}.
356