Computing With Modular Forms

William Stein December 15, 2005

2

Contents

Preface 7

1 Modular Forms 9 1.1 Basic Definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 1.2 Modular Forms of Level 1 . . . . . . . . . . . . . . . . . . . . . . 10 1.3 Modular Forms of Any Level . . . . . . . . . . . . . . . . . . . . 12 1.4 Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

2 Modular Forms of Level One 15

2.1 Examples of Modular Forms of Level 1 . . . . . . . . . . . . . . . 15 2.1.1 The Cusp Form Δ . . . . . . . . . . . . . . . . . . . . . . 16 2.1.2 Fourier Expansions of Eisenstein Series . . . . . . . . . . 16

2.2 Structure Theorem For Level 1 Modular Forms . . . . . . . . . . 18 2.3 The Victor Miller Basis . . . . . . . . . . . . . . . . . . . . . . . 21 2.4 Hecke Operators . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 2.5 Computing Hecke Operators . . . . . . . . . . . . . . . . . . . . . 25

2.5.1 A Conjecture about Complexity . . . . . . . . . . . . . . 26 2.6 Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

3 Modular Symbols of Weight Two 29 3.1 Review of modular forms and Hecke operators . . . . . . . . . . . 30 3.2 Modular symbols . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

3.2.1 Manin’s trick . . . . . . . . . . . . . . . . . . . . . . . . . 34 3.2.2 Manin symbols . . . . . . . . . . . . . . . . . . . . . . . . 36 3.2.3 Hecke operators on modular symbols . . . . . . . . . . . . 40

3.3 Computing the boundary map . . . . . . . . . . . . . . . . . . . 43 3.4 Computing a basis for S_{2}(Γ_{0}(N)) . . . . . . . . . . . . . . . . . . 45

3.4.1 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 3.5 Computing S_{2}(Γ_{0}(N)) using eigenvectors . . . . . . . . . . . . . 49

3.5.1 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 3.6 Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 4 Dirichlet Characters 53

4.1 The Definition . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 4.2 Dirichlet Characters in SAGE . . . . . . . . . . . . . . . . . . . . 54 4.3 Representing Dirichlet Characters . . . . . . . . . . . . . . . . . . 56 4.4 Evaluation of Dirichlet Characters . . . . . . . . . . . . . . . . . 58 4.5 Conductors of Dirichlet Characters . . . . . . . . . . . . . . . . . 62 4.6 Restriction, Extension, and Galois Orbits . . . . . . . . . . . . . 64 4.7 Alternative Representations of Characters . . . . . . . . . . . . . 66 4.8 Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67

5 Eisenstein Series 69 5.1 Generalized Bernoulli Numbers . . . . . . . . . . . . . . . . . . . 69 5.2 Explicit Basis for the Eisenstein Subspace . . . . . . . . . . . . . 71 5.3 Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73

6 Dimensions Formulas 75

6.1 Modular Forms for Γ_{0}(N) . . . . . . . . . . . . . . . . . . . . . . 76

6.1.1 New and Old Subspaces . . . . . . . . . . . . . . . . . . . 77 6.2 Modular Forms for Γ_{1}(N) . . . . . . . . . . . . . . . . . . . . . . 80 6.3 Modular Forms with Character . . . . . . . . . . . . . . . . . . . 81 6.4 Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84

7 Linear Algebra 85 7.1 Echelon Forms of Matrices . . . . . . . . . . . . . . . . . . . . . . 85 7.2 Echelon Forms over ℚ . . . . . . . . . . . . . . . . . . . . . . . . 88 7.3 Polynomials . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 7.4 Decomposing Spaces . . . . . . . . . . . . . . . . . . . . . . . . . 93

7.4.1 Wiedemann’s Minimal Polynomial Algorithm . . . . . . . 94 7.4.2 Polynomial Factorization . . . . . . . . . . . . . . . . . . 98 7.4.3 Decomposition Using Kernels . . . . . . . . . . . . . . . . 98 7.4.4 Multi-Modular Decomposition Algorithm . . . . . . . . . 98

8 Modular Symbols of any Weight and Level 101 8.1 Modular Symbols . . . . . . . . . . . . . . . . . . . . . . . . . . . 102 8.2 Manin Symbols . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104

8.2.1 Coset Representatives and Manin Symbols . . . . . . . . 107 8.2.2 Modular Symbols With Character . . . . . . . . . . . . . 108

8.3 Hecke Operators . . . . . . . . . . . . . . . . . . . . . . . . . . . 108 8.3.1 General Definition of Hecke Operators . . . . . . . . . . . 109 8.3.2 Hecke Operators on Manin Symbols . . . . . . . . . . . . 111 8.3.3 Remarks on Complexity . . . . . . . . . . . . . . . . . . . 113

8.4 Cuspidal Modular Symbols . . . . . . . . . . . . . . . . . . . . . 114 8.5 The Pairing Between Modular Symbols and Modular Forms … 115 8.6 Explicitly Computing 𝕄_{k}(Γ_{0}(N) . . . . . . . . . . . . . . . . . . 119

8.6.1 Computing ℙ^{1}(ℤ/Nℤ) . . . . . . . . . . . . . . . . . . . . 119 8.6.2 Examples of Computation of 𝕄_{k}(Γ_{0}(N)) . . . . . . . . . 122

8.6.3 Refined Algorithm For Computing Presentation . . . . . . 130 8.7 Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133

8.7.1 Later in this Book . . . . . . . . . . . . . . . . . . . . . . 133 8.7.2 Discussion of the Literature and Research . . . . . . . . . 133

8.8 Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134

9 Computing Spaces of Modular Forms 137 9.1 Decomposing Modular Forms Using Dirichlet Characters . . . . . 137 9.2 Atkin-Lehner-Li Theory . . . . . . . . . . . . . . . . . . . . . . . 139 9.3 Computing Cuspforms Using

Modular Symbols . . . . . . . . . . . . . . . . . . . . . . . . . . . 141 9.4 Computing Systems of Eigenvalues . . . . . . . . . . . . . . . . . 142

9.4.1 Computing Projection Onto a Subspace . . . . . . . . . . 143 9.4.2 Systems of Eigenvalues . . . . . . . . . . . . . . . . . . . . 143

10 Special Values of L-functions and Periods 149 10.1 The Period Mapping and Complex Torus Attached to a Newform 149 10.2 Extended Modular Symbols . . . . . . . . . . . . . . . . . . . . . 151 10.3 Numerically Approximating Period Integrals . . . . . . . . . . . . 151 10.4 Speeding Convergence Using the Atkin-Lehner Operator . . . . . 154

10.4.1 Another Atkin-Lehner Trick . . . . . . . . . . . . . . . . . 156 10.5 Computing the Period Mapping . . . . . . . . . . . . . . . . . . . 157 10.6 Computing Elliptic Curves of Given Conductor . . . . . . . . . . 158

10.6.1 Using Modular Symbols . . . . . . . . . . . . . . . . . . . 158 10.6.2 Finding Curves by Finding S-Integral Points . . . . . . . 159

10.7 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160 10.7.1 Jacobians of genus-two curves . . . . . . . . . . . . . . . . 160 10.7.2 Level one cusp forms . . . . . . . . . . . . . . . . . . . . . 161 10.7.3 CM elliptic curves of weight greater than two . . . . . . . 162

10.8 Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162

11 Congruences 165

11.1 Congruences Between Modular Forms . . . . . . . . . . . . . . . 165 11.1.1 The j-invariant . . . . . . . . . . . . . . . . . . . . . . . . 165 11.1.2 Congruences for Modular Forms . . . . . . . . . . . . . . 166 11.1.3 Congruence for Newforms . . . . . . . . . . . . . . . . . . 169

11.2 Generating the Hecke Algebra as a ℤ-module . . . . . . . . . . . 170

12 Miscellaneous 171 12.1 Computing Widths of Cusps . . . . . . . . . . . . . . . . . . . . . 171 6 CONTENTS

Preface

This is a book about algorithms for computing with modular forms that started as a series of notes for a graduate course at Harvard University in 2004. This book is meant to answer the question “How do you compute spaces of modular forms”, by both providing a clear description of the specific algorithms that are used and explaining how to apply them using SAGE [SJ05].

I have spent many years trying to find good practical ways to compute with classical modular forms for congruence subgroups of SL_{2}(ℤ), and have implemented most of these algorithms several times, first in C++ [Ste99], then in MAGMA [BCP97], and most recently as part of SAGE. Much of this work has involved turning formulas and constructions buried in obscure research papers into precise computational recipes, then testing these in many cases and eliminating subtle inaccuracies (published theorems sometimes contain small mistakes that appear magnified when implemented and run on a computer). The goal of this book is to explain some of what I have learned along the way.

The author is aware of no other books on computing with modular forms, the closest work being Cremona’s book [Cre97a], which is about computing with elliptic curves, and Cohen’s book [Coh93] about algebraic number theory. The field is not yet mature, and there are missing details and potential improvements to many of the algorithms, which you the reader might fill in, and which would be greatly appreciated by other mathematicians.

This book focuses on how best to compute the spaces M_{k}(N, ε) of modular forms, where k ≥ 2 is an integer and ε is a Dirichlet character modulo N. I will spend the most effort explaining the algorithms that appear so far to be the best (in practice!) for such computations. I will not discuss computing halfintegral weight forms, weight one forms, forms for non-congruence subgroups or groups other than GL_{2}, Hilbert and Siegel modular forms, trace formulas, p-adic modular forms, and modular abelian varieties, all of which are topics for another book.

The reader is not assumed to have prior exposure to modular forms, but should be familiar with abstract algebra, basic algebraic number theory, Riemann surfaces, and complex analysis.

Acknowledgement. Kevin Buzzard made many helpful remarks which were helpful in finding the algorithms in Chapter 4. Noam Elkies made many remarks about Chapters 1 and 2. The students in a Spring 2005 Harvard course and a Fall 2005 UC San diego course provided substantial feedback: in particular, Abhinav Kumar made observations about computing widths of cusps and Thomas James Barnet-Lamb about how to represent Dirichlet characters.

Parts of Chapter 1 follow [Ser73, Ch. VII] closely, though we adjust the notation, definitions, and order of presentation to be consistent with the rest of this book. (For example, Serre writes 2k for the weight instead of k.)

Mark Watkins and Lynn Walling made many helpful comments on Chapter 3.

Grant Information. This material is based upon work supported by the National Science Foundation under Grant No. 0400386.

Chapter 1

Modular Forms

This chapter introduces modular forms, which are the central object of study in this book. We first introduce the upper half plane and the group SL_{2}(ℤ), then recall some definitions from complex analysis. Next we define modular forms of level 1 followed by modular forms of general level.

This chapter assumes familiarity with basic number theory, group theory, and complex analysis.

1.1 Basic Definitions

Modular forms are certain types of functions on the complex upper half plane

𝔥 = {z ∈ ℂ : Im(z) > 0}.

The objects we will consider arise from the modular group SL_{2}(ℤ) of two-by-two integer matrices with determinant equal to one. This group

SL_{2}(ℝ) = \{(\begin{matrix}a & b \\ c & d \end{matrix}) : ad − bc = 1, and a, b, c, d ∈ ℝ\}

acts on 𝔥 via linear fractional transformations, as follows. If γ = ( \begin{matrix}a & b \\ c & d \end{matrix} ) ∈ SL_{2}(ℝ) and z ∈ 𝔥, then (see Exercise 1.1)

γ(z) = \frac{az + b}{cz + d} ∈ 𝔥.  (1.1.1)

Definition 1.1.1 (Modular Group). The modular group is the subgroup SL_{2}(ℤ) of SL_{2}(ℝ) of matrices with integer entries. Thus SL_{2}(ℤ) is the group of all matrices ( \begin{matrix}a & b \\ c & d \end{matrix} ) with a, b, c, d ∈ ℤ and ad − bc = 1.

For example, the matrices

S = (\begin{matrix}0 & −1 \\ 1 & 0 \end{matrix})  and  T = (\begin{matrix}1 & 1 \\ 0 & 1 \end{matrix})  (1.1.2)

are both elements of SL_{2}(ℤ); the matrix S defines the function z ↦ −1/z, and T the function z ↦ z + 1.

Theorem 1.1.2. The group SL_{2}(ℤ) is generated by S and T.

Proof. See e.g. [Ser73, §VII.1], which uses the fundamental domain F consisting of all elements of 𝔥 that satisfy |z| ≥ 1 and Re(z) ≤ 1/2.

In SAGE we compute the group SL_{2}(ℤ) and its generators as follows:

      sage: G = SL(2,Z)
      sage: print G
      The modular group SL(2,Z)
      sage: S, T = G.gens()
      sage: S
      [ 0 -1]
      [ 1  0]
      sage: T
      [1 1]
      [0 1]

Definition 1.1.3 (Holomorphic and Meromorphic). Let R be an open subset of ℂ. A function f : R → ℂ is holomorphic if f is complex differentiable at every point z ∈ R, i.e., for each z ∈ R the limit lim_{h→0}(f(z + h) − f(z))/h exists, where h may approach 0 along any path. The function f : R → ℂ ∪ {∞} is meromorphic if it is holomorphic except (possibly) at a discrete set S of points in R, and at each α ∈ S there is a positive integer n such that (z − α)^{n}f(z) is holomorphic at α.

The function f(z) = e^{z} is a holomorphic function on 𝔥 (in fact on all of ℂ). The function 1/(z − i) is meromorphic on 𝔥, and fails to be analytic at i.

Modular forms are holomorphic functions on 𝔥 that transform in a particular way under a subgroup of SL_{2}(ℤ). Before definining general modular forms, we define modular forms of level 1.

1.2 Modular Forms of Level 1

Definition 1.2.1 (Weakly Modular Function). A weakly modular function of weight k ∈ ℤ is a meromorphic function f on 𝔥 such that for all γ = ( \begin{matrix}a & b \\ c & d \end{matrix} ) ∈ SL_{2}(ℤ) and all z ∈ 𝔥 we have

f(z) = (cz + d)^{−k}f(γ(z)).  (1.2.1)

The constant functions are weakly modular of weight 0. There are no nonzero weakly modular functions of odd weight (see Exercise 1.4), and it is by no means obvious that there are any weakly modular functions of even weight k ≥ 2. The product of two weakly modular functions of weights k_{1} and k_{2} is a weakly modular function of weight k_{1} + k_{2} (see Exercise 1.3), so once we find some nonconstant weakly modular functions, we’ll find many of them.

When k is even (1.2.1) has a possibly more conceptual interpretation; namely (1.2.1) is the same as

f(γ(z))d(γ(z))^{k/2} = f(z)dz^{k/2}.

Thus (1.2.1) simply says that the weight k “differential form” f(z)dz^{k/2} is fixed under the action of every element of SL_{2}(ℤ).

Since SL_{2}(ℤ) is generated by the matrices S and T of (1.1.2), to show that a meromorphic function f on 𝔥 is a weakly modular function all we have to do is show that for all z ∈ 𝔥 we have

f(z + 1) = f(z)  and  f(−1/z) = z^{k}f(z).  (1.2.2)

Suppose that f is a weakly modular function of some weight k. Then f might have a Fourier expansion, which we try to obtain as follows. Let q = q(z) = e^{2πiz}, which we view as a holomorphic function ℂ ∪ ∞ → D, where D is the closed unit disk. Let D′ be the punctured unit disk, i.e., D with the origin removed, and note that q : ℂ → D′. By (1.2.2) we have f(z + 1) = f(z), so there is a set-theoretic map F : D′ → ℂ such that for every z ∈ 𝔥 we have F (q(z)) = f(z). This function F is thus a complex-valued function on the open unit disk. It may or may not be well behaved at 0.

Suppose that F is well-behaved at 0, namely that for some m ∈ ℤ and all q in a neighborhood of 0 we have the equality

F (q) = ∑_{n=m}^{∞} a_{n}q^{n}.

If this is the case, we say that f is meromorphic at ∞. If, moreover, m ≥ 0, then we say that f is holomorphic at ∞.

Definition 1.2.2 (Modular Function). A modular function of weight k is a weakly modular function of weight k that is meromorphic at ∞.

Definition 1.2.3 (Modular Form). A modular form of weight k (and level 1) is a modular function of weight k that is holomorphic on 𝔥 and at ∞.

If f is a modular form, then there are complex numbers a_{n} such that for all z ∈ 𝔥,

f(z) = ∑_{n=0}^{∞} a_{n}q^{n} = ∑_{n=0}^{∞} a_{n}e^{2πinz}.  (1.2.3)

Proposition 1.2.4. The above series converges for all z ∈ 𝔥.

Proof. n The function f(q) is holomorphic on D, so its Taylor series converges absolutely in D. See also [Ser73, §VII.4] for an explicit bound on the |a_{n}|.

We set f(∞) = a_{0}, since q^{2πiz} → 0 as z → i∞, and the value of f at ∞ should be the value of F at 0, which is a_{0} from the power series.

Definition 1.2.5 (Cusp Form). A cusp form of weight k (and level 1) is a modular form of weight k such that f(∞) = 0, i.e., a_{0} = 0.

1.3 Modular Forms of Any Level

We next define spaces of modular forms of arbitrary level. For example, when k = 2 these are closely related to elliptic curves and abelian varieties.

A congruence subgroup of SL_{2}(ℤ) is any subgroup that contains

Γ(N) = ker(SL_{2}(ℤ) → SL_{2}(ℤ/Nℤ))

for some N. The smallest such N is the level of Γ. For example,

Γ_{1}(N) = \{(\begin{matrix}a & b \\ c & d \end{matrix}) ∈ SL_{2}(ℤ) : (\begin{matrix}a & b \\ c & d \end{matrix}) ≡ (\begin{matrix}1 & ∗ \\ 0 & 1 \end{matrix}) (mod N)\}

and

Γ_{0}(N) = \{(\begin{matrix}a & b \\ c & d \end{matrix}) ∈ SL_{2}(ℤ) : (\begin{matrix}a & b \\ c & d \end{matrix}) ≡ (\begin{matrix}∗ & ∗ \\ 0 & ∗ \end{matrix}) (mod N)\}

are congruence subgroups of level N.

Let k be an integer. Define the weight k right action of GL_{2}(ℚ) on the set of functions f : 𝔥 → ℂ as follows. If γ = ( \begin{matrix}a & b \\ c & d \end{matrix} ) ∈ GL_{2}(ℚ), let

f|[γ]_{k} = det(γ)^{k−1}(cz + d)^{−k}f(γ(z)).  (1.3.1)

Proposition 1.3.1. The action f ↦ f|[γ]_{k} is a right action of GL_{2}(ℤ) on the set of all functions f : 𝔥 → ℂ; in particular,

f|[γ_{1}γ_{2}]_{k} = (f|[γ_{1}]_{k})|[γ_{2}]_{k},

Proof. See Exercise 1.7.

Definition 1.3.2 (Weakly Modular Function). A weakly modular function of weight k for a congruence subgroup Γ is a meromorphic function f : 𝔥 → ℂ such that f|[γ]_{k} = f for all γ ∈ Γ.

A central object in the theory of modular forms (and modular symbols) is the set of all cusps

ℙ^{1}(ℚ) = ℚ ∪ {∞}.

The set of cusps for a congruence subgroup Γ is the set C(Γ) of orbits of ℙ^{1}(ℚ) under the action of Γ. (We will often identify elements of C(Γ) with a representative element from the orbit.) For example, if Γ = SL_{2}(ℤ) there is exactly one orbit.

Lemma 1.3.3. For any cusps α, β ∈ ℙ^{1}(ℚ) there exists γ ∈ SL_{2}(ℤ) such that γ(α) = β.

Proof. This is Exercise 1.8.

Proposition 1.3.4. For any congruence subgroup Γ, the set C(Γ) of cusps is finite.

In order to define modular forms for general congruence subgroups we need to make sense of what it means for a function to be holomorphic on the extended upper halfplane

𝔥^{∗} = 𝔥 ∪ ℙ^{1}(ℚ).

See [Shi94, §1.3–1.5] for a detailed description of the right topology to consider on 𝔥^{∗}, so that 𝔥^{∗} is a compactification of 𝔥. In particular, a basis of neighborhoods for α ∈ ℚ is given by the sets {α} ∪ D, where D is a disc in 𝔥 that is tangent to the real line at α.

Recall from Section 1.2 that a weakly modular function f on SL_{2}(ℤ) is holomorphic at ∞ if its q-expansion is of the form ∑_{n=0}^{∞} a_{n}q^{n}.

In order to make sense of holomorphicity of a weakly modular function f for Γ at any α ∈ ℚ, we first prove a lemma.

Lemma 1.3.5. If f : 𝔥 → ℂ is a weakly modular function of weight k for a congruence subgroup Γ, and δ ∈ SL_{2}(ℤ), then f|[δ]_{k} is a weakly modular function for δ^{−1}Γδ.

Proof. If s = δ^{−1}γδ ∈ δ^{−1}Γδ, then

(f|[δ]_{k})|[s]_{k} = f|[δs]_{k} = f|[δδ^{−1}γδ]_{k} = f|[γδ]_{k} = f|[δ]_{k}.

Fix a weight k weakly modular function f for some congruence subgroup Γ, and suppose α ∈ ℚ. In Section 1.2 we constructed the q-expansion of f by using

that f(z) = f(z + 1), which held since T = (\begin{matrix}1 & 1 \\ 0 & 1 \end{matrix}) ∈ SL_{2}(ℤ). Unfortunately,

there are congruence subgroups Γ such that T ∉ Γ. Moreover, even if we are interested only in modular forms for Γ_{1}(N), where we have T ∈ Γ_{1}(N) for all N, we have to consider q-expansions at infinity for modular forms on groups

δ^{−1}Γ_{1}(N)δ, and these need not contain T. Fortunately, T^{N} = (\begin{matrix}1 & N \\ 0 & 1 \end{matrix}) ∈ Γ(N),

so a congruence subgroup of level N contains T^{N}. Thus for our f we have f(z + h) = f(z) for some positive integer h, and again when f is meromorphic at infinity we obtain a Fourier expansion

f(z) = ∑_{n=m}^{∞} a_{n}q^{n/N},  (1.3.2)

but instead it is in powers of the function q^{1/N} = e^{2πiz/N}. We say that f is holomorphic at ∞ if in (1.3.2) we have m ≥ 0.

What about the other cusps α ∈ ℙ^{1}(ℚ)? By Lemma 1.3.3 there is a γ ∈ SL_{2}(ℤ) such that γ(∞) = α. We declare f to be holomorphic at the cusp α if the weakly modular function f|[γ]_{k} is holomorphic at ∞.

Definition 1.3.6 (Modular Form). A modular form of integer weight k for a congruence subgroup Γ is a weakly modular function f : 𝔥^{∗} → ℂ that is holomorphic on 𝔥^{∗}.

Proposition 1.3.7. A weakly modular function f of weight k for Γ is holomorphic at every element of ℙ^{1}(ℚ) if is holomorphic at a set of representative elements for C(Γ).

Proof. Let c_{1}, …, c_{n} ∈ ℙ^{1}(ℚ) be representatives for the set of cusps for Γ. If α ∈ ℙ^{1}(ℚ) then there is γ ∈ Γ such that α = γ(c_{i}) for some i. By hypothesis f is holomorphic at c_{i}, so if δ ∈ SL_{2}(ℤ) is such that δ(∞) = c_{i}, then f|[δ]_{k} is holomorphic at ∞. Since f is a weakly modular function,

f|[δ]_{k} = (f|[γ]_{k})|[δ]_{k} = f|[γδ]_{k}.  (1.3.3)

But γ(δ(∞)) = γ(c_{i}) = α, so (1.3.3) implies that f is holomorphic at α.

1.4 Exercises

1.1 Suppose γ = ( \begin{matrix}a & b \\ c & d \end{matrix} ) is a matrix with real entries and positive determinant. Prove that if z ∈ ℂ is a complex number with positive imaginary part, then the imaginary part of γ(z) = (az + b)/(cz + d) is also positive.

1.2 (a) Prove that a polynomial is an analytic function on ℂ.

(b) Prove that a rational function (quotient of two polynomials) is a meromorphic function on ℂ.

1.3 Suppose f and g are weakly modular functions with f ≠ 0.

(a) Prove that the product fg is a weakly modular function.

(b) Prove that 1/f is a weakly modular function.

(c) If f and g are modular functions, show that fg is a modular function.

(d) If f and g are modular forms, show that fg is a modular form.

1.4 Suppose f is a weakly modular function of odd weight k. Show that f = 0.

1.5 Prove that SL_{2}(ℤ) = Γ_{0}(1) = Γ_{1}(1) = Γ(1).

1.6 (a) Prove that Γ_{1}(N) is a group.

(b) Prove that Γ_{1}(N) has finite index in SL_{2}(ℤ) (Hint: it contains the kernel of the homomorphism SL_{2}(ℤ) → SL_{2}(ℤ/Nℤ).)

(c) Prove that Γ_{0}(N) has finite index in SL_{2}(ℤ).

1.7 Let k be an integer, and for any function f : 𝔥^{∗} → ℂ and γ = ( \begin{matrix}a & b \\ c & d \end{matrix} ) ∈ GL_{2}(ℚ), set f|[γ]_{k}(z) = (cz + d)^{−k}f(γ(z)). Prove that if γ_{1}, γ_{2} ∈ SL_{2}(ℤ), then for all z ∈ 𝔥^{∗} we have

f|[γ_{1}γ_{2}]_{k}(z) = ((f|[γ_{1}]_{k})|[γ_{2}]_{k})(z).

1.8 Prove that for any α, β ∈ ℙ^{1}(ℚ), there exists γ ∈ SL_{2}(ℤ) such that γ(α) = β.

Modular Forms of Level One

In this chapter we study in more detail the structure of level 1 modular forms.

We assume that you know some complex analysis (e.g., the residue theorem) and linear algebra.

2.1 Examples of Modular Forms of Level 1

In this section you will finally see some examples of modular forms of level 1! We will first introduce the Eisenstein series, one of each weight, then define Δ, which is a cusp form of weight 12. In Section 2.2 we will prove the structure theorem, which says that using addition and multiplication of these forms, we can generate all modular forms of level 1.

For an even integer k ≥ 4, the non-normalized weight k Eisenstein series is

G_{k}(z) = ∑_{m,n∈ℤ}^{∗} \frac{1}{(mz + n)^{k}} ,

where for a given z, the sum is over all m, n ∈ ℤ such that mz + n ≠ 0.

Proposition 2.1.1. The function G_{k}(z) is a modular form of weight k, i.e., G_{k} ∈ M_{k}(SL_{2}(ℤ)).

Proof. See [Ser73, § VII.2.3] for a proof that G_{k}(z) defines a holomorphic function on 𝔥^{∗}. To see that G_{k} is modular, observe that

G_{k}(z + 1) = ∑^{∗} \frac{1}{(m(z + 1) + n)^{k}} = ∑^{∗} \frac{1}{(mz + (n + m))^{k}} = ∑^{∗} \frac{1}{(mz + n)^{k}} ,

and

G_{k}(−1/z) = ∑^{∗} \frac{1}{(−m/z + n)^{k}} = ∑^{∗} \frac{z^{k}}{(−m + nz)^{k}} = z^{k} ∑^{∗} \frac{1}{(mz + n)^{k}} = z^{k}G_{k}(z).

Proposition 2.1.2. G_{k}(∞) = 2ζ(k), where ζ is the Riemann zeta function.

Proof. Taking the limit as z → i∞ in the definition of G_{k}(z), we obtain ∑_{n∈ℤ}^{∗} \frac{1}{n^{k}}, since the terms involving z all go to 0 as z ↦ i∞. This sum is twice ζ(k) = ∑_{n≥1} \frac{1}{n^{k}}.

For example,

G_{4}(∞) = 2ζ(4) = \frac{1}{3^{2} · 5}π^{4}

and

G_{6}(∞) = 2ζ(6) = \frac{2}{3^{3} · 5 · 7}π^{6}.

2.1.1 The Cusp Form Δ

Suppose E = ℂ/Λ is an elliptic curve over ℂ, viewed as a quotient of ℂ by a lattice Λ = ℤω_{1} + ℤω_{2}, with ω_{1}/ω_{2} ∈ 𝔥. Then

℘_{Λ}(u) = \frac{1}{u^{2}} + ∑_{k=4, (k even)}^{∞}(k − 1)G_{k}(ω_{1}/ω_{2})u^{k−2},

and

(℘′)^{2} = 4℘^{3} − 60G_{4}(ω_{1}/ω_{2})℘ − 140G_{6}(ω_{1}/ω_{2}).

The discriminant of the cubic 4x^{3}−60G_{4}(ω_{1}/ω_{2})x−140G_{6}(ω_{1}/ω_{2}) is 16Δ(ω_{1}/ω_{2}), where

Δ = (60G_{4})^{3} − 27(140G_{6})^{2}

is a cusp form of weight 12.

Lemma 2.1.3. The cusp form Δ has a 0 only at ∞.

Proof. Let ω_{1}, ω_{2} be as above. Since E is an elliptic curve, Δ(ω_{1}/ω_{2}) ≠ 0.

2.1.2 Fourier Expansions of Eisenstein Series

Recall from (1.2.3) that elements f of M_{k}(SL_{2}(ℤ)) can be expressed as formal power series in terms of q(z) = e^{2πiz}, and that this expansion is called the Fourier expansion of f. The following proposition gives the Fourier expansion of the Eisenstein series G_{k}(z).

Definition 2.1.4 (Sigma). For any integer t ≥ 0 and any positive integer n, let

σ_{t}(n) = ∑_{1≤d|n} d^{t}

be the sum of the tth powers of the positive divisors of n. Also, let σ(n) = σ_{0}(n). For example, if p is prime then σ_{t}(p) = 1 + p^{t}.

Proposition 2.1.5. For every even integer k ≥ 4, we have

G_{k}(z) = 2ζ(k) + 2 · \frac{(2πi)^{k}}{(k − 1)!} · ∑_{n=1}^{∞} σ_{k−1}(n)q^{n}.

Proof. See [Ser73, §VII.4], which uses a series of clever manipulations of series, starting with the identity

π cot(πz) = \frac{1}{z} + ∑_{m=1}^{∞} (\frac{1}{z + m} + \frac{1}{z − m}) .

From a computational point of view, the q-expansion for G_{k} from Proposition 2.1.5 is unsatisfactory, because it involves transcendental numbers. To understand more clearly what is going on, we introduce the Bernoulli numbers B_{n} for n ≥ 0 defined by the following equality of formal power series:

\frac{x}{e^{x} − 1} = ∑_{n=0}^{∞} B_{n} \frac{x^{n}}{n!} .  (2.1.1)

Expanding the power series on the left we have

\frac{x}{e^{x} − 1} = 1 − \frac{x}{2} + \frac{x^{2}}{12} − \frac{x^{4}}{720} + \frac{x^{6}}{30240} − \frac{x^{8}}{1209600} + ⋯

As this expansion suggests, the Bernoulli numbers B_{n} with n > 1 odd are 0 (see Exercise 1.6). Expanding the series further, we obtain the following table:

B_{0} = 1, B_{1} = −\frac{1}{2}, B_{2} = \frac{1}{6}, B_{4} = −\frac{1}{30}, B_{6} = \frac{1}{42}, B_{8} = −\frac{1}{30},

B_{10} = \frac{5}{66}, B_{12} = −\frac{691}{2730}, B_{14} = \frac{7}{6}, B_{16} = −\frac{3617}{510}, B_{18} = \frac{43867}{798},

B_{20} = −\frac{174611}{330}, B_{22} = \frac{854513}{138}, B_{24} = −\frac{236364091}{2730}, B_{26} = \frac{8553103}{6}.

Use the bernoulli command to compute Bernoulli numbers in SAGE.

      sage: bernoulli(12)
      -691/2730
      sage: bernoulli(50)
      495057205241079648212477525/66

For us, the significance of the Bernoulli numbers is their connection with values of ζ at positive even integers.

Proposition 2.1.6. If k ≥ 2 is an even integer, then

ζ(k) = −\frac{(2πi)^{k}}{2 · k!} · B_{k}.

Proof. The proof in [Ser73, §VII.4] involves manipulating a power series expansion for z cot(z).

Definition 2.1.7 (Normalized Eisenstein Series). The normalized Eisenstein series of even weight k ≥ 4 is

E_{k} = \frac{(k − 1)!}{2 · (2πi)^{k}} · G_{k}

Combining Propositions 2.1.5 and 2.1.6 we see that

E_{k} = −\frac{B_{k}}{2k} + q + ∑_{n=2}^{∞} σ_{k−1}(n)q^{n}.  (2.1.2)

It is thus now simple to explicitly write down Eisenstein series (see Exercise 2.1).

Warning 2.1.8. Our series E_{k} is normalized so that the coefficient of q is 1, but often in the literature E_{k} is normalized so that the constant coefficient is 1. We use the normalization with the coefficient of q equal to 1, because then the eigenvalue of the nth Hecke operator (see Section 2.4) is the coefficient of q^{n}. Our normalization is also convenient when considering congruences between cusp forms and Eisenstein series.

2.2 Structure Theorem For Level 1 Modular Forms

In this section we describe a structure theorem for modular forms of level 1. If f is a nonzero meromorphic function on 𝔥 and w ∈ 𝔥, let ord_{w}(f) be the largest integer n such that f/(w − z)^{n} is holomorphic at w. If f = ∑_{n=m}^{∞} a_{n}q^{n} with a_{m} ≠ 0, let ord_{∞}(f) = m. We will use the following theorem to give a presentation for the vector space of modular forms of weight k; this presentation will allow us to obtain an algorithm to compute a basis for this space.

Let F be the subset of 𝔥 of numbers z with |z| ≥ 1 and Re(z) ≤ 1/2. This is the standard fundamental domain for SL_{2}(ℤ).

Theorem 2.2.1 (Valence Formula). Suppose f ∈ M_{k}(SL_{2}(ℤ)) is nonzero. Then

ord_{∞}(f) + \frac{1}{2} ord_{i}(f) + \frac{1}{3} ord_{ρ}(f) + ∑_{w∈D}^{∗} ord_{w}(f) = \frac{k}{12},

where ∑_{w∈D}^{∗} is the sum over elements of F other than i or ρ.

Proof. Serre proves this theorem in [Ser73, §VII.3] using the residue theorem from complex analysis.

Let M_{k} = M_{k}(SL_{2}(ℤ)) denote the complex vector space of modular forms of weight k for SL_{2}(ℤ), and let S_{k} = S_{k}(SL_{2}(ℤ)) denote the subspace of weight k cusp forms for SL_{2}(ℤ). We have an exact sequence

0 → S_{k} → M_{k} → ℂ

that sends f ∈ M_{k} to f(∞). When k ≥ 4 is even, the space M_{k} contains the Eisenstein series G_{k} and G_{k}(∞) = 2ζ(k) ≠ 0, so the map M_{k} → ℂ is surjective, so the following sequence is exact:

0 → S_{k} → M_{k} → ℂ → 0 (when k ≥ 4 is even)

Thus when k ≥ 4 is even dim(S_{k}) = dim(M_{k}) − 1 hence

M_{k} = S_{k} ⊕ ℂG_{k}.

Proposition 2.2.2. For k < 0 and k = 2, we have M_{k} = 0.

Proof. Suppose f ∈ M_{k} is nonzero yet k = 2 or k < 0. By Theorem 2.2.1,

ord_{∞}(f) + \frac{1}{2} ord_{i}(f) + \frac{1}{3} ord_{ρ}(f) + ∑_{w∈D}^{∗} ord_{w}(f) = \frac{k}{12} ≤ 1/6.

This is impossible because each quantity on the left-hand side is nonnegative so whatever the sum is, it is too big (or 0, in which k = 0).

Theorem 2.2.3. Multiplication by Δ defines an isomorphism M_{k−12} → S_{k}.

Proof. (We follow [Ser73, §VII.3.2] closely.) We apply Theorem 2.2.1 to G_{4} and G_{6}. If f = G_{4}, then

ord_{∞}(f) + \frac{1}{2} ord_{i}(f) + \frac{1}{3} ord_{ρ}(f) + ∑_{w∈D}^{∗} ord_{w}(f) = \frac{4}{12} = \frac{1}{3},

with the ords all nonnegative, so ord_{ρ}(G_{4}) = 1 and ord_{w}(G_{4}) = 0 for all w ≠ ρ. Likewise ord_{i}(G_{6}) = 1 and ord_{w}(G_{6}) = 0 for all w ≠ i. Thus Δ(i) ≠ 0, so Δ is not identically 0 (this also follows from Lemma 2.1.3 above). Since Δ has weight 12 and ord_{∞}(Δ) ≥ 1, Theorem 2.2.1 implies that Δ has a simple zero at ∞ and does not vanish on 𝔥. Thus if f ∈ S_{k} and we let g = f/Δ, then g is holomorphic and satisfies the appropriate transformation formula, so g is a modular form of weight k − 12.

Corollary 2.2.4. For k = 0, 4, 6, 8, 10, 14, the vector space M_{k} has dimension 1, with basis 1, G_{4}, G_{6}, E_{8}, E_{10}, and E_{14}, respectively, and S_{k} = 0.

Proof. Combining Proposition 2.2.2 with Theorem 2.2.3 we see that the spaces M_{k} for k ≤ 10 can not have dimension bigger than 1, since then M_{k′} ≠ 0 for some k′ < 0. Also M_{14} has dimension at most 1, since M_{2} has dimension 0. Each of the indicated spaces of weight ≥ 4 contains the indicated Eisenstein series, so has dimension 1, as claimed.

Corollary 2.2.5. dim M_{k} = \begin{cases}0 & if k is odd, \\ ⌊k/12⌋ & if k ≡ 2 (mod 12), \\ ⌊k/12⌋ + 1 & if k ≢ 2 (mod 12), \end{cases} where ⌊x⌋ is

the biggest integer ≤ x.

Proof. As we have seen above, the formula is true when k ≤ 12. By Theorem 2.2.3, the dimension increases by 1 when k is replaced by k + 12.

Theorem 2.2.6. The space M_{k} has as basis the modular forms G_{4}^{a}G_{6}^{b}, where a, b are all pairs of nonnegative integers such that 4a + 6b = k.

Proof. We first prove by induction that the modular forms G_{4}^{a}G_{6}^{b} generate M_{k}, the cases k ≤ 12 being clear (e.g., when k = 0 we have a = b = 0 and basis 1). Choose some pair of integers a, b such that 4a + 6b = k (it is an elementary exercise to show these exist). The form g = G_{4}^{a}G_{6}^{b} is not a cusp form, since it is nonzero at ∞. Now suppose f ∈ M_{k} is arbitrary. Since M_{k} = S_{k} ⊕ ℂG_{k}, there is α ∈ ℂ such that f − αg ∈ S_{k}. Then by Theorem 2.2.3, there is h ∈ M_{k−12} such that f − αg = Δh. By induction, h is a polynomial in G_{4} and G_{6} of the required type, and so is Δ, so f is as well.

Suppose there is a nontrivial linear relation between the G_{4}^{a}G_{6}^{b} for a given k. By multiplying the linear relation by a suitable power of G_{4} and G_{6}, we may assume that that we have such a nontrivial relation with k ≡ 0 (mod 12). Now divide the linear relation by G_{6}^{k/12} to see that G_{4}^{3}/G_{6}^{2} satisfies a polynomial with coefficients in ℂ. Hence G_{4}^{3}/G_{6}^{2} is a root of a polynomial, hence a constant, which is a contradiction since the q-expansion of G_{4}^{3}/G_{6}^{2} is not constant.

Algorithm 2.2.7 (Basis for M_{k}). Given integers n and k, this algorithm computes a basis of q-expansions for the complex vector space M_{k} mod q^{n}. The q-expansions output by this algorithm have coefficients in ℚ.

1. [Simple Case] If k = 0 output the basis with just 1 in it, and terminate; otherwise if k < 4 or k is odd, output the empty basis and terminate.

2. [Power Series] Compute E_{4} and E_{6} mod q^{n} using the formula from (2.1.2) and the definition (2.1.1) of Bernoulli numbers.

3. [Initialize] Set b = 0.

4. [Enumerate Basis] For each integer b between 0 and ⌊k/6⌋, compute a = (k − 6b)/4. If a is an integer, compute and output the basis element E_{4}^{a}E_{6}^{b} mod q^{n}. When we compute, e.g., E_{4}^{a}, do the computation by finding E_{4}^{m} (mod q^{n}) for each m ≤ a, and save these intermediate powers, so they can be reused later, and likewise for powers of E_{6}.

Proof. This is simply a translation of Theorem 2.2.6 into an algorithm, since E_{k} is a nonzero scalar multiple of G_{k}. That the q-expansions have coefficients in ℚ follows from (2.1.2).

Example 2.2.8. We compute a basis for M_{24}, which is the space with smallest weight whose dimension is bigger than 1. It has as basis E_{4}^{6}, E_{4}^{3}E_{6}^{2}, and E_{6}^{4}, whose explicit expansions are

E_{4}^{6} = \frac{1}{191102976000000} + \frac{1}{132710400000}q + \frac{203}{44236800000}q^{2} + ⋯
E_{4}^{3}E_{6}^{2} = \frac{1}{3511517184000} − \frac{1}{12192768000}q − \frac{377}{4064256000}q^{2} + ⋯
E_{6}^{4} = \frac{1}{64524128256} − \frac{1}{32006016}q + \frac{241}{10668672}q^{2} + ⋯

In Section 2.3, we will discuss properties of the reduced row echelon form of any basis for M_{k}, which have better properties than the above basis.

2.3 The Victor Miller Basis

Lemma 2.3.1 (Victor Miller). The space S_{k} has a basis f_{1}, …, f_{d} such that if a_{i}(f_{j}) is the ith coefficient of f_{j}, then a_{i}(f_{j}) = δ_{i,j} for i = 1, …, d. Moreover the f_{j} all lie in ℤ[[q]].

This is a straightforward construction involving E_{4}, E_{6} and Δ. The following proof very closely follows [Lan95, Ch. X, Thm. 4.4], which is in turn follows the first lemma of Victor Miller’s thesis.

Proof. Let d = dim S_{k}. Since B_{4} = −1/30 and B_{6} = 1/42, we note that

F_{4} = −\frac{8}{B_{4}} · E_{4} = 1 + 240q + 2160q^{2} + 6720q^{3} + 17520q^{4} + ⋯

and

F_{6} = −\frac{12}{B_{6}} · E_{6} = 1 − 504q − 16632q^{2} − 122976q^{3} − 532728q^{4} + ⋯

have q-expansions in ℤ[[q]] with leading coefficient 1. Choose integers a, b ≥ 0 such that

4a + 6b ≤ 14  and  4a + 6b ≡ k (mod 12),

with a = b = 0 when k ≡ 0 (mod 12), and let

g_{j} = Δ^{j}F_{6}^{2(d−j)+b}F_{4}^{a}, for j = 1, …, d.

Then it is elementary to check that g_{j} has weight k, and

a_{j}(g_{j}) = 1,  and  a_{i}(g_{j}) = 0  when  i < j.

Hence the g_{j} are linearly independent over ℂ, and thus form a basis for S_{k}. Since F_{4}, F_{6}, and Δ are all in ℤ[[q]], so are the g_{j}. The f_{i} may then be constructed from the g_{j} by Gauss elimination. The coefficients of the resulting power series lie in ℤ because each time we clear a column we use the power series g_{j} whose leading coefficient is 1 (so no denominators are introduced).

Remark 2.3.2. The basis coming from Victor Miller’s lemma is canonical, since it is just the reduced row echelon form of any basis. Also the integral linear combinations are precisely the modular forms of level 1 with integral q-expansion.

We extend the Victor Miller basis to all M_{k} by taking a multiple of G_{k} with constant term 1, and subtracting off the f_{i} from the Victor Miller basis so that the coefficients of q, q^{2}, … q^{d} of the resulting expansion are 0. We call the extra basis element f_{0}.

Example 2.3.3. If k = 24, then d = 2. Choose a = b = 0, since k ≡ 0 (mod 12). Then

g_{1} = ΔF_{6}^{2} = q − 1032q^{2} + 245196q^{3} + 10965568q^{4} + 60177390q^{5} − ⋯

and

g_{2} = Δ^{2} = q^{2} − 48q^{3} + 1080q^{4} − 15040q^{5} + ⋯

We let f_{2} = g_{2} and

f_{1} = g_{1} + 1032g_{2} = q + 195660q^{3} + 12080128q^{4} + 44656110q^{5} − · · · .

Example 2.3.4. When k = 36, the Victor Miller basis, including f_{0}, is

f_{0} = 1 + 6218175600q^{4} + 15281788354560q^{5} + ⋯
f_{1} = q + 57093088q^{4} + 37927345230q^{5} + ⋯
f_{2} =  q^{2} + 194184q^{4} +  7442432q^{5} + ⋯
f_{3} =  q^{3} − 72q^{4} +  2484q^{5} + ⋯

Remark 2.3.5. If you wish to write f ∈ M_{k} as a polynomial in E_{4} and E_{6}, then it is wasteful to compute the Victor Miller basis. Instead, use the upper triangular basis Δ^{j}F_{6}^{2(d−j)+a}F_{4}^{b}, and match coefficients from q^{0} to q^{d}.

2.4 Hecke Operators

For any positive integer n, let

S_{n} = \{(\begin{matrix}a & b \\ 0 & d \end{matrix}) ∈ M_{2}(ℤ) : a ≥ 1, ad = n, and 0 ≤ b < d\} .

Note that the set S_{n} is in bijection with the set of sublattices of ℤ^{2} of index n, where ( \begin{matrix}a & b \\ c & d \end{matrix} ) corresponds to L = ℤ · (a, b) + ℤ · (0, d), as one can see, e.g., by using Hermite normal form (the analogue of reduced row echelon form over ℤ).

Recall from (1.3.1) that if γ = ( \begin{matrix}a & b \\ c & d \end{matrix} ) ∈ GL_{2}(ℚ), then

f|[γ]_{k} = det(γ)^{k−1}(cz + d)^{−k}f(γ(z)).

Definition 2.4.1 (Hecke Operator T_{n,k}). The nth Hecke operator T_{n,k} of weight k is the operator on functions on 𝔥 defined by

T_{n,k}(f) = ∑_{γ∈S_{n}} f|[γ]_{k}.

Remark 2.4.2. It would make more sense to write T_{n,k} on the right, e.g., f|T_{n,k}, since T_{n,k} is defined using a right group action. However, if n, m are integers, then T_{n,k} and T_{m,k} commute (by Proposition 2.4.4 below), so it does not matter whether we consider the Hecke operators as acting on the right or left.

Proposition 2.4.3. If f is a weakly modular function of weight k, then so is T_{n,k}(f), and if f is also a modular function, then so is T_{n,k}(f).

Proof. Suppose γ ∈ SL_{2}(ℤ). Since γ induces an automorphism of ℤ^{2}, the set

S_{n} · γ = {δγ : δ ∈ S_{n}}

is also in bijection with the sublattices of ℤ^{2} of index n. Then for each element δγ ∈ S_{n} · γ, there is σ ∈ SL_{2}(ℤ) such that σδγ ∈ S_{n} (the element σ transforms δγ to Hermite normal form), and the set of elements σδγ is equal to S_{n}. Thus

T_{n,k}(f) = ∑_{σδγ∈S_{n}} f|[σδγ]_{k} = ∑_{δ∈S_{n}} f|[δγ]_{k} = T_{n,k}(f)|[γ]_{k}.

Since f is holomorphic on 𝔥, each f|[γ]_{k} is holomorphic on 𝔥. A finite sum of holomorphic functions is holomorphic, so T_{n,k}(f) is holomorphic.

We will frequently drop k from the notation in T_{n,k}, since the weight k is implicit in the modular function to which we apply the Hecke operator. Thus we henceforth make the convention that if we write T_{n}(f) and f is modular, then we mean T_{n,k}(f), where k is the weight of f.

Proposition 2.4.4. On weight k modular functions we have

T_{mn} = T_{n}T_{m}  if (n, m) = 1,  (2.4.1)

and

T_{p^{n}} = T_{p^{n−1}}T_{p} − p^{k−1}T_{p^{n−2}}, if p is prime.  (2.4.2)

Proof. Let L be a lattice of index mn. The quotient ℤ^{2}/L is an abelian group of order mn, and (m, n) = 1, so ℤ^{2}/L decomposes uniquely as a direct sum of a subgroup order m with a subgroup of order n. Thus there exists a unique lattice L′ such that L ⊂ L′ ⊂ ℤ^{2}, and L′ has index m in ℤ^{2}. The lattice L′ corresponds to an element of S_{m}, and the index n subgroup L ⊂ L′ corresponds to multiplying that element on the right by some uniquely determined element of S_{n}. We thus have

SL_{2}(ℤ) · S_{m} · S_{n} = SL_{2}(ℤ) · S_{mn},

i.e., the set products of elements in S_{m} with elements of S_{n} equal the elements of S_{mn}, up to SL_{2}(ℤ)-equivalence. It then follows from the definitions that for any f, we have T_{mn}(f) = T_{n}(T_{m}(f)).

We will show that T_{p^{n}} + p^{k−1}T_{p^{n−2}} = T_{p}T_{p^{n−1}}. Suppose f is a weight k weakly modular function. Using that f|[p]_{k} = (p^{2})^{k−1}p^{−k}f = p^{k−2}f, we have

∑_{x∈S_{p^{n}}} f|[x]_{k} + p^{k−1} ∑_{x∈S_{p^{n−2}}} f|[x]_{k} = ∑_{x∈S_{p^{n}}} f|[x]_{k} + p ∑_{x∈pS_{p^{n−2}}} f|[x]_{k}.

Also

T_{p}T_{p^{n−1}}(f) = ∑_{y∈S_{p}} ∑_{x∈S_{p^{n−1}}} f|[x]_{k}|[y]_{k} = ∑_{x∈S_{p^{n−1}} ·S_{p}} f|[x]_{k}.

Thus it suffices to show that S_{p^{n}} union p copies of pS_{p^{n−2}} is equal to S_{p^{n−1}} · S_{p}, where we consider elements up to left SL_{2}(ℤ)-equivalence (i.e., the left action of SL_{2}(ℤ)).

Suppose L is a sublattice of ℤ^{2} of index p^{n}, so L corresponds to an element of S_{p^{n}}. First suppose L is not contained in pℤ^{2}. Then the image of L in ℤ^{2}/pℤ^{2} = (ℤ/pℤ)^{2} is of order p, so if L′ = pℤ^{2} + L, then [ℤ^{2} : L′] = p and [L : L′] = p^{n−1}, and L′ is the only lattice with this property. Second suppose that L ⊂ pℤ^{2} if of index p^{n}, and that x ∈ S_{p^{n}} corresponds to L. Then every one of the p + 1 lattices L′ ⊂ ℤ^{2} of index p contains L. Thus there are p + 1 chains L ⊂ L′ ⊂ ℤ^{2} with [ℤ^{2} : L′] = p.

The chains L ⊂ L′ ⊂ ℤ^{2} with [ℤ^{2} : L′] = p and [ℤ^{2} : L] = p^{n−1} are in bijection with the elements of S_{p^{n−1}} · S_{p}. On the other hand the union of S_{p^{n}} with p copies of pS_{p^{n−2}} corresponds to the lattices L of index p^{n}, but with those that contain pℤ^{2} counted p + 1 times. The structure of the set of chains L ⊂ L′ ⊂ ℤ^{2} that we derived in the previous paragraph gives the result.

Corollary 2.4.5. The Hecke operator T_{p^{n}}, for prime p, is a polynomial in T_{p}. If n, m are any integers then T_{n}T_{m} = T_{m}T_{n}.

Proof. The first statement is clear from (2.4.2), and this gives commutativity when m and n are both powers of p. Combining this with (2.4.1) gives the second statement in general.

Proposition 2.4.6. Suppose f = ∑_{n∈ℤ} a_{n}q^{n} is a modular function of weight k. Then

T_{n}(f) = ∑_{m∈ℤ} ( ∑_{1≤d | gcd(n,m)} d^{k−1}a_{mn/d^{2}} ) q^{m}.

In particular, if n = p is prime, then

T_{p}(f) = ∑_{m∈ℤ} (a_{mp} + p^{k−1}a_{m/p}) q^{m},

where a_{m/p} = 0 if m/p ∉ ℤ.

The proposition is not that difficult to prove (or at least the proof is easy to follow), and is proved in [Ser73, §VII.5.3] by writing out T_{n}(f) explicitly and using that ∑_{0≤b<d} e^{2πibm/d} is d if d | m and 0 otherwise. A corollary of Proposition 2.4.6 is that T_{n} preserves M_{k} and S_{k}.

Corollary 2.4.7. The Hecke operators preserve M_{k} and S_{k}.

Remark 2.4.8. We knew this already—for M_{k} it’s Proposition 2.4.3, and for S_{k} it’s easy to show directly that if f(i∞) = 0 then T_{n}f also vanishes at i∞.

Example 2.4.9. Recall that

E_{4} = \frac{1}{240} + q + 9q^{2} + 28q^{3} + 73q^{4} + 126q^{5} + 252q^{6} + 344q^{7} + · · · .

Using the formula of Proposition 2.4.6, we see that

T_{2}(E_{4}) = (1/240 + 2^{3} · (1/240)) + 9q + (73 + 2^{3} · 1)q^{2} + ⋯ = 9E_{4}.

Since M_{k} has dimension 1, and we have proved that T_{2} preserves M_{k}, we know that T_{2} acts as a scalar. Thus we know just from the constant coefficient of T_{2}(E_{4}) that T_{2}(E_{4}) = 9E_{4}. More generally, T_{p}(E_{4}) = (1 + p^{3})E_{4}. In fact for any k one has that

T_{n}(E_{k}) = σ_{k−1}(n)E_{k},

for any integer n ≥ 1 and even weight k ≥ 4.

Example 2.4.10. By Corollary 2.4.7, the Hecke operators T_{n} also preserve the subspace S_{k} of M_{k}. Since S_{12} has dimension 1 (spanned by Δ), we see that Δ is an eigenvector for every T_{n}. Since the coefficient of q in the q-expansion of Δ is 1, the eigenvalue of T_{n} on Δ is the nth coefficient of Δ. Moreover the function τ(n) that gives the nth coefficient of Δ is a multiplicative function. Likewise, one can show that the series E_{k} are eigenvectors for all T_{n}, and because in this book we normalize E_{k} so that the coefficient of q is 1, the eigenvalue of T_{n} on E_{k} is the coefficient σ_{k−1}(n) of q^{n}.

2.5 Computing Hecke Operators

In this section we describe a simple algorithm for computing matrices of Hecke operators on M_{k}.

Algorithm 2.5.1 (Hecke Operator). This algorithm computes a matrix for the Hecke operator T_{n} on the Victor Miller basis for M_{k}.

1. [Compute dimension] Set d = dim(S_{k}), which we compute using Corollary 2.2.5.

2. [Compute basis] Using the algorithm implicit in Lemma 2.3.1, compute a basis f_{0}, …, f_{d} for M_{k} modulo q^{dn+1}.

3. [Compute Hecke operator] Using the formula from Proposition 2.4.6, compute T_{n}(f_{i}) (mod q^{d+1}) for each i.

4. [Write in terms of basis] The elements T_{n}(f_{i}) (mod q^{d+1}) uniquely determine linear combinations of f_{0}, f_{1}, …, f_{d} (mod q^{d}). These linear combinations are trivial to find once we have computed T_{n}(f_{i}) (mod q^{d+1}), since the basis of f_{i} are in reduced row echelon form, so the combinations are just the first few coefficients of the power series T_{n}(f_{i}).

5. [Write down matrix] The matrix of T_{n} acting from the right is the matrix whose columsn are the linear combinations found in the previous step, i.e., whose columns are the coefficients of T_{n}(f_{i}).

Proof. First note that we compute a modular form f modulo q^{dn+1} in order to compute T_{n}(f) modulo q^{d+1}. This follows from Proposition 2.4.6, since in the formula the dth coefficient of T_{n}(f) involves only a_{dn}, and smaller-indexed coefficients of f. The uniqueness assertion of Step 4 follows from Lemma 2.3.1 above.

Example 2.5.2. This is the Hecke operator T_{2} on M_{36} is:

(\begin{matrix}34359738369 & 0 & 6218175600 & 9026867482214400 \\ 0 & 0 & 34416831456 & 5681332472832 \\ 0 & 1 & 194184 & −197264484 \\ 0 & 0 & −72 & −54528 \end{matrix})

It has characteristic polynomial

(x − 34359738369) · (x^{3} − 139656x^{2} − 59208339456x − 1467625047588864),

where the cubic factor is irreducible.

Conjecture 2.5.3 (Maeda). The characteristic polynomial of T_{2} on S_{k} is irreducible for any k.

Kevin Buzzard even observed that in many specific cases the Galois group of the characteristic polynomial of T_{2} is the full symmetric group (see [Buz96]). See also [FJ02] for more evidence for Maeda’s conjecture.

2.5.1 A Conjecture about Complexity

Let

Δ = ∑_{n=1}^{∞} τ(n)q^{n}
= q − 24q^{2} + 252q^{3} − 1472q^{4} + 4830q^{5} − 6048q^{6} − 16744q^{7}
+ 84480q^{8} − 113643q^{9} − 115920q^{10} + 534612q^{11}−
370944q^{12} − 577738q^{13} + 401856q^{14} + 1217160q^{15}+
987136q^{16} − 6905934q^{17} + 2727432q^{18} + 10661420q^{19} + ⋯

be the Δ-function.

Conjecture 2.5.4 (Edixhoven). There is an algorithm to compute τ(p), for prime p, that is polynomial-time in log(p). More generally, suppose f = ∑ a_{n}q^{n} is an eigenform in some space M_{k}(N, ε), where k ≥ 2. Then there is an algorithm to compute a_{p}, for p prime, in time polynomial in log(p).

Bas Edixhoven, Jean-Marc Couveignes and Robin de Jong have mostly proved that τ(p) can be computed in polynomial time; their approach involves sophisticated techniques from arithmetic geometry (e.g., étale cohomology, motives, Arakelov theory). This is work in progress and has not been written up completely yet. The ideas Edixhoven uses are inspired by the ones introduced by Schoof, Elkies and Atkin for quickly counting points on elliptic curves over finite fields (see [Sch95]).

More precisely, Edixhoven describes his strategy as follows:

1. We compute the mod ℓ Galois representations associated to Δ. In particular, we produce a polynomial f such that ℚ[x]/(f) is the corresponding field. This is then used to obtain τ(p) (mod ℓ) and do a Schoof like algorithm for computing τ(p).

2. We compute the field of definition of suitable points of order ℓ on J_{1}(ℓ) to do part 1.

3. The method is to approximate the polynomial f in some sense (e.g., over the complex numbers, or modulo many small primes r), and use an estimate from Arakelov theory to determine a precision that will suffice.

The rest of this book is about methods for computing subspaces of M_{k}(Γ_{1}(N)) for general N and k. These general methods are much more complicated than the methods presented in this chapter, since there are many more forms of small weight, and it can be difficult to obtain them. These forms of higher level have subtle and deep connections with arithmetic geometric objects such as elliptic curves, abelian varieties, and motives.

2.6 Exercises

2.1 By hand use (2.1.2) write down the coefficients of 1, q, q^{2}, and q^{3} of the Eisenstein series E_{8}.

2.2 Explicitly compute the Victor Miller basis for M_{28}(SL_{2}(ℤ)) to precision O(q^{8}). Your answer will look like Example 2.3.4.

2.3 Consider the cuspform f = q^{2}+192q^{3}−8280q^{4} ⋯ in S_{28}(SL_{2}(ℤ)). Write f as a polynomial in E_{4} and E_{6} (see Remark 2.3.5).

28 CHAPTER 2. MODULAR FORMS OF LEVEL ONE

Modular Symbols of Weight Two

We saw in Chapter 2 (especially Section 2.2) that we can compute each space M_{k}(SL_{2}(ℤ)) explicitly. This involved computing Eisenstein series E_{4} and E_{6} to some precision, then forming the basis {E_{4}^{a}E_{6}^{b} : 4a + 6b = k, 0 ≤ a, b ∈ ℤ} for M_{k}(SL_{2}(ℤ)). In this chapter we instead consider the problem of computing M_{2}(Γ_{0}(N)), for positive integers N. Again we have a decomposition

M_{2}(Γ_{0}(N)) = S_{2}(Γ_{0}(N)) ⊕ Eis_{2}(Γ_{0}(N)),

where Eis_{2}(Γ_{0}(N)) is a space spanned by explicit generalized Eisenstein series and S_{2}(Γ_{0}(N)) is the space of cusp forms, i.e., elements of M_{2}(Γ_{0}(N)) that vanish at all cusps.

The space Eis_{2}(Γ_{0}(N)) can be computed explicitly much like M_{k}(SL_{2}(ℤ)), as we will see in Chapter 5. On the other hand, general elements of S_{2}(Γ_{0}(p)) can not be written as sums or products of generalized Eisenstein series. In fact, the structure of M_{2}(Γ_{0}(N)) is drastically different than that of M_{k}(SL_{2}(ℤ)). For example, when p is a prime Eis_{2}(Γ_{0}(p)) has dimension 1, whereas S_{2}(Γ_{0}(p)) has dimension about p/12.

Fortunately an idea of Birch called “modular symbols” provides a powerful method for computing S_{2}(Γ_{0}(N)), and indeed much more. In this chapter, we explain how S_{2}(Γ_{0}(N)) is related to modular symbols, and how to use this relationship to explicitly compute a basis for S_{2}(Γ_{0}(N)). We will discuss much more general modular symbols in Chapter 8, where we will explain how to use them to compute S_{k}(Γ_{1}(N)) for any integers k ≥ 2 and N.

Section 3.1 contains a brief summary of basic facts about modular forms, Hecke operators, and integral homology. Section 3.2 introduces modular symbols, and describes how to compute with them. Section 3.5 outlines an algorithm for constructing cusp forms using modular symbols in conjunction with Atkin-Lehner theory.

This chapter assumes some familiarity with algebraic curves, Riemann surfaces, and homology groups of compact Riemann surfaces.

3.1 Review of modular forms and Hecke operators

The group Γ_{0}(N) acts on 𝔥^{∗} by linear fractional transformations, and the quotient Γ_{0}(N)\𝔥^{∗} is a Riemann surface, which we denote by X_{0}(N). Shimura showed in [Shi94, §6.7] that X_{0}(N) has a canonical structure of algebraic curve over ℚ.

Recall from Section 1.3 that a cusp form of weight 2 for Γ_{0}(N) is a function f on 𝔥 such that f(z)dz defines a holomorphic differential on X_{0}(N). Equivalently, a cusp form is a holomorphic function f on 𝔥 such that

(a) the expression f(z)dz is invariant under replacing z by γ(z) for each γ ∈ Γ_{0}(N), and

(b) f(z) vanishes at every cusp for Γ_{0}(N).

The space S_{2}(Γ_{0}(N)) of weight 2 cusp forms on Γ_{0}(N) is a finite dimensional complex vector space, of dimension equal to the genus g of X_{0}(N). Viewed topologically, as a 2-dimensional real manifold, X_{0}(N)(ℂ) is a g-holed torus (see Figure 3.1.1 on page 32).

Condition (b) in the definition of f(z) means that f(z) has a Fourier expansion about each element of ℙ^{1}(ℚ). Thus, at ∞ we have

f(z) = a_{1}e^{2πiz} + a_{2}e^{2πi2z} + a_{3}e^{2πi3z} + ⋯
= a_{1}q + a_{2}q^{2} + a_{3}q^{3} + ⋯,

where, for brevity, we write q = q(z) = e^{2πiz}.

Example 3.1.1. Let E be the elliptic curve defined by the equation y^{2} + xy = x^{3} + x^{2} − 4x − 5. Let a_{p} = p + 1 − #Ẽ(𝔽_{p}), where Ẽ is the reduction of E mod p (note that for the bad primes we have a_{3} = −1, a_{13} = 1). For n composite, define a_{n} using the relations at the end of Section 3.5. Then

f = q + a_{2}q^{2} + a_{3}q^{3} + a_{4}q^{4} + a_{5}q^{5} + ⋯
= q + q^{2} − q^{3} − q^{4} + 2q^{5} + ⋯

is the q-expansion of a modular form on Γ_{0}(39). The Shimura-Taniyama conjecture, which is now a theorem (see [BCDT01]) asserts that any q-expansion constructed as above from an elliptic curve over ℚ is a modular form.

Just as is the case for level 1 modular forms (see Section 2.4) there is a family of commuting Hecke operators that act on S_{2}(Γ_{0}(N)). To define them conceptually, we introduce an interpretation of X_{0}(N) as a space whose points parameterize elliptic curves with extra structure.

Proposition 3.1.2. The complex points of the open subcurve Y_{0}(N) = Γ_{0}(N)\𝔥 are in natural bijection with pairs (E, C), where E is an elliptic curve over ℂ and C is a cyclic subgroup of E(ℂ) of order N.

Suppose n and N are coprime positive integers. Keeping in mind Proposition 3.1.2, we see that there are two natural maps π_{1} and π_{2} from Y_{0}(n · N) to Y_{0}(N); the first, π_{1}, sends a pair (E, C) to (E, C′), where C′ is the unique cyclic subgroup of C of order N, and the second, π_{2}, sends a point (E, C) ∈ Y_{0}(N)(ℂ) to (E/D, C/D), where D is the unique cyclic subgroup of C of order n. These maps extend in a unique way to algebraic maps from X_{0}(n · N) to X_{0}(N):

\xymatrix{ & X_{0}(n · N) \ar[dl]_{π_{2}} \ar[dr]^{π_{1}} \\ X_{0}(N) &  & X_{0}(N).}

The nth Hecke operator T_{n} is (π_{1})_{∗} ∘ (π_{2})^{∗}, where π_{2}^{∗} and (π_{1})_{∗} denote pullback and pushforward of differentials respectively. (There is a similar definition of T_{n} when gcd(n, N) ≠ 1.) Using our interpretation of S_{2}(Γ_{0}(N)) as differentials on X_{0}(N) this gives an action of Hecke operators on S_{2}(Γ_{0}(N)). One can show that these induce the maps of Proposition 2.4.6 on q-expansions.

Example 3.1.3. There is a basis of S_{2}(39) so that

T_{2} = (\begin{matrix}1 & 1 & 0 \\ −2 & −3 & −2 \\ 0 & 0 & 1 \end{matrix}) and T_{5} = (\begin{matrix}−4 & −2 & −6 \\ 4 & 4 & 4 \\ 0 & 0 & 2 \end{matrix}) .

Notice that these matrices commute, and that 1 is an eigenvalue of T_{2}, and 2 is an eigenvalue of T_{5}.

The first homology group H_{1}(X_{0}(N), ℤ) is the group of closed 1-cycles modulo boundaries of 2 cycles (formal sums of images of 2-simplexes). Recall that topologically X_{0}(N) is a g-holed torus, where g is the genus of X_{0}(N). The group H_{1}(X_{0}(N), ℤ) is thus a free abelian group of rank 2g (see, e.g., [GH81, Ex. 19.30]), with two generators corresponding to each hole, as illustrated in the case N = 39 in Figure 3.1.1.

Homology is closely connected to modular forms, since the Hecke operators T_{n} also act on H_{1}(X_{0}(N), ℤ). The action is by pullback of homology classes by π_{2} followed by taking the image under π_{1}. Moreover, integration defines a pairing

⟨ , ⟩ : S_{2}(Γ_{0}(N)) × H_{1}(X_{0}(N), ℤ) → ℂ.  (3.1.1)

Explicitly, for a path x,

⟨f, x⟩ = 2πi ∫_{x} f(z)dz,

where the integral is locally a complex line integral along preimages of intervals of x in the upper half plane.

H_{1}(X_{0}(39), ℤ) ≅ ℤ × ℤ × ℤ × ℤ × ℤ × ℤ

Figure 3.1.1: The homology of X_{0}(39).

Theorem 3.1.4. The pairing (3.1.1) is nondegenerate and Hecke equivariant in the sense that for every Hecke operator T_{n}, we have ⟨fT_{n}, x⟩ = ⟨f, T_{n}x⟩.

As we will see, modular symbols allow us to make explicit the action of the Hecke operators on H_{1}(X_{0}(N), ℤ); the above pairing then translates this into a wealth of information about cusp forms.

3.2 Modular symbols

The modular symbols formalism provides a presentation of H_{1}(X_{0}(N), ℤ) in terms of paths between elements of ℙ^{1}(ℚ). Furthermore, a trick due to Manin gives an explicit finite list of generators and relations for the space of modular symbols.

The modular symbol defined by a pair α, β ∈ ℙ^{1}(ℚ) is denoted {α, β}. As illustrated in Figure 3.2.1, we view this modular symbol as the homology class, relative to the cusps, of a (geodesic) path from α to β in 𝔥^{∗}. The homology group relative to the cusps is a slight enlargement of the usual homology group, in that we allow paths with endpoints in the cusps instead of restricting to closed loops.

Note that modular symbols satisfy the following homology relations: if α, β, γ ∈ ℚ ∪ {∞}, then

{α, β} + {β, γ} + {γ, α} = 0.

Furthermore, the space of modular symbols is torsion free, so, e.g., {α, α} = 0 and {α, β} = −{β, α}.

Denote by 𝕄_{2} the free abelian group with basis the set of symbols {α, β} modulo the three-term homology relations above and modulo any torsion. There is a left action of GL_{2}(ℚ) on 𝕄_{2}, whereby a matrix g acts by

g{α, β} = {g(α), g(β)},

and g acts on α and β by a linear fractional transformation. The space 𝕄_{2}(Γ_{0}(N)) of modular symbols for Γ_{0}(N) is the quotient of 𝕄_{2} by the submodule generated by the infinitely many elements of the form x − g(x), for x in 𝕄_{2} and g in PSfrag replacements

∞ α β 0 ℚ

Figure 3.2.1: The modular symbols {α, β} and {0, ∞}.

Γ_{0}(N), and modulo any torsion. A modular symbol for Γ_{0}(N) is an element of this space. We frequently denote the equivalence class that defines a modular symbol by giving a representative element.

Example 3.2.1. Some modular symbols are 0 no matter what the level N is! For example, since γ = ( \begin{matrix}1 & 1 \\ 0 & 1 \end{matrix} ) ∈ Γ_{0}(N), we have

{∞, 0} = {γ(∞), γ(0)} = {∞, 1},

so

0 = {∞, 1} − {∞, 0} = {∞, 1} + {0, ∞} = {0, ∞} + {∞, 1} = {0, 1}.

There is a natural homomorphism

φ : 𝕄_{2}(Γ_{0}(N)) → H_{1}(X_{0}(N), {cusps}, ℤ)  (3.2.1)

that sends a formal linear combination of geodesic paths in the upper half plane to their image as paths on X_{0}(N). In [Man72] Manin proved that (3.2.1) is an isomorphism. He also identified the subspace of 𝕄_{2}(Γ_{0}(N)) that is sent isomorphically onto H_{1}(X_{0}(N), ℤ). This subspace is constructed as follows. Let 𝔹_{2}(Γ_{0}(N)) denote the free abelian group whose basis is the finite set C(Γ_{0}(N)) = Γ_{0}(N)\ℙ^{1}(ℚ) of cusps for Γ_{0}(N). The boundary map

δ : 𝕄_{2}(Γ_{0}(N)) → 𝔹_{2}(Γ_{0}(N))

sends {α, β} to {β} − {α}, where {β} denotes the basis element of 𝔹_{2}(Γ_{0}(N)) corresponding to β ∈ ℙ^{1}(ℚ). The kernel 𝕊_{2}(Γ_{0}(N)) of δ is the subspace of cuspidal modular symbols. An element of 𝕊_{2}(Γ_{0}(N)) can be thought of as a linear combination of paths in 𝔥^{∗} whose endpoints are cusps, and whose images in X_{0}(N) are a linear combination of loops.

Theorem 3.2.2 (Manin). The map φ given above induces a canonical isomorphism

𝕊_{2}(Γ_{0}(N)) ≅ H_{1}(X_{0}(N), ℤ).

Example 3.2.3. We illustrate modular symbols in the case when N = 11. Using SAGE we find that 𝕄_{2}(11) has basis {∞, 0}, {−1/8, 0}, {−1/9, 0}:

      sage: M = ModularSymbols(11, 2)
      sage: print [b.modular_symbol_rep() for b in M.basis()]
      [{Infinity,0}, {-1/8,0}, {-1/9,0}]

The integral homology H_{1}(X_{0}(11), ℤ) corresponds to the abelian subgroup generated by {−1/7, 0} and {−1/5, 0}.

3.2.1 Manin’s trick

In this section, we describe a trick of Manin that shows that the space of modular symbols can be computed.

The group Γ_{0}(N) has finite index in SL_{2}(ℤ) (see Exercise 1.6). Let r_{0}, r_{1}, …, r_{m} be distinct right coset representatives for Γ_{0}(N) in SL_{2}(ℤ), so that

SL_{2}(ℤ) = Γ_{0}(N)r_{0} ∪ Γ_{0}(N)r_{1} ∪ ⋯ ∪ Γ_{0}(N)r_{m},

where the union is disjoint. For example, when N is prime, a list of coset representatives is

(\begin{matrix}1 & 0 \\ 0 & 1 \end{matrix}) , (\begin{matrix}1 & 0 \\ 1 & 1 \end{matrix}) , (\begin{matrix}1 & 0 \\ 2 & 1 \end{matrix}) , (\begin{matrix}1 & 0 \\ 3 & 1 \end{matrix}) , …, (\begin{matrix}1 & 0 \\ N − 1 & 1 \end{matrix}) , (\begin{matrix}0 & −1 \\ 1 & 0 \end{matrix}) .

Let

ℙ^{1}(ℤ/Nℤ) = {(a : b) : a, b ∈ ℤ/Nℤ, gcd(a, b, N) = 1 }/ ∼

where (a : b) ∼ (a′ : b′) if there is u ∈ (ℤ/Nℤ)^{∗} such that a = ua′, b = ub′.

Proposition 3.2.4. There is a bijection between ℙ^{1}(ℤ/Nℤ) and the right cosets of Γ_{0}(N) in SL_{2}(ℤ), which sends a coset representative ( \begin{matrix}a & b \\ c & d \end{matrix} ) to the class of (c : d) in ℙ^{1}(ℤ/Nℤ).

Proof. See Exercise 3.1.

We now describe an observation of Manin (see [Man72, §1.5]) that is crucial to making 𝕄_{2}(Γ_{0}(N)) computable. It allows us to write any modular symbol {α, β} as a ℤ-linear combination of symbols of the form r_{i}{0, ∞}, where the r_{i} ∈ SL_{2}(ℤ) are coset representatives as above. In particular, the finitely many symbols r_{0}{0, ∞}, … r_{m}{0, ∞} generate 𝕄_{2}(Γ_{0}(N)).

Proposition 3.2.5 (Manin). Let N be a positive integer and r_{0}, …, r_{m} a set of right coset representatives for Γ_{0}(N) in SL_{2}(ℤ). Every {α, β} ∈ 𝕄_{2}(Γ_{0}(N)) is a ℤ-linear combination of r_{0}{0, ∞}, … r_{m}{0, ∞}.

We give two proofs of the proposition. The first is useful for actual computation (see [Cre97a, §2.1.6]); the second seems less useful for computation but is easy to understand conceptually (see [MTT86, §2]).

Continued Fractions Proof of Proposition 3.2.5. Because of the relation {α, β} = {0, β}−{0, α}, it suffices to consider modular symbols of the form {0, b/a}, where the rational number b/a is in lowest terms. Expand b/a as a continued fraction and consider the successive convergents in lowest terms:

\frac{b_{−2}}{a_{−2}} = \frac{0}{1}, \frac{b_{−1}}{a_{−1}} = \frac{1}{0}, \frac{b_{0}}{a_{0}} = \frac{b_{0}}{1} , …, \frac{b_{n−1}}{a_{n−1}} , \frac{b_{n}}{a_{n}} = \frac{b}{a}

where the first two are added formally. Then

b_{k}a_{k−1} − b_{k−1}a_{k} = (−1)^{k−1},

so that

g_{k} = (\begin{matrix}b_{k} & (−1)^{k−1}b_{k−1} \\ a_{k} & (−1)^{k−1}a_{k−1} \end{matrix}) ∈ SL_{2}(ℤ).

Hence

\{\frac{b_{k−1}}{a_{k−1}} , \frac{b_{k}}{a_{k}} \} = g_{k}\{0, ∞\} = r_{i}\{0, ∞\},

for some i, is of the required special form. Since

\{0, b/a\} = \{0, ∞\} + \{∞, b_{0}\} + \{\frac{b_{0}}{1} , \frac{b_{1}}{a_{1}} \} + ⋯ + \{\frac{b_{n−1}}{a_{n−1}} , \frac{b_{n}}{a_{n}} \} ,

this completes the proof.

Inductive Proof of Proposition 3.2.5. As in the first proof it suffices to prove the proposition for any symbol {0, b/a}, where b/a is in lowest terms. We will induct on a ∈ ℤ_{≥0}. If a = 0 then the symbol is {0, ∞}, which corresponds to the identity coset, so assume that a > 0. Find a′ ∈ ℤ such that

ba′ ≡ 1 (mod a),

and set b′ = (ba′ − 1)/a. Then the matrix

δ = (\begin{matrix}b & b′ \\ a & a′ \end{matrix})

is an element of SL_{2}(ℤ), so δ = γ · r_{j} for some right coset representative r_{j} and γ ∈ Γ_{0}(N). Then

\{0, b/a\} − \{0, b′/a′\} = \{b′/a′, b/a\} = (\begin{matrix}b & b′ \\ a & a′ \end{matrix}) · \{0, ∞\} = r_{j}\{0, ∞\}.

By induction {0, b′/a′} is a linear combination of symbols of the form r_{k}{0, ∞}, which completes the proof.

Example 3.2.6. Let N = 11, and consider the modular symbol {0, 4/7}. We have

\frac{4}{7} = 0 + \frac{1}{1 + \frac{1}{1+ \frac{1}{3}}} ,

so the partial convergents are

\frac{b_{−2}}{a_{−2}} = \frac{0}{1}, \frac{b_{−1}}{a_{−1}} = \frac{1}{0}, \frac{b_{0}}{a_{0}} = \frac{0}{1}, \frac{b_{1}}{a_{1}} = \frac{1}{1}, \frac{b_{2}}{a_{2}} = \frac{1}{2}, \frac{b_{3}}{a_{3}} = \frac{4}{7}.

Thus, noting as in Example 3.2.1 that {0, 1} = 0, we have

{0, 4/7} = {0, ∞} + {∞, 0} + {0, 1} + {1, 1/2} + {1/2, 4/7}
= (\begin{matrix}1 & −1 \\ 2 & −1 \end{matrix}) \{0, ∞\} + (\begin{matrix}4 & 1 \\ 7 & 2 \end{matrix}) \{0, ∞\}
= (\begin{matrix}1 & 0 \\ 9 & 1 \end{matrix}) \{0, ∞\} + (\begin{matrix}1 & 0 \\ 9 & 1 \end{matrix}) \{0, ∞\}
= 2 · [(\begin{matrix}1 & 0 \\ 9 & 1 \end{matrix}) \{0, ∞\}]

3.2.2 Manin symbols

As above, fix coset representatives r_{0}, …, r_{m} for Γ_{0}(N) in SL_{2}(ℤ). Consider formal symbols [r_{i}]′ for i = 0, …, m. Let [r_{i}] be the modular symbol r_{i}{0, ∞} = {r_{i}(0), r_{i}(∞)}. We equip the symbols [r_{0}]′, …, [r_{m}]′ with a right action of SL_{2}(ℤ), which is given by [r_{i}]′.g = [r_{j}]′, where Γ_{0}(N)r_{j} = Γ_{0}(N)r_{i}g. We extend the notation by writing [γ]′ = [Γ_{0}(N)γ]′ = [r_{i}]′, where γ ∈ Γ_{0}(N)r_{i}; then the action is simply [γ]′.g = [γg]′.

Theorem 1.1.2 implies that SL_{2}(ℤ) is generated by the two matrices σ = ( \begin{matrix}0 & −1 \\ 1 & 0 \end{matrix} ) and τ = ( \begin{matrix}1 & −1 \\ 1 & 0 \end{matrix} ). Note that σ = S from that theorem and τ = T S, so T = τσ ∈ ⟨σ, τ⟩.

The following theorem provides us with a finite presentation for the space of modular symbols.

Theorem 3.2.7 (Manin). Consider the quotient M of the free abelian group on Manin symbols [r_{0}]′, …, [r_{m}]′ modulo the subgroup generated by the elements (for all i):

[r_{i}]′ + [r_{i}]′σ  and  [r_{i}]′ + [r_{i}]′τ + [r_{i}]′τ^{2},

and modulo any torsion. Then there is an isomorphism Ψ : M ⟶^{∼} 𝕄_{2}(Γ_{0}(N)) given by [r_{i}]′ ↦ [r_{i}] = r_{i}{0, ∞}.

Proof. Proposition 3.2.5 implies that Ψ is surjective, assuming that Ψ is well defined.

We next verify that Ψ is well defined, i.e. that the listed two and three term relations hold in the image. To see that the the first relation holds, note that

[r_{i}] + [r_{i}]σ = {r_{i}(0), r_{i}(∞)} + {r_{i}σ(0), r_{i}σ(∞)}
= {r_{i}(0), r_{i}(∞)} + {r_{i}(∞), r_{i}(0)}
= 0.

For the second relation we have

[r_{i}] + [r_{i}]τ + [r_{i}]τ^{2} = {r_{i}(0), r_{i}(∞)} + {r_{i}τ(0), r_{i}τ(∞)} + {r_{i}τ^{2}(0), r_{i}τ^{2}(∞)}

= {r_{i}(0), r_{i}(∞)} + {r_{i}(∞), r_{i}(1)} + {r_{i}(1), r_{i}(0)} = 0

The proof that Ψ is injective requires more work; see [Man72, §1.7].

Example 3.2.8. By default SAGE computes modular symbols spaces over ℚ, i.e., 𝕄_{2}(Γ_{0}(N); ℚ) ≅ 𝕄_{2}(Γ_{0}(N)) ⊗ ℚ. SAGE represents (weight 2) Manin symbols as pairs (c, d). Here c, d are integers that satisfy 0 ≤ c, d < N; they define a point (c : d) ∈ ℙ^{1}(ℤ/Nℤ), hence a right coset of Γ_{0}(N) in SL_{2}(ℤ) (see Proposition 3.2.4).

Create 𝕄_{2}(Γ_{0}(N); ℚ) in SAGE by typing ModularSymbols(N, 2). We then use the SAGE command manin generators to enumerate a list of generators [r_{0}], …, [r_{n}] as in Theorem 3.2.7 for several spaces of modular symbols.

      sage: M = ModularSymbols(2,2)
      sage: M
      Full Modular Symbols space for Gamma_0(2) of weight 2 with
      sign 0 and dimension 1 over Rational Field
      sage: M.manin_generators()
      [(0,1), (1,0), (1,1)]
      sage: M = ModularSymbols(3,2)
      sage: M.manin_generators()
      [(0,1), (1,0), (1,1), (1,2)]
      sage: M = ModularSymbols(6,2)
      sage: M.manin_generators()
      [(0,1), (1,0), (1,1), (1,2), (1,3), (1,4), (1,5), (2,1),
       (2,3), (2,5), (3,1), (3,2)]

   Given x=(c,d), the command x.lift to sl2z(N) finds an element [a,b,c',d']

of SL_{2}(ℤ) whose lower two entries are congruent to (c, d) modulo N.

38 CHAPTER 3. MODULAR SYMBOLS OF WEIGHT TWO

sage: M = ModularSymbols(2,2)
sage: [x.lift_to_sl2z(2) for x in M.manin_generators()]
[[1, 0, 0, 1], [0, -1, 1, 0], [0, -1, 1, 1]]
sage: M = ModularSymbols(6,2)
sage: x = M.manin_generators()[9]
sage: x
(2,5)
sage: x.lift_to_sl2z(6)
[1, 2, 2, 5]

The manin basis command returns a list of indices into the Manin generator list such that the corresponding symbols form a basis for the quotient of the ℚ-vector space spanned by Manin symbols modulo the 2 and 3-term relations of Theorem 3.2.7.

sage: M = ModularSymbols(2,2)
sage: M.manin_basis()
[1]
sage: [M.manin_generators()[i] for i in M.manin_basis()]
[(1,0)]
sage: M = ModularSymbols(6,2)
sage: M.manin_basis()
[1, 10, 11]
sage: [M.manin_generators()[i] for i in M.manin_basis()]
[(1,0), (3,1), (3,2)]

Thus, e.g., every element of 𝕄_{2}(Γ_{0}(6)) is a ℚ-linear combination of the symbols [(1, 0)], [(3, 1)], and [(3, 2)]. We can write each of these as a modular symbol using the modular symbol rep function.

sage: M.basis()
((1,0), (3,1), (3,2))
sage: [x.modular_symbol_rep() for x in M.basis()]
[{Infinity,0}, {0,1/3}, {-1/2,-1/3}]

The manin gens to basis function returns a matrix whose rows express each Manin symbol generator in terms of the subset of Manin symbols that forms a basis (as returned by manin basis.

sage: M = ModularSymbols(2,2)
sage: M.manin_gens_to_basis()
[-1]
[ 1]

Since the basis is (1, 0) this means that in 𝕄_{2}(Γ_{0}(2); ℚ), we have [(0, 1)] = −[(1, 0)] and [(1, 1)] = 0. (Since no denominators are involved, we have in fact computed a presentation of 𝕄_{2}(Γ_{0}(2); ℤ).)

Convert a Manin symbol x = (c, d) to an element of a modular symbols space M, use M(xx):

      sage: M = ModularSymbols(2,2)
      sage: x = (1,0); M(x)
      (1,0)
      sage: M( (3,1) )    # entries are reduced modulo $2$ first
      0
      sage: M( (10,19) )
      -(1,0)

Next consider 𝕄_{2}(Γ_{0}(6); ℚ):

      sage: M = ModularSymbols(6,2)
      sage: M.manin_gens_to_basis()
      [-1  0  0]
      [ 1  0  0]
      [ 0  0  0]
      [ 0 -1  1]
      [ 0 -1  0]
      [ 0 -1  1]
      [ 0  0  0]
      [ 0  1 -1]
      [ 0  0 -1]
      [ 0  1 -1]
      [ 0  1  0]
      [ 0  0  1]

Recalling that our choice of basis for 𝕄_{2}(Γ_{0}(6); ℚ) is [(1, 0)], [(3, 1)], [(3, 2)]. Thus, e.g., first row of this matrix says that [(0, 1)] = −[(1, 0)], and the fourth row asserts that [(1, 2)] = −[(3, 1)] + [(3, 2)].

      sage: M = ModularSymbols(6,2)
      sage: M((0,1))
      -(1,0)
      sage: M((1,2))
      -(3,1) + (3,2)

3.2.3 Hecke operators on modular symbols

When p is a prime not dividing N, define

T_{p}\{α, β\} = (\begin{matrix}p & 0 \\ 0 & 1 \end{matrix}) \{α, β\} + ∑_{r mod p} (\begin{matrix}1 & r \\ 0 & p \end{matrix}) \{α, β\}.

As mentioned before, this definition is compatible with the integration pairing ⟨ , ⟩ of Section 3.1, in the sense that ⟨fT_{p}, x⟩ = ⟨f, T_{p}x⟩. When p | N, the definition is the same, except that the matrix ( \begin{matrix}p & 0 \\ 0 & 1 \end{matrix} ) is not included in the sum. (There is a similar definition of T_{n} for n composite; see Section 8.3.1 for the general definition.)

Example 3.2.9. For example, when N = 11 we have

T_{2}{0, 1/5} = {0, 2/5} + {0, 1/10} + {1/2, 3/5}
= −2{0, 1/5}.

In [Mer94], L. Merel gives a description of the action of T_{p} directly on Manin symbols [r_{i}] (see Section 8.3.2 for details). For example, when p = 2 and N is odd, we have

T_{2}([r_{i}]) = [r_{i}] (\begin{matrix}1 & 0 \\ 0 & 2 \end{matrix}) + [r_{i}] (\begin{matrix}2 & 0 \\ 0 & 1 \end{matrix}) + [r_{i}] (\begin{matrix}2 & 1 \\ 0 & 1 \end{matrix}) + [r_{i}] (\begin{matrix}1 & 0 \\ 1 & 2 \end{matrix}) . (3.2.2)

The SAGE command HeilbronnMerelList(n) gives a list of matrices [a, b, c, d] that compute T_{n} on Manin symbols. The command HeilbronnCremonaList(p), for p prime, gives a list of matrices that computes T_{p} on Manin symbols for p ∤ N.

      sage: HeilbronnMerelList(2)
      [[1, 0, 0, 2], [1, 0, 1, 2], [2, 0, 0, 1], [2, 1, 0, 1]]
      sage: HeilbronnMerelList(4)
      [[1, 0, 0, 4], [1, 0, 1, 4], [1, 0, 2, 4], [1, 0, 3, 4],
       [2, 0, 0, 2], [2, 1, 0, 2], [2, 0, 1, 2], [2, 1, 2, 3],
       [3, 2, 1, 2], [4, 0, 0, 1], [4, 1, 0, 1], [4, 2, 0, 1],
       [4, 3, 0, 1]]
      sage: HeilbronnMerelList(5)
      [[1, 0, 0, 5], [1, 0, 1, 5], [1, 0, 2, 5], [1, 0, 3, 5],
       [1, 0, 4, 5], [2, 1, 1, 3], [2, 1, 3, 4], [3, 1, 1, 2],
       [3, 2, 2, 3], [4, 3, 1, 2], [5, 0, 0, 1], [5, 1, 0, 1],
       [5, 2, 0, 1], [5, 3, 0, 1], [5, 4, 0, 1]]

Notice that Cremona’s list is shorter than Merel’s (see [Cre97a] for a derivation that Cremona’s list can be used to compute Hecke operators).

3.2. MODULAR SYMBOLS 41

sage: HeilbronnCremonaList(5)
[[1, 0, 0, 5], [5, 2, 0, 1], [2, 1, 1, 3], [1, 0, 3, 5],
 [5, 1, 0, 1], [1, 0, 1, 5], [5, 0, 0, 1], [5, -1, 0, 1],
 [-1, 0, 1, -5], [5, -2, 0, 1], [-2, 1, 1, -3], [1, 0, -3, 5]]
sage: len(HeilbronnCremonaList(97))
392
sage: len(HeilbronnMerelList(97))
1039

Example 3.2.10. Using SAGE we compute the matrix of T_{2} on 𝕄_{2}(Γ_{0}(2)):

sage: M = ModularSymbols(2,2)
sage: M.T(2).matrix()
[1]

We can do this more explicitly as follows, recalling that (1, 0) is a basis for 𝕄_{2}(Γ_{0}(2)) from Example 3.2.8 and using (3.2.2):

sage: M = ModularSymbols(2,2)
sage: M.basis()
((1,0),)
sage: M((1,0)) + M((2,1)) + M((1,0))
(1,0)

Note that we do not include (2,0) since 2 divides the level.

Example 3.2.11. We use SAGE to compute Hecke operators on 𝕄_{2}(Γ_{0}(6)):

sage: M = ModularSymbols(6, 2)
sage: M.T(2).matrix()
[ 2  1 -1]
[-1  0  1]
[-1 -1  2]
sage: M.T(3).matrix()
[3 2 0]
[0 1 0]
[2 2 1]
sage: M.T(5).matrix()
[6 0 0]
[0 6 0]
[0 0 6]
sage: M.T(97).matrix()
[98  0  0]
[ 0 98  0]
[ 0  0 98]

In fact for p ≥ 5 we have T_{p} = p + 1, since M_{2}(Γ_{0}(6)) is spanned by generalized 42 CHAPTER 3. MODULAR SYMBOLS OF WEIGHT TWO

Eisenstein series (see Chapter 5).

Example 3.2.12. We use SAGE to compute Hecke operators on 𝕄_{2}(Γ_{0}(39)):

sage: M = ModularSymbols(39, 2)
sage: T2 = M.T(2)
sage: T2.matrix()
[ 3  0 -1  0  0  1  1 -1  0]
[ 0  0  2  0 -1  1  0  1 -1]
[ 0  1  0 -1  1  1  0  1 -1]
[ 0  0  1  0  0  1  0  1 -1]
[ 0 -1  2  0  0  1  0  1 -1]
[ 0  0  1  1  0  1  1 -1  0]
[ 0  0  0 -1  0  1  1  2  0]
[ 0  0  0  1  0  0  2  0  1]
[ 0  0 -1  0  0  0  1  0  2]
sage: T2.charpoly()
x^9 - 7*x^8 + 4*x^7 + 68*x^6 - 142*x^5 - 78*x^4
                      + 460*x^3 - 468*x^2 + 189*x - 27
sage: factor(T2.charpoly())
(x - 3)^3 * (x - 1)^2 * (x^2 + 2*x - 1)^2

Notice that the Hecke operators commute, so their eigenspace structure is similar.

sage: T2 = M.T(2).matrix()
sage: T5 = M.T(5).matrix()
sage: T2*T5 - T5*T2 == 0
True
sage: T5.charpoly().factor()
(x - 6)^3 * (x - 2)^2 * (x^2 - 8)^2

The rational decomposition of T_{2} is a list of the kernels of (f^{e})(T_{2}), where f runs through the irreducible factors of the characteristic polynomial of T_{2} and f^{e} exactly divides this characteristic polynomial. Using SAGE we find them:

      sage: T2.decomposition()
      [(Vector space of degree 9 and dimension 3 over Rational Field
      Basis matrix:
      [ 1  0  0  0  0  0 -1 -1 -1]
      [ 0  1  4  0  1  0 -6 -2 -8]
      [ 0  0  0  0  0  1  2  1  1],
        False),
       (Vector space of degree 9 and dimension 2 over Rational Field
      Basis matrix:
      [ 0  1  0  0 -1  0  0  0  0]
      [ 0  0  0  0  0  1  0 -1  1],
        False),
       (Vector space of degree 9 and dimension 4 over Rational Field
      Basis matrix:
      [   0    1    0    0    1   -1    0   -1    1]
      [   0    0    1    0    0 -1/2    0 -1/2  1/2]
      [   0    0    0    1    0 -1/2    0 -1/2  1/2]
      [   0    0    0    0    0    0    1   -1    0],
        False)]

The space of modular symbols also decomposes under all Hecke operators (of index coprime to 39) as follows:

      sage: M.decomposition()
      [Dimension 3 subspace of a modular symbols space of level 39,
       Dimension 2 subspace of a modular symbols space of level 39,
       Dimension 4 subspace of a modular symbols space of level 39]

3.3 Computing the boundary map

In Section 3.2 we defined a map 𝕄_{2}(Γ_{0}(N)) → 𝔹_{2}(Γ_{0}(N)) whose kernel 𝕊_{2}(Γ_{0}(N)) is called the space of cuspidal modular symbols. This kernel will be important in computing cuspforms in Section 3.5 below.

To compute the boundary map on Manin symbols, note that [γ] = {γ(0), γ(∞)}, so if γ = ( \begin{matrix}a & b \\ c & d \end{matrix} ), then

δ([γ]) = {γ(∞)} − {γ(0)} = {a/c} − {b/d}.

Computing this boundary map would appear to first require an algorithm to compute the set C(Γ_{0}(N)) = Γ_{0}(N)\ℙ^{1}(ℚ) of cusps for Γ_{0}(N). In fact, there is a trick to compute the set of cusps in the course of running the algorithm. First, give an algorithm for deciding whether or not two elements of ℙ^{1}(ℚ) are equivalent modulo the action of Γ_{0}(N). Then simply construct C(Γ_{0}(N)) in the course of computing the boundary map, i.e., keep a list of cusps found so far, and whenever a new cusp class is discovered add it to the list. The following proposition, which is proved in [Cre97a, Prop. 2.2.3], explains how to determine whether two cusps are equivalent.

Proposition 3.3.1 (Cremona). Let (c_{i}, d_{i}), i = 1, 2 be pairs of integers with gcd(c_{i}, d_{i}) = 1, and possibly d_{i} = 0. There exists g ∈ Γ_{0}(N) such that g(c_{1}/d_{1}) = c_{2}/d_{2} in ℙ^{1}(ℚ) if and only if

s_{1}d_{2} ≡ s_{2}d_{1} (mod gcd(d_{1}d_{2}, N))

where s_{j} satisfies c_{j}s_{j} ≡ 1 (mod d_{j}).

In SAGE the command boundary map() computes the boundary map from 𝕄_{2}(Γ_{0}(N)) to 𝔹_{2}(Γ_{0}(N)), and the cuspidal submodule() command computes its kernel. For example, for level 2 the boundary map is given by the matrix [1 − 1], and its kernel is the 0 space.

      sage: M = ModularSymbols(2, 2)
      sage: M.boundary_map()
      Hecke module morphism boundary map defined by the matrix
      [ 1 -1]
      Domain: Full Modular Symbols space for Gamma_0(2) of weight 2 with sign ...
      Codomain: Space of Boundary Modular Symbols for Gamma0(2) of weight 2 and ...
      sage: M.cuspidal_submodule()
      Dimension 0 subspace of a modular symbols space of level 2

The smallest level for which the boundary map has nontrivial kernel, i.e., for which 𝕊_{2}(Γ_{0}(N)) ≠ 0 is N = 11.

      sage: M = ModularSymbols(11, 2)
      sage: M.boundary_map().matrix()
      [ 1 -1]
      [ 0  0]
      [ 0  0]
      sage: M.cuspidal_submodule()
      Dimension 2 subspace of a modular symbols space of level 11
      sage: S = M.cuspidal_submodule(); S
      Dimension 2 subspace of a modular symbols space of level 11
      sage: S.basis()
      ((1,8), (1,9))

The following illustrates that the Hecke operators preserve 𝕊_{2}(Γ_{0}(N)):

3.4. COMPUTING A BASIS FOR S_{2}(Γ_{0}(N)) 45

      sage: S.T(2).matrix()
      [-2  0]
      [ 0 -2]
      sage: S.T(3).matrix()
      [-1  0]
      [ 0 -1]
      sage: S.T(5).matrix()
      [1 0]
      [0 1]

A nontrivial fact (the Eichler-Shimura relation, etc.) is that for p prime the eigenvalue of each of these matrices is the same as p + 1 − #E(𝔽_{p}), where E is the elliptic curve X_{0}(11) given by the equation

y^{2} + y = x^{3} − x^{2} − 10x − 20.

      sage: E = EllipticCurve([0,-1,1,-10,-20])
      sage: 2 + 1 - E.Np(2)
      -2
      sage: 3 + 1 - E.Np(3)
      -1
      sage: 5 + 1 - E.Np(5)
      1
      sage: print [S.T(p).matrix()[0,0] - (p+1-E.Np(p)) for p in primes(100)]
      [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]

3.4 Computing a basis for S_{2}(Γ_{0}(N))

In this section we explain a method for using what we know how to compute using modular symbols to compute a basis for S_{2}(Γ_{0}(N)).

Let 𝕄_{2}(Γ_{0}(N); ℚ) and 𝕊_{2}(Γ_{0}(N); ℚ) denote modular symbols and cuspidal modular symbols over ℚ. Before we begin, we describe a simple but crucial fact about the relation between cusp forms and the Hecke algebra.

If f = ∑ b_{n}q^{n} ∈ ℂ[[q]] is a power series, let a_{n}(f) = b_{n} be the n coefficient of f. Notice that a_{n} is a linear map from ℂ[[q]] to itself.

As explained in [Lan95, §VII.3], the Hecke operators T_{n} acts on elements of M_{2}(Γ_{0}(N)) as follows:

T_{n} ( ∑_{m=0}^{∞} a_{m}q^{m}) = ( ∑_{1≤d | gcd(n,m)} ε(d) · d · a_{mn/d^{2}} ) q^{m},  (3.4.1)

where ε(d) = 1 if gcd(d, N) = 1 and ε(d) = 0 if gcd(d, N) ≠ 1.

Lemma 3.4.1. Suppose f is a modular form and n is a positive integer. Then

a_{1}(T_{n}(f)) = a_{n}(f).

Proof. The coefficient of q in (3.4.1) is ε(1) · 1 · a_{1·n/1^{2}} = a_{n}.

Let 𝕋′ denote the image of the Hecke algebra in End(S_{2}(Γ_{0}(N))), and let 𝕋′_{ℂ} = 𝕋′ ⊗ ℂ be the ℂ-span of the Hecke operators.

Proposition 3.4.2. There is a perfect bilinear pairing of complex vector spaces

S_{2}(Γ_{0}(N)) × 𝕋′_{ℂ} → ℂ

given by

⟨f, t⟩ = a_{1}(t(f)).

Proof. The pairing is bilinear since both t and a_{1} are linear. Suppose f ∈ S_{2}(Γ_{0}(N)) is such that ⟨f, t⟩ = 0 for all t ∈ 𝕋′_{ℂ}. Then in particular ⟨f, T_{n}⟩ = 0 for each positive integer n. But by Lemma 3.4.1 we have

a_{n}(f) = a_{1}(T_{n}(f)) = 0

for all n; thus f = 0.

Next suppose that t ∈ 𝕋′_{ℂ} is such that ⟨f, t⟩ = 0 for all f ∈ S_{2}(Γ_{0}(N)). Then a_{1}(t(f)) = 0 for all f. For any n, the image T_{n}(f) is also a cuspform, so a_{1}(t(T_{n}(f))) = 0 for all n and f. Finally 𝕋′ is commutative and Lemma 3.4.1 together imply that for all n and f,

0 = a_{1}(t(T_{n}(f))) = a_{1}(T_{n}(t(f))) = a_{n}(t(f)),

so t(f) = 0 for all f. Thus t is the 0 operator.

By Proposition 3.4.2 there is an isomorphism of vector spaces

Ψ : S_{2}(Γ_{0}(N)) ⟶^{≅} Hom(𝕋′, ℂ)

that sends f ∈ S_{2}(Γ_{0}(N)) to the homomorphism

t ↦ a_{1}(t(f)).

For any linear map φ : 𝕋′_{ℂ} → ℂ, let

f_{φ} = ∑_{n=1}^{∞} φ(T_{n})q^{n} ∈ ℂ[[q]].

By Lemma 3.4.1, we have

⟨f_{φ}, T_{n}⟩ = a_{1}(T_{n}(f_{φ})) = a_{n}(f_{φ}) = φ(T_{n}).

Thus f_{φ} must be the q-expansion of the modular form that corresponds to φ under the isomorphism Ψ. In paritcular, f_{φ} ∈ S_{2}(Γ_{0}(N)), and the cuspforms f_{φ}, as φ runs through a basis, form a basis for S_{2}(Γ_{0}(N)).

We can compute S_{2}(Γ_{0}(N)) by computing Hom(𝕋′, ℂ), where we compute 𝕋′ in any way we want, e.g., using a space that contains an isomorphic copy of S_{2}(Γ_{0}(N)).

Algorithm 3.4.3 (Basis of Cuspforms). Given a positive integers N and B, this algorithm computes a basis for S_{2}(Γ_{0}(N)) to precision O(q^{B}).

1. Compute the modular symbols space 𝕄_{2}(Γ_{0}(N); ℚ) via the presentation of Section 3.2.2.

2. Compute the subspace 𝕊_{2}(Γ_{0}(N); ℚ) of cuspidal modular symbols as in Section 3.3.

3. Let d = \frac{1}{2} · dim 𝕊_{2}(Γ_{0}(N); ℚ). This is the dimension of S_{2}(Γ_{0}(N)).

4. Use the Hecke operators T_{2}, T_{3}, etc., of Section 3.2.3 to find the unique subspace V of Hom(𝕄_{2}(Γ_{0}(N); ℚ), ℚ) that is isomorphic to 𝕊_{2}(Γ_{0}(N); ℚ) as a 𝕋-module. (The Hecke operators act via their transpose; find the subspace V of the dual with the same characteristic polynomials.)

5. Let [T_{n}] denote the matrix of T_{n} acting on some fixed basis of V. For a matrix A, let a_{ij}(A) denote the ij-th entry of A. For various integers i, j with 0 ≤ i, j ≤ d − 1, compute formal q-expansions

f_{ij}(q) = ∑_{n=1}^{B−1} a_{ij}([T_{n}])q^{n} + O(q^{B}) ∈ ℚ[[q]]

until we find enough to span a space of dimension d (or exhaust all of them, in which case B is too small). These f_{ij} then form a basis for S_{2}(Γ_{0}(N)).

3.4.1 Examples

In this section we use SAGE to demonstrate Algorithm 3.4.3 for computing S_{2}(Γ_{0}(N)) for various N.

Example 3.4.4. The smallest N with S_{2}(Γ_{0}(N)) ≠ 0 is N = 11.

 sage: M = ModularSymbols(11)
 sage: M.basis()
 ((1,0), (1,8), (1,9))
 sage: S = M.cuspidal_subspace()
 sage: S
 Dimension 2 subspace of a modular symbols space of level 11
 sage: S.basis()
 ((1,8), (1,9))
 sage: d = S.dimension() // 2; d
 1

The command dual free module computes the vector space V of Algorithm 3.4.3.

      sage: S.dual_free_module()
      Vector space of degree 3 and dimension 2 over Rational Field
      Basis matrix:
      [1 0 5]
      [0 1 0]

View each of the basis vectors (1, 0, 5) and (0, 1, 0) as defining a linear map (via dot product) 𝕊_{2}(Γ_{0}(11)) → ℚ, where we view elements of 𝕊_{2}(Γ_{0}(11)) as linear combinations of our fixed basis (1, 0), (1, 8), (1, 9) for 𝕄_{2}(Γ_{0}(11)).

The command dual hecke matrix computes the matrix of T_{n} on the above basis for V.

      sage: S.dual_hecke_matrix(1)
      [1 0]
      [0 1]
      sage: S.dual_hecke_matrix(2)
      [-2  0]
      [ 0 -2]
      sage: S.dual_hecke_matrix(3)
      [-1  0]
      [ 0 -1]

Thus

f_{0,0} = q − 2q^{2} − q^{3} + ⋯ ∈ S_{2}(Γ_{0}(11)).

Since dim S_{2}(Γ_{0}(11)) = 1, this form must be a basis.

Example 3.4.5. Next consider N = 23, where we have d = dim S_{2}(Γ_{0}(23)) = 2. The command q expansion cuspforms computes V and the matrices [T_{n}]|V and returns a function f such that f(i, j) is the q-expansion of f_{i,j} to some precision.

      sage: M = ModularSymbols(23)
      sage: S = M.cuspidal_subspace()
      sage: S
      Dimension 4 subspace of a modular symbols space of level 23
      sage: f = S.q_expansion_cuspforms(6)
      sage: f(0,0)
      q - 2/3*q^2 + 1/3*q^3 - 1/3*q^4 - 4/3*q^5 + O(q^6)
      sage: f(0,1)
      O(q^6)
      sage: f(1,0)
      -1/3*q^2 + 2/3*q^3 + 1/3*q^4 - 2/3*q^5 + O(q^6)

3.5. COMPUTING S_{2}(Γ_{0}(N)) USING EIGENVECTORS 49

Thus a basis for S_{2}(Γ_{0}(23)) is

f_{0,0} = q − \frac{2}{3}q^{2} + \frac{1}{3}q^{3} − \frac{1}{3}q^{4} − \frac{4}{3}q^{5} + ⋯
f_{1,0} = −\frac{1}{3}q^{2} + \frac{2}{3}q^{3} + \frac{1}{3}q^{4} − \frac{2}{3}q^{5} + ⋯

Or, in echelon form,

q − q^{3} − q^{4} + ⋯
q^{2} − 2q^{3} − q^{4} + 2q^{5} + ⋯

which we computed using

      sage: S.q_expansion_basis(6)
       [q - q^3 - q^4 + O(q^6),
          q^2 - 2*q^3 - q^4 + 2*q^5 + O(q^6)]

3.5 Computing S_{2}(Γ_{0}(N)) using eigenvectors

In this section we describe how to use modular symbols to construct a basis of S_{2}(Γ_{0}(N)) consisting of modular forms that are eigenvectors for every element of the ring 𝕋′ generated by the Hecke operator T_{p}, with p ∤ N. Such eigenvectors are called eigenforms.

Suppose M is a positive integer that divides N. As explained in [Lan95, VIII.1–2], for each divisor d of N/M there is a natural degeneracy map β_{M,d} : S_{2}(M) → S_{2}(Γ_{0}(N)) given by β_{M,d}(f(q)) = f(q^{d}). The new subspace of S_{2}(Γ_{0}(N)), denoted S_{2}(Γ_{0}(N))^{new}, is the complementary 𝕋-submodule of the 𝕋-module generated by the images of all maps β_{M,d}, with M and d as above. (It is a nontrivial fact that this complement is well defined; one possible proof uses the Petersson inner product.)

The theory of Atkin and Lehner [AL70] (see Section 6.1.1) asserts that, as a 𝕋′-module, S_{2}(Γ_{0}(N)) decomposes as follows:

S_{2}(Γ_{0}(N)) = ⨁_{M|N, d|N/M} β_{M,d}(S_{2}(M)^{new}).

To compute S_{2}(Γ_{0}(N)) it thus suffices to compute S_{2}(M)^{new} for each positive divisor M of N.

We now turn to the problem of computing S_{2}(Γ_{0}(N))^{new}. Atkin and Lehner [AL70] also proved that S_{2}(Γ_{0}(N))^{new} is spanned by eigenforms, each of which occurs with multiplicity one in S_{2}(Γ_{0}(N))^{new}. Moreover, if f ∈ S_{2}(Γ_{0}(N))^{new} is an eigenform then the coefficient of q in the q-expansion of f is nonzero, so it is possible to normalize f so that coefficient of q is 1. With f so normalized, if T_{p}(f) = a_{p}f, then the pth Fourier coefficient of f is a_{p}. If f = ∑_{n=1}^{∞} a_{n}q^{n} is a normalized eigenvector for all T_{p}, then the a_{n}, with n composite, are determined by the a_{p}, with p prime, by the following formulas: a_{nm} = a_{n}a_{m} when n and m are relatively prime, and a_{p^{r}} = a_{p^{r−1}}a_{p} − pa_{p^{r−2}} for p ∤ N prime. When p | N, a_{p^{r}} = a_{p}^{r}. We conclude that in order to compute S_{2}(Γ_{0}(N))^{new}, it suffices to compute all systems of eigenvalues {a_{2}, a_{3}, a_{5}, …} of the Hecke operators T_{2}, T_{3}, T_{5}, … acting on S_{2}(Γ_{0}(N))^{new}. Given a system of eigenvalues, the corresponding eigenform is f = ∑_{n=1}^{∞} a_{n}q^{n}, where the a_{n}, for n composite, are determined by the recurrence given above.

In light of the pairing ⟨ , ⟩ introduced in Section 3.1, computing the above systems of eigenvalues {a_{2}, a_{3}, a_{5}, …} amounts to computing the systems of eigenvalues of the Hecke operators T_{p} on the subspace V of 𝕊_{2}(Γ_{0}(N)) that corresponds to the new subspace of S_{2}(Γ_{0}(N)). For each proper divisor M of N and each divisor d of N/M, let ϕ_{M,d} : 𝕊_{2}(Γ_{0}(N)) → 𝕊_{2}(Γ_{0}(M)) be the map sending x to ( \begin{matrix}d & 0 \\ 0 & 1 \end{matrix} ) x. Then V is the intersection of the kernels of all maps ϕ_{M,d}.

The computation of the systems of eigenvalues of a collection of commuting diagonalizable endomorphisms involves standard linear algebra techniques, such as computation of characteristic polynomials and kernels of matrices. There are, however, several tricks that greatly speed up this process, some of which are described in Chapter 7.

Example 3.5.1. All forms in S_{2}(Γ_{0}(39)) are new. Up to Galois conjugacy, the eigenvalues of the Hecke operators T_{2}, T_{3}, T_{5}, and T_{7} on 𝕊_{2}(Γ_{0}(39)) are {1, −1, 2, −4} and {a, 1, −2a − 2, 2a + 2}, where a^{2} + 2a − 1 = 0. Each of these eigenvalues occur in 𝕊_{2}(Γ_{0}(39)) with multiplicity two; for example, the characteristic polynomial of T_{2} on 𝕊_{2}(Γ_{0}(39)) is (x − 1)^{2} · (x^{2} + 2x − 1)^{2}. Thus S_{2}(Γ_{0}(39)) is spanned by

f_{1} = q + q^{2} − q^{3} − q^{4} + 2q^{5} − q^{6} − 4q^{7} + ⋯,
f_{2} = q + aq^{2} + q^{3} + (−2a − 1)q^{4} + (−2a − 2)q^{5} + aq^{6} + (2a + 2)q^{7} + ⋯,

and the Galois conjugate of f_{2}.

3.5.1 Summary

To compute the q-expansion, to some precision, of each eigenforms in S_{2}(Γ_{0}(N)), we use the degeneracy maps so that we only have to solve the problem for S_{2}(Γ_{0}(N))^{new}. Here, using modular symbols, we compute all systems of eigenvalues {a_{2}, a_{3}, a_{5}, …}, then write down each of the corresponding eigenforms f = q + a_{2}q^{2} + a_{3}q^{3} + · · ·.

3.6 Exercises

3.1 Let p be a prime.

(a) List representative elements of ℙ^{1}(ℤ/3ℤ).

(b) What is the cardinality of ℙ^{1}(ℤ/pℤ) as a function of p?

(c) Prove that there is a bijection between the right cosets of Γ_{0}(p) in SL_{2}(ℤ) and the elements of ℙ^{1}(ℤ/pℤ). (As mentioned in this chapter this is also true for composite level; see [Cre97a, §2.2] for complete details.)

3.2 Use the inductive proof of Proposition 3.2.5 to write {0, 4/7} in terms of Manin symbols for Γ_{0}(7).

3.3 Show that the Hecke operator T_{2} acts as multiplication by 3 on the space 𝕄_{2}(Γ_{0}(3)) as follows:

(a) Write down right coset representatives for Γ_{0}(3) in SL_{2}(ℤ).

(b) List all 8 relations coming from 3.2.7.

(c) Find a single Manin symbols [r_{i}] so that the three other Manin symbols are a nonzero multiple of [r_{i}] modulo the relations found in the previous step.

(d) Use formula (3.2.2) to compute the image of your symbol [r_{i}] under T_{2}. You will obtain a sum of four symbols. Using the relations above, write this sum as a multiple of [r_{i}]. (The multiple must be 3 or you made a mistake.)

52 CHAPTER 3. MODULAR SYMBOLS OF WEIGHT TWO

Dirichlet Characters

In this chapter we develop a systematic theory for computing with Dirichlet characters, which are extremely important to computations with modular forms for (at least) two reasons:

• To compute the Eisenstein subspace E_{k}(Γ_{1}(N)) of M_{k}(Γ_{1}(N)) we explicitly write down Eisenstein series attached to pairs of Dirichlet characters (see Chapter 5).

• To compute S_{k}(Γ_{1}(N)), we instead compute a decomposition

M_{k}(Γ_{1}(N)) = ⨁ M_{k}(Γ_{1}(N), ε)

then compute each factor. Here the sum is over all Dirichlet characters ε modulo N.

Example 4.0.1. Expanding on the second point, the spaces M_{k}(Γ_{1}(N), ε) are frequently much easier to compute with than the full M_{k}(Γ_{1}(N)). As we will see, if ε = 1 is the trivial character, then M_{k}(Γ_{1}(N), 1) = M_{k}(Γ_{0}(N)), which has much smaller dimension than M_{k}(Γ_{1}(N)). For example, M_{2}(Γ_{1}(100)) has dimension 370, whereas M_{2}(Γ_{1}(100), 1) has dimension only 24, and M_{2}(Γ_{1}(389)) has dimension 6499, whereas M_{2}(Γ_{1}(389), 1) has dimension only 33.

      sage: dimension_modular_forms(Gamma1(100),2)
      370
      sage: dimension_modular_forms(Gamma0(100),2)
      24
      sage: dimension_modular_forms(Gamma1(389),2)
      6499
      sage: dimension_modular_forms(Gamma0(389),2)
      33

4.1 The Definition

Fix an integral domain R and a root ζ of unity in R.

Definition 4.1.1 (Dirichlet Character). A Dirichlet character modulo N over R is a map ε : ℤ → R such that there is a homomorphism f : (ℤ/Nℤ)^{∗} → ⟨ζ⟩ for which

ε(a) = \begin{cases}0 & if (a, N) > 1, \\ f (a mod N) & if (a, N) = 1. \end{cases}

We denote the group of such Dirichlet characters by D(N, R). Note that elements of D(N, R) are in bijection with homomorphisms (ℤ/Nℤ)^{∗} → ⟨ζ⟩.

One familiar example of a Dirichlet characters is the Legendre symbol (\frac{a}{p}) that appears in quadratic reciprocity theory. It is a Dirichlet character modulo p that takes the value 1 on integers that are congruent to a nonzero square modulo p, the value −1 on integers that are congruent to a nonzero non-square modulo p, and 0 on integers divisible by p.

4.2 Dirichlet Characters in SAGE

To create a Dirichlet character in SAGE you first create the group D(N, R) of Dirichlet characters, then obtain elements of that group. First we make D(11, ℚ):

      sage: G = DirichletGroup(11, RationalField())
      sage: G
      Group of Dirichlet characters of modulus 11 over Rational Field

A Dirichlet character prints as a matrix that gives the values of the character on canonical generators of (ℤ/Nℤ)^{∗} (as discussed below).

      sage: list(G)
      [[1], [-1]]
      sage: eps = G.0      # 0th generator for Dirichlet group
      sage: eps
      [-1]

The character ε takes the value −1 on the unit generator.

      sage: G.unit_gens()
      [2]
      sage: eps(2)
      -1
      sage: eps(3)
      1

It is 0 on any integer not coprime to 11:

4.2. DIRICHLET CHARACTERS IN SAGE 55

{sage: eps(22) \atop 0}

We can also create groups of Dirichlet characters taking values in other rings or fields. For example, we create the cyclotomic field ℚ(ζ_{4}).

sage: R = CyclotomicField(4)
sage: CyclotomicField(4)
Cyclotomic Field of order 4 and degree 2

Then we define G = D(15, ℚ(ζ_{4}).

sage: G = DirichletGroup(15, R)
sage: G
Group of Dirichlet characters of modulus 15 over Cyclotomic Field
of order 4 and degree 2

And we list each of its elements.

sage: list(G)
[[1, 1], [-1, 1], [1, zeta_4], [-1, zeta_4], [1, -1], [-1, -1],
 [1, -zeta_4], [-1, -zeta_4]]

Now lets evaluate the second generator of G on various integers:

sage: e = G.1
sage: e(4)
-1
sage: e(-1)
-1
sage: e(5)
0

Finally we make a list of all the values of e.

sage: [e(n) for n in range(15)]
[0, 1, zeta_4, 0, -1, 0, 0, zeta_4, -zeta_4,
    0, 0, 1, 0, -zeta_4, -1]

We can also compute with groups of Dirichlet characters with values in a finite field.

sage: G = DirichletGroup(15, GF(5))
sage: G
Group of Dirichlet characters of modulus 15 over Finite field of size 5

We list all the elements of G, again represented by matrices that give the images of each unit generator, as an element of 𝔽_{5}.

      sage: list(G)
        [[1, 1], [4, 1], [1, 2], [4, 2], [1, 4], [4, 4], [1, 3], [4, 3]]

We evaluate the second generator of G on several integers.

      sage: e = G.1
      sage: e(-1)
      4
      sage: e(2)
      2
      sage: e(5)
      0
      sage: print [e(n) for n in range(15)]
      [0, 1, 2, 0, 4, 0, 0, 2, 3, 0, 0, 1, 0, 3, 4]

4.3 Representing Dirichlet Characters

Lemma 4.3.1. The groups (ℤ/Nℤ)^{∗} and D(N, ℂ) are non-canonically isomorphic.

Proof. This follows from the more general fact that for any finite abelian group G, we have that G ≈ Hom(G, ℂ^{∗}). To prove that this latter non-canonical isomorphism exists, first reduce to the case when G is cyclic of order n, in which case the statement follows because ℂ^{∗} contains the nth root of unity e^{2πi/n}, so Hom(G, ℂ^{∗}) is also cyclic of order n.

Corollary 4.3.2. We have #D(N, R) | φ(N), with equality if and only if the order of our choice of ζ ∈ R is a multiple of the exponent of the group (ℤ/Nℤ)^{∗}.

Example 4.3.3. The group D(5, ℂ) has elements {[1], [i], [−1], [−i]}, so is cyclic of order φ(5) = 4. In contrast, the group D(5, ℚ) has only the two elements [1] and [−1] and order 2. In SAGE the command DirichletGroup(N) with no second argument create the group of Dirichlet characters with values in the cyclotomic field ℚ(ζ_{n}), where n is the exponent of the group (ℤ/Nℤ)^{∗}. Every element in D(N, ℂ) takes values in ℚ(ζ_{n}), so D(N, ℚ(ζ_{n})) ≅ D(N, ℂ).

      sage: list(DirichletGroup(5))
      [[1], [zeta_4], [-1], [-zeta_4]]
      sage: list(DirichletGroup(5, Q))
      [[1], [-1]]

Fix a positive integer N, and write N = ∏_{i=0}^{n} p_{i}^{e_{i}} where p_{0} < p_{1} < ⋯ < p_{n} are the prime divisors of N. By Exercise 4.1, each factor (ℤ/p_{i}^{e_{i}}ℤ)^{∗} is a cyclic group C_{i} = ⟨g_{i}⟩, except if p_{0} = 2 and e_{0} ≥ 3, in which case (ℤ/p_{0}^{e_{0}}ℤ)^{∗} is a product of the cyclic subgroup C_{0} = ⟨−1⟩ of order 2 with the cyclic subgroup C_{1} = ⟨5⟩. In all cases we have

(ℤ/Nℤ)^{∗} ≅ ∏_{0≤i≤n} C_{i} = ∏_{0≤i≤n}⟨g_{i}⟩.

For i such that p_{i} > 2, choose the generator g_{i} of C_{i} to be the element of {2, 3, …, p_{i}^{e_{i}} − 1} that is smallest and generates. Finally, use the Chinese Remainder Theorem (see [Coh93, §1.3.3])) to lift each g_{i} to an element in (ℤ/Nℤ)^{∗}, also denoted g_{i}, that is 1 modulo each p_{j}^{e_{j}} for j ≠ i.

Algorithm 4.3.4 (Minimal generator for (ℤ/p^{r}ℤ)^{∗}). Given an odd prime power p^{r}, this algorithm computes the minimal generator for (ℤ/p^{r}ℤ)^{∗}.

1. [Factor Group Order] Factor n = ϕ(p^{r}) = p^{r−1} ·2·((p−1)/2) as a product ∏ p_{i}^{e_{i}} of primes. This is equivalent in difficulty to factoring (p − 1)/2. (See, e.g., [Coh93, Ch.8, 10] for integer factorization algorithms.)

2. [Initialize] Set g = 2.

3. [Generator?] Using the binary powering algorithm (see [Coh93, §1.2]), compute g^{n/p_{i}} (mod p^{r}), for each prime divisor p_{i} of n. If any of these powers are 1, set g = g + 1 and go to Step 2. If no powers are 1, output g and terminate.

For the proof, see Exercise 4.2.

Example 4.3.5. A minimal generator for (ℤ/49ℤ)^{∗} is 3. We have n = φ(49) = 42 = 2 · 3 · 7, and

2^{n/2} ≡ 1,  2^{n/3} ≡ 18,  2^{n/7} ≡ 15 (mod 49).

so 2 is not a generator for (ℤ/49ℤ)^{∗}. (We see this just from 2^{n/2} ≡ 1 (mod 49).) However 3 is since

3^{n/2} ≡ 48,  3^{n/3} ≡ 30,  3^{n/7} ≡ 43 (mod 49).

Example 4.3.6. In this example we compute minimal generators for N = 25, 100, and 200:

1. The minimal generator for (ℤ/25ℤ)^{∗} is 2.

2. Minimal generators for (ℤ/100ℤ)^{∗}, lifted to numbers modulo 100, are g_{0} = 51 and g_{1} = 77. Notice that g_{0} ≡ −1 (mod 4) and g_{0} ≡ 1 (mod 25), and g_{1} ≡ 2 (mod 25) is the minimal generator modulo 25.

3. Minimal generators for (ℤ/200ℤ)^{∗}, lifted to numbers modulo 200, are g_{0} = 151, g_{1} = 101, and g_{2} = 177. Note that g_{0} ≡ −1 (mod 4), that g_{1} ≡ 5 (mod 8), and g_{2} ≡ 2 (mod 25).

The command Integers(N) creates ℤ/Nℤ.

      sage: R = Integers(49)
      sage: R
      Ring of integers modulo 49

The unit gens() command computes the unit generators as defined above.

      sage: R.unit_gens()
      [3]
      sage: Integers(25).unit_gens()
      [2]
      sage: Integers(100).unit_gens()
      [51, 77]
      sage: Integers(200).unit_gens()
      [151, 101, 177]
      sage: Integers(2005).unit_gens()
      [402, 1206]
      sage: Integers(200000000).unit_gens()
      [174218751, 51562501, 187109377]

Fix an element ζ of finite multiplicative order in a ring R, and let D(N, R) denote the group of Dirichlet characters modulo N over R, with image in ⟨ζ⟩ ∪ {0}. We specify an element ε ∈ D(N, R) by giving the list

[ε(g_{0}), ε(g_{1}), …, ε(g_{n})]  (4.3.1)

of images of the generators of (ℤ/Nℤ)^{∗}. (Note if N is even, the number of elements of the list (4.3.1) does not depend on whether or not 8 | N—there are always two factors corresponding to 2.) This representation completely determines ε and is convenient for arithmetic operations with Dirichlet characters. It is analogous to representing a linear transformation by a matrix. See Section 4.7 for a discussion of alternative ways to represent Dirichlet characters.

4.4 Evaluation of Dirichlet Characters

This section is about how to compute ε(n), where ε is a Dirichlet character and n is an integer. We begin with an example.

Example 4.4.1. If N = 200, then g_{0} = 151, g_{1} = 101 and g_{2} = 177, as we saw in Example 4.3.6. The exponent of (ℤ/200ℤ)^{∗} is 20, since that is the least common multiple of the exponents of 4 = #(ℤ/8ℤ)^{∗} and 20 = #(ℤ/25ℤ)^{∗}. The orders of g_{0}, g_{1} and g_{2} are 2, 2, and 20. Let ζ = ζ_{20} be a primitive 20th root of unity in ℂ. Then the following are generators for D(200, ℂ):

ε_{0} = [−1, 1, 1],  ε_{1} = [1, −1, 1],  ε_{2} = [1, 1, ζ],

and ε = [1, −1, ζ^{5}] is an example element of order 4. To evaluate ε(3), we write 3 in terms of g_{0}, g_{1}, and g_{2}. First, reducing 3 modulo 8, we see that 3 ≡ g_{0} · g_{1} (mod 8). Next reducing 3 modulo 25, and trying powers of g_{2} = 2, we find that e ≡ g_{2}^{7} (mod 25). Thus

ε(3) = ε(g_{0} · g_{1} · g_{2}^{7})
= ε(g_{0})ε(g_{1})ε(g_{2})^{7}
= 1 · (−1) · (ζ^{5})^{7}
= −ζ^{35} = −ζ^{15}.

We next illustrate the above computation of ε(3) in SAGE. First we make the group D(200, ℚ(ζ_{8})), and list its generators.

      sage: G = DirichletGroup(200)
      sage: G
      Group of Dirichlet characters of modulus 200 over Cyclotomic Field
            of order 20 and degree 8
      sage: G.exponent()
      20
      sage: G.gens()
      [[-1, 1, 1], [1, -1, 1], [1, 1, zeta_20]]

Next we construct ε.

      sage: K = G.base_ring()
      sage: zeta = K.gen()
      sage: eps = G([1,-1,zeta^5])
      sage: eps
      [1, -1, zeta_20^5]

Finally, we evaluate ε at 3.

      sage: eps(3)
      zeta_20^5
      sage: -zeta^15
      zeta_20^5

Example 4.4.1 illustrates that if ε is represented using a list as described above, evaluation of ε on an arbitrary integer is inefficient without extra information; it requires solving the discrete log problem in (ℤ/Nℤ)^{∗}. In fact, for a general character ε calculation of ε will probably be at least as hard as finding discrete logarithms no matter what representation we use (quadratic characters are easier—see Algorithm 4.4.5).

Algorithm 4.4.2 (Evaluate ε). Given a Dirichlet character ε modulo N, represented by a list [ε(g_{0}), ε(g_{1}), …, ε(g_{n})], and an integer a, this algorithm computes ε(a).

1. [GCD] Compute g = gcd(a, N). If g > 1, output 0 and terminate.

2. [Discrete Log] For each i, write a (mod p_{i}^{e_{i}}) as a power m_{i} of g_{i} using some algorithm for solving the discrete log problem (see below). (If p_{i} = 2, write a (mod p_{i}^{e_{i}}) as (−1)^{m_{0}} · 5^{m_{1}}.) This step is analogous to writing a vector in terms of a basis.

3. [Multiply] Compute and output ∏ ε(g_{i})^{m_{i}} as an element of R, and terminate. This is analogous to multiplying a matrix times a vector.

By Exercise 4.3 we have an isomorphism of groups

(1 + p^{n−1}(ℤ/p^{n}ℤ), ×) ≅ (ℤ/pℤ, +),

so one sees by induction that Step 2 is “about as difficult” as finding a discrete log in (ℤ/pℤ)^{∗}. There is an algorithm called “baby-step giant-step”, which solves the discrete log problem in (ℤ/pℤ)^{∗} in time O(\sqrt{ℓ}), where ℓ is the largest prime factor of p−1 = #(ℤ/pℤ)^{∗} (note that the discrete log problem in (ℤ/pℤ)^{∗} reduces to a series of discrete log problems in each prime order cyclic factor). This is unfortunately still exponential in the number of digits of ℓ.

Algorithm 4.4.3 (Baby-Step Giant Step Discrete Log). Given a prime p, a generator g of (ℤ/pℤ)^{∗}, and an element a ∈ (ℤ/pℤ)^{∗}, this algorithm finds an n such that g^{n} = a. (Note that this algorithm works in any cyclic group, not just (ℤ/pℤ)^{∗}.)

1. [Make Lists] Let m = ⌈\sqrt{p}⌉ be the ceiling of \sqrt{p}, and construct two lists

g, g^{m}, …, g^{(m−1)m}, g^{m^{2}} (giant steps)

and

ag, ag^{2}, …, ag^{m−1}, ag^{m} (baby steps).

2. [Find Match] Sort the two lists and find a match g^{im} = ag^{j}. Then a = g^{im−j}.

Proof. We prove that there will always be a match. Since we know that a = g^{k} for some k with 0 ≤ k ≤ p − 1 and any such k can be written in the form im − j for 0 ≤ i, j ≤ m − 1, we will find such a match.

Algorithm 4.4.3 uses nothing special about (ℤ/pℤ)^{∗}, so it works in a generic group. It is a theorem that there is no faster algorithm to find discrete logs in a “generic group” (see [Sho97, Nec94]). Fortunately there are much better subexponential algorithms for solving the discrete log problem in (ℤ/pℤ)^{∗}, which use the special structure of this group. They use the number field sieve (see e.g., [Gor93]), which is also the best known algorithm for factoring integers.

This class of algorithms has been very well studied by cryptographers; though sub-exponential, solving discrete log problems when p is large is still extremely difficult. For a more in-depth survey see [Gor04].

The specific applications of Dirichlet characters in this book involve computing modular forms, and for these applications N will be fairly small, e.g., N < 10^{6}. Also we will evaluate ε on a huge number of random elements, inside inner loops of algorithms. Thus for our purposes it will often be better to make a table of all values of ε, so that evaluation of ε is extremely fast. The following algorithm computes a table of all values of ε, and it does not require computing any discrete logs since we are computing all values.

Algorithm 4.4.4 (Values of ε). Given a Dirichlet character ε represented by the list of values of ε on the minimal generators g_{i} of (ℤ/Nℤ)^{∗}, this algorithm creates a list of all the values of ε.

1. [Initialize] For each minimal generator g_{i}, set a_{i} = 0. Let n = ∏ g_{i}^{a_{i}}, and set z = 1. Create a list v of N values, all initially set equal to 0. When this algorithm terminates the list v will have the property that

v [x (mod N)] = ε(x).

Notice that we index v starting at 0.

2. [Add Value to Table] Set v[n] = z.

3. [Finished?] If each a_{i} is one less than the order of g_{i}, output v and terminate.

4. [Increment] Set a_{0} = a_{0} + 1, n = n · g_{0} (mod N), and z = z · ε(g_{0}). If a_{0} ≥ ord(g_{0}), set a_{0} → 0, then set a_{1} = a_{1} + 1, n = n · g_{1} (mod N), and z = z · ε(g_{1}). If a_{1} ≥ ord(g_{1}), do what you just did with a_{0}, but with all subscripts replaced by 1. Etc. (Imagine a car odometer.) Go to Step 2.

Frequently people describe quadratic characters in terms of the Kronecker symbol. The following algorithm gives a way to go between the two representations.

Algorithm 4.4.5 (Kronecker Symbol). Given an integer N, this algorithm computes a representation of the Kronecker symbol (\frac{a}{N} ) as a Dirichlet character.

1. Compute the minimal generators g_{i} of (ℤ/Nℤ)^{∗} using Algorithm 4.3.4.

2. Compute (\frac{g_{i}}{N} ) for each g_{i} using one of the algorithms of [Coh93, §1.1.4].

Remark 4.4.6. The algorithms in [Coh93, §1.1.4] for computing the Kronecker symbol run in time quadratic in the number of digits of the input, so they do not require computing discrete logarithms. (They use, e.g., that (\frac{a}{p}) ≡ a^{(p−1)/2} (mod p), when p is an odd prime.) If N is very large and we are only interested in evaluating ε(a) = (\frac{a}{N} ) for a few a, then viewing ε as a Dirichlet character in the sense of this chapter leads to a less efficient way to compute with ε. The algorithmic discussion of characters in this chapter is most useful for working with the full group of characters, and characters that cannot be expressed in terms of Kronecker characters.

Example 4.4.7. We compute the Dirichlet character associated to the Kronecker symbol (\frac{a}{200}). We find that (\frac{g_{i}}{200}), for i = 0, 1, 2, where the g_{i} are as in Example 4.4.1:

      sage: kronecker(151,200)
      1
      sage: kronecker(101,200)
      -1
      sage: kronecker(177,200)
      1

Thus the corresponding character is defined by [1, −1, 1].

Remark 4.4.8 (Elkies). Jacobi reciprocity must be used to efficiently compute the Jacobi symbol (\frac{m}{n}). It’s faster than computing a^{(p−1)/2} when p is prime, but more significantly it makes it possible to compute Jacobi symbols (\frac{m}{n}) for all m, n without knowing the factorization of n—which of course would be a computation much longer than quadratic.

Example 4.4.9. We compute the character associated to (\frac{a}{420}). We have 420 = 4 · 3 · 5 · 7, and minimal generators are

g_{0} = 211, g_{1} = 1, g_{2} = 281, g_{3} = 337, g_{4} = 241.

We have g_{0} ≡ −1 (mod 4), g_{2} ≡ 2 (mod 3), g_{3} ≡ 2 (mod 5) and g_{4} ≡ 3 (mod 7). Using PARI again we find (\frac{g_{0}}{420}) = (\frac{g_{1}}{420}) = 1 and (\frac{g_{2}}{420}) = (\frac{g_{3}}{420}) = (\frac{g_{4}}{420}) = −1, so the corresponding character is [1, 1, −1, −1, −1].

4.5 Conductors of Dirichlet Characters

The following algorithm for computing the order of ε reduces the problem to computing the orders of powers of ζ in R.

Algorithm 4.5.1 (Order of Character). This algorithm computes the order of a Dirichlet character ε ∈ D(N, R).

1. Compute the order r_{i} of each ε(g_{i}), for each minimal generator g_{i} of (ℤ/Nℤ)^{∗}. Since the order of ε(g_{i}) is divisor of n = #(ℤ/p_{i}^{e_{i}}ℤ)^{∗}, we can compute its order by factoring n and considering the divisors of n.

2. Compute and output the least commmon multiple of the integers r_{i}.

Remark 4.5.2. Computing the order of ε(g_{i}) ∈ R is potentially difficult and tedious. Using a different (simultaneous) representation of Dirichlet characters avoids having to compute the order of elements of R. See Section 4.7.

The next algorithm factors ε as a product of “local” characters, one for each prime divisor of N. It is useful for other algorithms, and also for explicit computations with the Hijikita trace formula (see [Hij74]). This factorization is easy to compute because of how we represent ε.

Algorithm 4.5.3 (Factorization of Character). Given a Dirichlet character ε ∈ D(N, R), with N = ∏ p_{i}^{e_{i}}, this algorithm finds Dirichlet characters ε_{i} modulo p_{i}^{e_{i}}, such that for all a ∈ (ℤ/Nℤ)^{∗}, we have ε(a) = ∏ ε_{i}(a(mod p_{i}^{e_{i}})). If 2 | N, the steps are as follows:

1. Let g_{i} be the minimal generators of (ℤ/Nℤ)^{∗}, so ε is given by a list

[ε(g_{0}), …, ε(g_{n})].

2. For i = 2, …, n, let ε_{i} be the element of D(p_{i}^{e_{i}}, R) defined by the singleton list [ε(g_{i})].

3. Let ε_{1} be the element of D(2^{e_{1}}, R) defined by the list [ε(g_{0}), ε(g_{1})] of length 2. Output the ε_{i} and terminate.

If 2 ∤ N, then omit Step 3, and include all i in Step 2.

The factorization of Algorithm 4.5.3 is unique since each ε_{i} is determined by the image of the canonical map (ℤ/p_{i}^{e_{i}}ℤ)^{∗} in (ℤ/Nℤ)^{∗}, which sends a (mod p_{i}^{e_{i}}) to the element of (ℤ/Nℤ)^{∗} that is a (mod p_{i}^{e_{i}}) and 1 (mod p_{j}^{e_{j}}) for j ≠ i.

Example 4.5.4. If ε = [1, −1, ζ^{5}] ∈ D(200, ℂ), then ε_{1} = [1, −1] ∈ D(8, ℂ) and ε_{2} = [ζ^{5}] ∈ D(25, ℂ).

Definition 4.5.5 (Conductor). The conductor of a Dirichlet character ε ∈ D(N, R) is the smallest positive divisor c | N such that there is a character ε′ ∈ D(c, R) for which ε(a) = ε′(a) for all a ∈ ℤ with (a, N) = 1. A Dirichlet character is primitive if its modulus equals its conductor. The character ε′ associated to ε with modulus equal to the conductor of ε is called the primitive character associated to ε.

We will be interested in conductors later, when computing new subspaces of spaces of modular forms with character. Also certain formulas for special values of L functions are only valid for primitive characters.

Algorithm 4.5.6 (Conductor). This algorithm computes the conductor of a Dirichlet character ε ∈ D(N, R).

1. [Factor Character] Using Algorithm 4.5.3, find characters ε_{i} whose product is ε.

2. [Compute Orders] Using Algorithm 4.5.1, compute the orders r_{i} of each ε_{i}.

3. [Conductors of Factors] For each i, either set c_{i} → 1 if ε_{i} is the trivial character (i.e., of order 1), or set c_{i} = p_{i}^{ord_{p_{i}} (r_{i})+1}, where ord_{p}(n) is the largest power of p that divides n.

4. [Adjust at 2?] If p_{1} = 2 and ε_{1}(5) ≠ 1, set c_{1} = 2c_{1}.

5. [Finished] Output c = ∏ c_{i} and terminate.

Proof. Let ε_{i} be the local factors of ε, as in Step 1. We first show that the product of the conductors f_{i} of the ε_{i} is the conductor f of ε. Since ε_{i} factors through (ℤ/f_{i}ℤ)^{∗}, the product ε of the ε_{i} factors through (ℤ/ ∏ f_{i}ℤ)^{∗}, so the conductor of ε divides ∏ f_{i}. Conversely, if ord_{p_{i}}(f) < ord_{p_{i}}(f_{i}) for some i, then we could factor ε as a product of local (prime power) characters differently, which contradicts that this factorization is unique.

It remains to prove that if ε is a nontrivial character modulo p^{n}, where p is a prime, and r is the order of ε, then the conductor of ε is p^{ord_{p}(r)+1}, except possibly if 8 | p^{n}. Since the order and conductor of ε and of the associated primitive character ε′ are the same, we may assume ε is primitive, i.e., that p^{n} is the conductor of ε; note that that n > 0, since ε is nontrivial.

First suppose p is odd. Then the abelian group D(p^{n}, R) splits as a direct sum D(p, R) ⊕ D(p^{n}, R)′, where D(p^{n}, R)′ is the p-power torsion subgroup of D(p^{n}, R). Also ε has order u · p^{m}, where u, which is coprime to p, is the order of the image of ε in D(p, R) and p^{m} is the order of the image in D(p^{n}, R)′. If m = 0, then the order of ε is coprime to p, so ε is in D(p, R), which means that n = 1, so n = m + 1, as required. If m > 0, then ζ ∈ R must have order divisible by p, so R has characteristic not equal to p. The conductor of ε does not change if we adjoin roots of unity to R, so in light of Lemma 4.3.1 we may assume that D(N, R) ≈ (ℤ/Nℤ)^{∗}. It follows that for each n′ ≤ n, the p-power subgroup D(p^{n′}, R)′ of D(p^{n′}, R) is the p^{n′−1}-torsion subgroup of D(p^{n}, R)′. Thus m = n − 1, since D(p^{n}, R)′ is by assumption the smallest such group that contains the projection of ε. This proves the formula of Step 3. We leave the argument when p = 2 as an exercise (see Exercise 4.4).

Example 4.5.7. If ε = [1, −1, ζ^{5}] ∈ D(200, ℂ), then as we saw in Example 4.5.4, ε is the product of ε_{1} = [1, −1] and ε_{2} = [ζ^{5}]. Because ε_{1}(5) = −1, the conductor of ε_{1} is 8. The order of ε_{2} is 4 (since ζ is a 20th root of unity), so the conductor of ε_{2} is 5. Thus the conductor of ε is 40 = 8 · 5.

4.6 Restriction, Extension, and Galois Orbits

The following two algorithms restrict and extend characters to a compatible modulus. Using them it is easy to define multiplication of two characters ε ∈ D(N, R) and ε′ ∈ D(N′, R′), as long as R and R′ are subrings of a common ring. To carry out the multiplication, just extend bother characters to characters modulo lcm(N, N′), then multiply.

Algorithm 4.6.1 (Restriction of Character). Given a Dirichlet character ε ∈ D(N, R) and a divisor N′ of N that is a multiple of the conductor of ε, this algorithm finds a characters ε′ ∈ D(N′, R), such that ε′(a) = ε(a), for all a ∈ ℤ with (a, N) = 1.

1. [Conductor] Compute the conductor of ε using Algorithm 4.5.6, and verify that indeed N′ is divisible by the conductor and divides N.

2. [Minimal Generators] Compute the minimal generators g_{i} for (ℤ/N′ℤ)^{∗}.

3. [Values of Restriction] For each i, compute ε′(g_{i}) as follows. Find a multiple aN′ of N′ such that (g_{i} + aN′, N) = 1; then ε′(g_{i}) = ε(g_{i} + aN′).

4. [Output Character] Output the Dirichlet character modulo N′ defined by [ε′(g_{0}), …, ε′(g_{n})].

Proof. The only part that is not clear is that in Step 3 there is an a such that (g_{i} + aN′, N) = 1. If we write N = N_{1} · N_{2}, with (N_{1}, N_{2}) = 1, and N_{1} divisible by all primes that divide N′, then (g_{i}, N_{1}) = 1 since (g_{i}, N′) = 1. By the Chinese Remainder Theorem, there is an x ∈ ℤ such that x ≡ g_{i} (mod N_{1}) and x ≡ 1 (mod N_{2}). Then x = g_{i} + bN_{1} = g_{i} + (bN_{1}/N′) · N′ and (x, N) = 1, which completes the proof.

Algorithm 4.6.2 (Extension of Character). Given a Dirichlet character ε ∈ D(N, R) and a multiple N′ of N, this algorithm finds a characters ε′ ∈ D(N′, R), such that ε′(a) = ε(a), for all a ∈ ℤ with (a, N′) = 1.

1. [Minimal Generators] Compute the minimal generators g_{i} for (ℤ/N′ℤ)^{∗}.

2. [Evaluate] Compute ε(g_{i}) for each i. Since (g_{i}, N′) = 1, we also have (g_{i}, N) = 1.

3. [Output Character] Output the character defined by [ε(g_{0}), …, ε(g_{n})].

We finish with an algorithm that computes the Galois orbit of an element in D(N, R). This can be used to divide D(N, R) up into Galois orbits, which is useful for modular forms computations, because, e.g., the spaces M_{k}(Γ_{1}(N))(ε) and M_{k}(Γ_{1}(N))(ε′) are canonically isomorphic if ε and ε′ are conjugate.

Algorithm 4.6.3 (Galois Orbit). Given a Dirichlet character ε ∈ D(N, R), this algorithm computes the orbit of ε under the action of G = Gal(\overline{F} /F), where F is the prime subfield of Frac(R), so F = 𝔽_{p} or ℚ.

1. [Order of ζ] Let n be the order of the chosen root ζ ∈ R.

2. [Nontrivial Automorphisms] If char(R) = 0, let

A = {a : 2 ≤ a < n and (a, n) = 1}.

If char(R) = p > 0, compute the multiplicative order r of p modulo n, and let

A = {p^{m} : 1 ≤ m < r}.

3. [Compute Orbit] Compute and output the set of unique elements ε^{a} for each a ∈ A (there could be repeats, so we output unique elements only).

Proof. We prove that the nontrivial automorphisms of ⟨ζ⟩ in characteristic p are as in Step 2. It is well-known that every automorphism in characteristic p on ζ ∈ \overline{𝔽}_{p} is of the form x ↦ x^{p^{s}}, for some s. The images of ζ under such automorphisms are

ζ, ζ^{p}, ζ^{p^{2}}, ….

Suppose r > 0 is minimal such that ζ = ζ^{p^{r}}. Then the orbit of ζ is ζ, …, ζ^{p^{r−1}}. Also p^{r} ≡ 1 (mod n), where n is the multiplicative order of ζ, so r is the multiplicative order of p modulo n, which completes the proof.

Example 4.6.4. The Galois orbits of characters in D(20, ℂ^{∗}) are as follows:

G_{0} = {[1, 1, 1]},
G_{1} = {[−1, 1, 1]},
G_{2} = {[1, 1, ζ_{4}], [1, 1, −ζ_{4}]}
G_{3} = {[−1, 1, ζ_{4}], [−1, 1, −ζ_{4}]}
G_{4} = {[1, 1, −1]},
G_{5} = {[−1, 1, −1]}

The conductors of the characters in orbit G_{0} are 1, in order G_{1} are 4, in orbit G_{2} they are 5, in G_{3} they are 20, in G_{4} the conductor is 5, and in G_{5} the conductor is 20. (You should verify this.)

4.7 Alternative Representations of Characters

Let N be a positive integer and R an integral domain, with fixed root of unity ζ order n, and let D(N, R) = D(N, R, ζ). As in the rest of this chapter, write N = ∏ p_{i}^{e_{i}}, and let C_{i} = ⟨g_{i}⟩ be the corresponding cyclic factors of (ℤ/Nℤ)^{∗}. In this section we discuss other ways to represent elements ε ∈ D(N, R). Each representation has advantages and disadvantages, and no single representation is best. It emerged while writing this chapter that simultaneously using more than one representation of elements of D(N, R) would be best. It is easy to convert between them, and some algorithms are much easier using one representation, than when using another. In this section we present two other representations, each which has advantages and disadvantages. But, we emphasize that there is frequently no reason to restrict to only one representation!

We could represent ε by giving a list [b_{0}, …, b_{n}], where each b_{i} ∈ ℤ/nℤ and ε(g_{i}) = ζ^{b_{i}}. Then arithmetic in D(N, R) is arithmetic in (ℤ/nℤ)^{n+1}, which is very efficient. A drawback to this approach is that it is easy to accidently consider sequences that do not actually correspond to elements of D(N, R), though it is not really any easier to do this than with the representation we use elsewhere in this chapter. Also the choice of ζ is less clear, which can cause confusion. Finally, the orders of the local factors is more opaque, e.g., compare [−1, ζ_{40}] with [20, 1]. Overall this representation is not too bad, and is more like representing a linear transformation by a matrix. It has the advantage over the representation discussed earlier in this chapter that arithmetic in D(N, R) is very efficient, and doesn’t require any operations in the ring R; such operations could be quite slow, e.g., if R were a large cyclotomic field.

Another way to represent ε would be to give a list [b_{0}, …, b_{n}] of integers, but this time with b_{i} ∈ ℤ/ gcd(s_{i}, n)ℤ, where s_{i} is the order of g_{i}. Then

ε(g_{i}) = ζ^{b_{i}·n/(gcd(s_{i},n))},

which is already complicated enough to ring warning bells. With this representation we set up an identification

D(N, R) ≅ ⨁_{i} ℤ/ gcd(s_{i}, n)ℤ,

and arithmetic is efficient. This approach is seductive because every sequence of integers determines a character, and the sizes of the integers in the sequence nicely indicate the local orders of the character. However, giving analogues of many of the algorithms discussed in this chapter that operate on characters represented this way is tricky. For example, the representation depends very much on the order of ζ, so it is difficult to correctly compute natural maps D(N, R) → D(N, S), for R ⊂ S rings, whereas for the representation elsewhere in this chapter such maps are trivial to compute. This was the representation the author (Stein) implemented in MAGMA.

The PARI documentation says the following (where we have preserved the incorrect typesetting):

“A character on the Abelian group ⊕(ℤ/N_{i}ℤ)g_{i} is given by a row vector χ = [a_{1}, …, a_{n}] such that χ(∏ g_{i}^{n_{i}}) = exp(2iπ ∑ a_{i}n_{i}/N_{i}).”

This means that the abelian group has independent generators g_{i} of order N_{i}. This definition says that, e.g., the value of the character on g_{1} is

χ(g_{1}) = (e^{2πi/N_{1}})^{a_{1}}.

Thus the integers a_{i} are integers modulo N_{i}, and this representation is basically the same as the one we described in the previous paragraph (and which the author does not like).

4.8 Exercises

4.1 This exercise is about the structure of the units of ℤ/p^{n}ℤ.

(a) If p is odd and n is a positive integer, prove that (ℤ/p^{n}ℤ)^{∗} is cyclic.

(b) If n ≥ 3 prove that (ℤ/2^{n}ℤ)^{∗} is a direct sum of the cylclic subgroups ⟨−1⟩ and ⟨5⟩, of orders 2 and 2^{n−2}, respectively.

4.2 Prove that Algorithm 4.3.4 works, i.e., that if g ∈ (ℤ/p^{r}ℤ)^{∗} and g^{n/p_{i}} ≠ 1 for all p_{i} | n = φ(n), then g is a generator of (ℤ/p^{r}ℤ)^{∗}.

4.3 Let p be an odd prime and n ≥ 2 an integer, and prove that

(1 + p^{n−1}(ℤ/p^{n}ℤ), ×) ≅ (ℤ/pℤ, +).

Use this to show that solving the discrete log problem in (ℤ/p^{n}ℤ)^{∗} is “not much harder” than solving the discrete log problem in (ℤ/pℤ)^{∗}.

4.4 Suppose ε is a nontrivial Dirichlet character modulo 2^{n} of order r over the complex numbers ℂ. Prove that the conductor of ε is

c = \begin{cases}2^{ord_{2}(r)+1} & if ε(5) = 1 \\ 2^{ord_{2}(r)+2} & if ε(5) ≠ 1. \end{cases}

4.5 (a) Find an irreducible quadratic polynomial f over 𝔽_{5}.

(b) Then 𝔽_{25} = 𝔽_{5}[x]/(f). Find an element with multiplicative order 5 in 𝔽_{25}.

(c) Make a list of all Dirichlet characters in D(25, 𝔽_{25}, ζ).

(d) Divide these characters up into orbits for the action of Gal(\overline{𝔽}_{5}/𝔽_{5}).

Eisenstein Series

We introduce generalized Bernoulli numbers attached to Dirichlet characters, and give an algorithm to enumerate the Eisenstein series in M_{k}(N, ε). We will wait until Chapter 8 for an algorithm to compute all cusp forms in M_{k}(N, ε).

5.1 Generalized Bernoulli Numbers

Suppose ε is a Dirichlet character modulo N over ℂ.

Definition 5.1.1 (Generalized Bernoulli Number). Define the generalized Bernoulli numbers B_{k,ε} attached to ε by the following identity of infinite series:

∑_{a=1}^{N−1} \frac{ε(a) · x · e^{ax}}{e^{Nx} − 1} = ∑_{k=0}^{∞} B_{k,ε} · \frac{x^{k}}{k!} .

If ε is the trivial character of modulus 1 and B_{k} are as in Section 2.1, then B_{k,ε} = B_{k}, except when k = 1, in which case B_{1,ε} = −B_{1} = 1/2 (see Exercise 5.5).

Let ℚ(ε) denote the field generated by the values of the character ε, so ℚ(ε) is the cyclotomic extension ℚ(ζ_{n}), where n is the order of ε.

Algorithm 5.1.2 (Bernoulli Numbers). Given an integer k ≥ 0 and any Dirichlet character ε with modulus N, this algorithm computes the generalized Bernoulli numbers B_{j,ε}, for j ≤ k.

1. Compute g = x/(e^{Nx} − 1) ∈ ℚ[[x]] to precision O(x^{k+1}) by computing e^{Nx}−1 = ∑_{n≥1} N^{n}x^{n}/n! to precision O(x^{k+2}), and computing the inverse x/(e^{Nx} − 1). For completeness, note that if f = a_{0} + a_{1}x + a_{2}x^{2} + ⋯, then we have the following recursive formula for the coefficients b_{n} of the expansion of 1/f:

b_{n} = −\frac{b_{0}}{a_{0}} · (b_{n−1}a_{1} + b_{n−2}a_{2} + ⋯ + b_{0}a_{n}).

2. For each a = 1, …, N, compute f_{a} = g·e^{ax} ∈ ℚ[[x]], to precision O(x^{k+1}). This requires computing e^{ax} = ∑_{n≥0} a^{n}x^{n}/n! to precision O(x^{k+1}). (One can omit computation of e^{Nx} if N > 1.)

3. Then for j ≤ k, we have

B_{j,ε} = j! · ∑_{a=1}^{N} ε(a) · c_{j}(f_{a}),

where c_{j}(f_{a}) is the coefficient of x^{j} in f_{a}.

Note that in Steps 1 and 2 we compute the power series doing arithmetic only in ℚ[[x]], not in ℚ(ε)[[x]], which could be much less efficient if ε has large order.

Example 5.1.3. Let ε be the nontrivial character with modulus 4. Thus ε has order 2 and takes values in ℚ. Then the Bernoulli numbers B_{k,ε} for k even are all 0 and for k odd they are

B_{1,ε} = −1/2
B_{3,ε} = 3/2
B_{5,ε} = −25/2
B_{7,ε} = 427/2
B_{9,ε} = −12465/2
B_{11,ε} = 555731/2
B_{13,ε} = −35135945/2
B_{15,ε} = 2990414715/2
B_{17,ε} = −329655706465/2
B_{19,ε} = 45692713833379/2.

These Bernoulli numbers can be divisible by large primes. For example, B_{17,ε} = 5 · 17^{2} · 228135437/2.

Example 5.1.4. This examples illustrates that the generalized Bernoulli numbers need not be rational numbers. Suppose ε is the mod 5 character such that ε(2) = i = \sqrt{−1}. Then B_{k,ε} = 0 for k even and

B_{1,ε} = \frac{−i − 3}{5}
B_{3,ε} = \frac{6i + 12}{5}
B_{5,ε} = \frac{−86i − 148}{5}
B_{7,ε} = \frac{2366i + 3892}{5}
B_{9,ε} = \frac{−108846i − 176868}{5}
B_{11,ε} = \frac{7599526i + 12309572}{5}
B_{13,ε} = \frac{−751182406i − 1215768788}{5}
B_{15,ε} = \frac{99909993486i + 161668772052}{5}
B_{17,ε} = \frac{−17209733596766i − 27846408467908}{5}

Proposition 5.1.5. If ε(−1) ≠ (−1)^{k}, then B_{k,ε} = 0.

5.2 Explicit Basis for the Eisenstein Subspace

Suppose χ and ψ are primitive Dirichlet characters with conductors L and M, respectively. Let

E_{k,χ,ψ}(q) = c_{0} + ∑_{m≥1} (∑_{n|m} ψ(n) · χ(m/n) · n^{k−1}) q^{m} ∈ ℚ(χ, ψ)[[q]], (5.2.1)

where

c_{0} = \begin{cases}0 & if L > 1, \\ −\frac{B_{k,ψ}}{2k} & if L = 1. \end{cases}

Note that when χ = ψ = 1 and k ≥ 4, then E_{k,χ,ψ} = E_{k}, where E_{k} is from Chapter 1.

Miyake proves statements that imply the following theorems in [Miy89, Ch. 7]. We will not prove them in this book since developing the theory needed to prove them would take us far afield from our goal, which is to compute M_{k}(N, ε).

Theorem 5.2.1. Suppose t is a positive integer and χ, ψ are as above, and that k is a positive integer such that χ(−1)ψ(−1) = (−1)^{k}. Except when k = 2 and χ = ψ = 1, the power series E_{k,χ,ψ}(q^{t}) defines an element of M_{k}(MLt, χ/ψ). If χ = ψ = 1, k = 2, t > 1, and E_{2} = E_{k,χ,ψ}, then E_{2}(q) − tE_{2}(q^{t}) is a modular form in M_{2}(Γ_{0}(t)).

Theorem 5.2.2. The Eisenstein series in M_{k}(N, ε) coming from Theorem 5.2.1 form a basis for the Eisenstein subspace E_{k}(N, ε).

Theorem 5.2.3. The Eisenstein series E_{k,χ,ψ}(q) ∈ M_{k}(ML) defined above is an eigenvector for all Hecke operators T_{n}. Also E_{2}(q) − tE_{2}(q^{t}), for t > 1, is an eigenform.

Since E_{k,χ,ψ}(q) is normalizes so the coefficient of q is 1, the eigenvalue of T_{m} is

∑_{n|m} ψ(n) · χ(m/n) · n^{k−1}.

Also for f = E_{2}(q) − tE_{2}(q^{t}) with t > 1 prime, the coefficient of q is 1, and T_{m}(f) = σ_{1}(m) · f for (m, t) = 1, and T_{t}(f) = ((t + 1) − t)f = f.

Algorithm 5.2.4 (Enumerating Eisenstein Series). Given a weight k and a Dirichlet character ε of modulus N, this algorithm computes a basis for the Eisenstein subspace E_{k}(N, ε) of M_{k}(N, ε) to precision O(q^{r}).

1. [Weight 2 Trivial Character?] If k = 2 and ε = 1, output the Eisenstein series E_{2}(q) − tE_{2}(q^{t}), for each divisor t | N with t ≠ 1, then terminate.

2. [Compute Dirichlet Group] Let G = D(N, ℚ(ζ_{n})) be the group of Dirichlet characters with values in ℚ(ζ_{n}), where n is the exponent of (ℤ/Nℤ)^{∗}.

3. [Compute Conductors] Compute the conductor of every element of G (which just involves computing the orders of the local components of each character).

4. [List Characters χ] Form a list V all Dirichlet characters χ ∈ G such that cond(χ) · cond(χ/ε) divides N.

5. [Compute Eisenstein Series] For each character χ in V, let ψ = χ/ε, and compute E_{k,χ,ψ}(q^{t}) (mod q^{r}) for each divisor t of N/(cond(χ) · cond(ψ)). We compute E_{k,χ,ψ}(q^{t}) (mod q^{r}) using (5.2.1) and Algorithm 5.1.2.

Remark 5.2.5. Algorithm 5.2.4 is what I currently use in my programs. It might be better to first reduce to the prime power case by writing all characters as product of local characters and combine Steps 3 and 4 into a single step that involves orders. However, this might make things more complicated and obscure.

Example 5.2.6. The following is a basis of Eisenstein series E_{2,χ,ψ} for E_{2}(Γ_{1}(13)).

 f1 = 1/2 + q + 3*q^2 + 4*q^3 + O(q^4)
 f2 = (-7/13*zeta_12^2 - 11/13) + q + (2*zeta_12^2 + 1)*q^2
                                + (-3*zeta_12^2 + 1)*q^3 + O(q^4)
 f3 = q + (zeta_12^2 + 2)*q^2 + (-1*zeta_12^2 + 3)*q^3 + O(q^4)
 f4 = (-1*zeta_12^2) + q + (2*zeta_12^2 - 1)*q^2
                         + (3*zeta_12^2 - 2)*q^3 + O(q^4)
 f5 = q + (zeta_12^2 + 1)*q^2 + (zeta_12^2 + 2)*q^3 + O(q^4)
 f6 = (-1) + q + (-1)*q^2 + 4*q^3 + O(q^4)
 f7 = q + q^2 + 4*q^3 + O(q^4)
 f8 = (zeta_12^2 - 1) + q + (-2*zeta_12^2 + 1)*q^2
                          + (-3*zeta_12^2 + 1)*q^3 + O(q^4)
 f9 = q + (-1*zeta_12^2 + 2)*q^2 + (-1*zeta_12^2 + 3)*q^3 + O(q^4)
 f10 = (7/13*zeta_12^2 - 18/13) + q + (-2*zeta_12^2 + 3)*q^2
                                    + (3*zeta_12^2 - 2)*q^3 + O(q^4)
 f11 = q + (-1*zeta_12^2 + 3)*q^2 + (zeta_12^2 + 2)*q^3 + O(q^4)

5.3 Exercises

5.1 Suppose γ ∈ SL_{2}(ℤ) and N is a positive integer. Prove that there is a

positive integer h such that ( \begin{matrix}1 & h \\ 0 & 1 \end{matrix} ) ∈ γ^{−1}Γ_{1}(N)γ. 5.2 Prove that the map SL_{2}(ℤ) → SL_{2}(ℤ/Nℤ) is surjective. (Hint: There

is a proof of a more general result near the beginning of Shimura’s book [Shi94].)

5.3 Prove that M_{k}(N, 1) = M_{k}(Γ_{0}(N)). 5.4 Suppose A and B are diagonalizable linear transformations of a finite-

dimensional vector space V and that both A and B are diagonalizable. Prove there is a basis for V so that the matrices of A and B with respect to that both are simultaneously diagonal.

5.5 If ε is the trivial character of modulus 1 and B_{k} are as in Section 2.1, then

B_{k,ε} = B_{k}, except when k = 1, in which case B_{1,ε} = −B_{1} = 1/2. 5.6 Prove that if n > 1 is odd, then the Bernoulli number B_{n} is 0.

74 CHAPTER 5. EISENSTEIN SERIES

Dimensions Formulas

When computing with spaces of modular forms, it is helpful to have easy-to-compute formulas for dimensions of these spaces, and certain of their subspaces. For example, they provide a double-check on the output of the algorithms from Chapter 8 that compute explicit bases for spaces of modular forms. Alternatively, dimension formulas can be used to improve the efficiency of some of the algorithms in Chapter 8, since we can use them to determine the ranks of certain matrices without having to explicitly compute them. If we know the dimension of M_{k}(N, ε), and we have a process for computing q-expansions of elements of M_{k}(N, ε), e.g., multiplying together q-expansions of certain forms of smaller weight or searching for θ-series attached to quadratic forms, then we can tell when we are done generating M_{k}(N, ε).

This chapter contains formulas the author knows for computing dimensions of spaces of modular forms, along with some hints about how to compute them, when this isn’t obvious. In several cases we give dimension formulas for spaces that haven’t yet been defined in this book, so we define them in this chapter (e.g., we will discuss newforms and oldforms further). We also give many examples, which were computed using the modular symbols algorithms from Chapter 8.

Many of the dimension formulas and algorithms we give below grew out of a program that Bruce Caskel wrote (around 1996) in PARI, which Kevin Buzzard extended. Their program codified dimension formulas that Buzzard and Caskel found or extracted from the literature (mainly [Shi94, §2.6]). The algorithm for dimensions of spaces with nontrivial character are from [CO77], with some slight refinements from Kevin Buzzard.

For the rest of this chapter, N denotes a positive integer and k ≥ 2 is an integer. We give no formulas for dimensions of spaces of weight 1 modular forms, because it is an open problem to give such formulas; the geometric methods used to derive the formulas below do not apply in the case k = 1. If k = 0, the only modular forms are the constants, and for k < 0 the dimension of M_{k}(N, ε) is 0.

For a nonzero integer N and a prime p, let v_{p}(N) be the largest e such that p^{e} | N. In the formulas below, p always denotes a prime number. Let M_{k}(N, ε) be the space of modular forms of level N weight k and character ε, and S_{k}(N, ε) and E_{k}(N, ε) the cuspidal and Eisenstein subspaces.

The dimension formulas below for S_{k}(Γ_{0}(N)), S_{k}(Γ_{1}(N)), E_{k}(Γ_{0}(N)) and E_{k}(Γ_{1}(N)) below are almost straight from [Shi94, §2.6] (see also [Miy89, §2.5]), and they are derived using the Riemann-Roch Theorem applied to the covering X_{0}(N) → X_{0}(1) or X_{1}(N) → X_{1}(1) and appropriately chosen divisors. It would be natural to give a sample argument along these lines at this point, but I will not since it easy to find such arguments in other books and survey papers (see, e.g., [DI95]). So you will not learn much about how to derive dimension formulas from this chapter. What you will learn is what is known about dimension formulas and what some of the obscure references are.

6.1 Modular Forms for Γ_{0}(N)

Define functions of a positive integer N by the following formulas:

μ_{0}(N) = ∏_{p|N} (p^{v_{p}(N)} + p^{v_{p}(N)−1})

μ_{0,2}(N) = \begin{cases}0 & if 4 | N, \\ ∏_{p|N} (1 + (\frac{−4}{p})) & otherwise. \end{cases}

μ_{0,3}(N) = \begin{cases}0 & if 2 | N or 9 | N, \\ ∏_{p|N} (1 + (\frac{−3}{p})) & otherwise. \end{cases}
c_{0}(N) = ∑_{d|N} φ(gcd(d, N/d))

g_{0}(N) = 1 + \frac{μ_{0}(N)}{12} − \frac{μ_{0,2}(N)}{4} − \frac{μ_{0,3}(N)}{3} − \frac{c_{0}(N)}{2}

Note that μ_{0}(N) is the index of Γ_{0}(N) in SL_{2}(ℤ). Also g_{0}(N) is the genus of the modular curve X_{0}(N), and c_{0}(N) is the number of cusps of X_{0}(N).

Proposition 6.1.1. We have dim S_{2}(Γ_{0}(N)) = g_{0}(N), and for k ≥ 4 even,

dim S_{k}(Γ_{0}(N)) = (k − 1) · (g_{0}(N) − 1) + (\frac{k}{2} − 1) · c_{0}(N) +

μ_{0,2}(N) · ⌊\frac{k}{4} ⌋ + μ_{0,3}(N) · ⌊\frac{k}{3} ⌋ .

The dimension of the Eisenstein subspace is as follows:

dim E_{k}(Γ_{0}(N)) = \begin{cases}c_{0}(N) & if k ≠ 2, \\ c_{0}(N) − 1 & if k = 2. \end{cases}

The following table contains the dimension of S_{k}(Γ_{0}(N)) for some sample values of N and k:

6.1. MODULAR FORMS FOR Γ_{0}(N) 77

N  dim S_{2}(Γ_{0}(N)) dim S_{4}(Γ_{0}(N)) dim S_{6}(Γ_{0}(N)) dim S_{24}(Γ_{0}(N))
1  0  0  0  2
10  0  3  5  33
11  1  2  4  22
100  7  36  66  336
389  32  97  161  747
1000  131  430  730  3430
2004  331  1002  1674  7722
100000 14801  44800  74800  344800

6.1.1 New and Old Subspaces

For each divisor N′ of N, there are natural maps

α_{d} : M_{k}(Γ_{0}(N′)) → M_{k}(Γ_{0}(N)),

corresponding to the divisors d of N/N′, and maps

β_{d} : M_{k}(Γ_{0}(N)) → M_{k}(Γ_{0}(N′)).

such that β_{d} ∘ α_{d} is multiplication by a nonzero scalar. On q-expansions, α_{d}(f(q)) = f(q^{d}), and the definition of β_{d} is a more complicated “trace map” (see, e.g., [Lan95]).

The space M_{k}(Γ_{0}(N)) decomposes as a direct sum

M_{k}(Γ_{0}(N)) = M_{k}(Γ_{0}(N))^{old} ⊕ M_{k}(Γ_{0}(N))^{new},

where M_{k}(Γ_{0}(N))^{old} is the subspace generated by all images α_{d}(M_{k}(Γ_{0}(N′)) where N′ runs through proper divisors of N and d runs through all divisors of N/N′. The new subspace M_{k}(Γ_{0}(N))^{new} can be defined as either the intersection of the kernels of all maps β_{d} to lower level, or the largest Hecke-stable complement of M_{k}(Γ_{0}(N))^{old}.

Atkin and Lehner [AL70] proved that the space S_{k}(Γ_{0}(N)) is built out of new subspaces, in the following sense.

Theorem 6.1.2 (Atkin-Lehner). We have an isomorphism

S_{k}(Γ_{0}(N)) = ∑_{M|N} ∑_{d|N/M} α_{d}(S_{k}(Γ_{0}(M))^{new}).

This is an isomorphism of 𝕋′ modules, where 𝕋′ is the anemic Hecke algebra, i.e., the subring generated by Hecke operators T_{n} with gcd(n, N) = 1.

This theorem reduces the problem of computing S_{k}(Γ_{0}(N)) to that of computing S_{k}(Γ_{0}(M))^{new} for divisors M of N, a fact that will be central later in this book. Atkin and Lehner also prove that one can completely determine S_{k}(Γ_{0}(M))^{new} just from the information of how the Hecke operators act on it (their “multiplicity one” theory). Atkin and Lehner’s work was generalized to fairly arbitrary congruence subgroups of SL_{2}(ℤ) by Winnie Li in her Berkeley Ph.D. thesis under A. Ogg (see [Li75]).

If N′′ | N′ | N, then the maps α_{d} from M_{k}(Γ_{0}(N′′)) to M_{k}(Γ_{0}(N)) factor through M_{k}(Γ_{0}(N′)). Thus in the definition of M_{k}(Γ_{0}(N))^{old} and M_{k}(Γ_{0}(N))^{new}, it would suffice to consider only proper divisors N′ of N such that N/N′ is prime.

Warning: For a fixed N′ = N/p, the images of α_{1} and α_{p} need not always be linearly independent (see Example 6.1.4 below). However, the images of the new subspace S_{k}(Γ_{0}(N′))^{new} are linearly independent, as asserted by Theorem 6.1.2.

Proposition 6.1.3. The dimension of the new subspace is

dim S_{k}(Γ_{0}(N))^{new} = ∑_{M|N} \overline{μ}(N/M) · dim S_{k}(Γ_{0}(M)),

where the sum is over the positive divisors of N, and for an integer R,

\overline{μ}(R) = \begin{cases}0 & if p^{3} | R for some p \\ ∏_{p||R} −2 & otherwise, \end{cases}

where the product is over primes that exactly divide n. (Note that \overline{μ} is not the Moebius function, but is similar to it.)

Let f(n) = dim S_{k}(Γ_{0}(n)) and g(n) = dim S_{k}(Γ_{0}(n))^{new}. Theorem 6.1.2 implies that

f(N) = ∑_{M|N} σ_{0}(N/M)g(M),  (6.1.1)

where σ_{0}(N/M) is the number of divisors of N/M. Presumably there is an analogue of Moebius inversion, but for functions with the property in (6.1.1), which involves the function \overline{μ}.

Example 6.1.4. The space M_{2}(Γ_{0}(45)) has dimension 10 and basis

      1 + 12*q^15 + O(q^20),
      q + q^7 + 3*q^16 + 6*q^19 + O(q^20),
      q^2 + 4*q^11 + 3*q^14 + q^17 + O(q^20),
      q^3 + q^12 + q^15 + 3*q^18 + O(q^20),
      q^4 + q^7 + 2*q^13 + 4*q^16 + 2*q^19 + O(q^20),
      q^5 + O(q^20),
      q^6 + 2*q^12 + 2*q^15 - q^18 + O(q^20),
      q^8 + q^14 + q^17 + O(q^20),
      q^9 - 2*q^15 + 3*q^18 + O(q^20),
      q^10 + O(q^20)

The new subspace is spanned by the single cusp form

      q + q^2 - q^4 - q^5 - 3*q^8 - q^10 + 4*q^11 - 2*q^13 + O(q^14)

First consider N′ = 45/3 = 15. The space M_{2}(Γ_{0}(15)) has basis

      1 + 12*q^5 + O(q^8),
      q + q^4 + q^5 + 3*q^6 + 2*q^7 + O(q^8),
      q^2 + 2*q^4 + 2*q^5 - q^6 + 2*q^7 + O(q^8),
      q^3 - 2*q^5 + 3*q^6 + O(q^8)

There are two maps α_{1} and α_{3} from M_{2}(Γ_{0}(15)) to M_{2}(Γ_{0}(45)). The one dimension space M_{2}(Γ_{0}(5)) embeds in M_{2}(Γ_{0}(15)) via f(q) ↦ f(q) and f(q) ↦ f(q^{3}). We have a commutative diagram

\xymatrix{ & M_{2}(Γ_{0}(15)) \ar[dr]^{α_{3}} \\ M_{2}(Γ_{0}(5)) \ar[ur]^{α_{1}} \ar[dr]^{α_{3}} &  & M_{2}(Γ_{0}(45)). \\  & M_{2}(Γ_{0}(15)) \ar@{-->}[ur]^{α_{1}}}

This diagram illustrates that the intersection of the two images of M_{2}(Γ_{0}(15)) has dimension at least 1. In fact, the sum of the images of the two maps from M_{2}(Γ_{0}(15)) is a 7-dimensional subspace of M_{2}(Γ_{0}(45)).

Next consider N′ = 45/5 = 9, where the space M_{2}(Γ_{0}(9)) = E_{2}(Γ_{0}(9)) has as basis the three forms

      1 + 12*q^3 + 36*q^6 + O(q^8),
      q + 7*q^4 + 8*q^7 + O(q^8),
      q^2 + 2*q^5 + O(q^8)

There are two maps α_{1} and α_{5} from M_{2}(Γ_{0}(9)) to M_{2}(Γ_{0}(45)). The images of these two maps span a space of dimension 6, and this space intersects the span of the images of M_{2}(Γ_{0}(15)) in a space of dimension 4. Thus the old subspace M_{2}(Γ_{0}(45))^{old} has dimension 9, and the new subspace has dimension 1. The new subspace is spanned by the single cusp form

      q + q^2 - q^4 - q^5 - 3*q^8 - q^10 + 4*q^11 + O(q^12)

Remark 6.1.5. Csirik, Wetherell, and Zieve prove in [CWZ01] that a random positive integer has probability 0 of being a value of g_{0}(N) = dim S_{2}(Γ_{0}(N)), and give bounds on the size of the set of values of g_{0}(N) below some given x. For example, they show that 150, 180, 210, 286, 304, 312, … are the first few integers that are not of the form g_{0}(N) for some N.

6.2 Modular Forms for Γ_{1}(N)

This section follows Section 6.1 closely, but with suitable modifications with Γ_{0}(N) replaced by Γ_{1}(N). The notion of new and old subspaces for Γ_{1}(N) is exactly the same as for Γ_{0}(N); simply replace Γ_{0}(N) by Γ_{1}(N) in the discussion of new and old forms in Section 6.1.

Define functions of a positive integer N by the following formulas:

μ_{1}(N) = \begin{cases}μ_{0}(N) & if N = 1, 2, \\ \frac{ϕ(N) · μ_{0}(N)}{2} & otherwise. \end{cases}

μ_{1,2}(N) = \begin{cases}0 & if N ≥ 4, \\ μ_{0,2}(N) & otherwise. \end{cases}

μ_{1,3}(N) = \begin{cases}0 & if N ≥ 4, \\ μ_{0,3}(N) & otherwise. \end{cases}

c_{1}(N) = \begin{cases}c_{0}(N) & if N = 1, 2, \\ 3 & if N = 4, \\ ∑_{d|N} \frac{ϕ(d)ϕ(N/d)}{2} & otherwise. \end{cases}

g_{1}(N) = 1 + \frac{μ_{1}(N)}{12} − \frac{μ_{1,2}(N)}{4} − \frac{μ_{1,3}(N)}{3} − \frac{c_{1}(N)}{2}

Note that g_{1}(N) is the genus of the modular curve X_{1}(N), and c_{1}(N) is the number of cusps of X_{1}(N). [[TODO: Make sure this is right for N ≤ 5.]]

Proposition 6.2.1. We have dim S_{2}(Γ_{1}(N)) = g_{1}(N). If N ≤ 2, then

dim S_{k}(Γ_{1}(N)) = dim S_{k}(Γ_{0}(N)),

where dim S_{k}(Γ_{0}(N)) is given by the formula of Proposition 6.1.1. If k ≥ 3, let

a = (k − 1)(g_{1}(N) − 1) + (\frac{k}{2} − 1) · c_{1}(N).

Then for N ≥ 3,

dim S_{k}(Γ_{1}(N)) = \begin{cases}a + 1/2 & if N = 4 and 2 ∤ k, \\ a + ⌊k/3⌋ & if N = 3, \\ a & otherwise. \end{cases}

The dimension of the Eisenstein subspace is as follows:

dim E_{k}(Γ_{1}(N)) = \begin{cases}c_{1}(N) & if k ≠ 2, \\ c_{1}(N) − 1 & if k = 2. \end{cases}

The dimension of the new subspace of M_{k}(Γ_{1}(N)) is

dim S_{k}(Γ_{1}(N))^{new} = ∑_{M|N} \overline{μ}(N/M) · dim S_{k}(Γ_{1}(M)),

where \overline{μ} is as in the statement of Proposition 6.1.3.

Remark 6.2.2. Since M_{k} = S_{k} ⊕ E_{k}, the formulas above also give a formula for the dimension of M_{k}.

The following table contains the dimension of S_{k}(Γ_{1}(N)) for some sample values of N and k:

N  dim S_{2}(Γ_{1}(N)) dim S_{3}(Γ_{1}(N)) dim S_{4}(Γ_{1}(N)) dim S_{24}(Γ_{1}(N))
1  0  0  0  2
10  0  2  5  65
11  1  5  10  110
100  231  530  830  6830
389  6112  12416  18721  144821
1000  28921  58920  88920  688920
2004  109893  221444  332996  2564036
100000 299792001  599792000  899792000  6899792000

6.3 Modular Forms with Character

Fix a Dirichlet character ε modulo N, and let c be the conductor of ε (we do not assume that ε is primitive). Assume that ε ≠ 1, since otherwise M_{k}(N, ε) = M_{k}(Γ_{0}(N)) and the formulas of Section 6.1 apply. Also, assume that ε(−1) = (−1)^{k}, since otherwise dim M_{k}(Γ_{0}(N)) = 0. In this section we discuss formulas for certain subspaces of M_{k}(N, ε).

In [CO77], Cohen and Oesterle assert (without proof, see Remark 6.3.2 below) that for any k ∈ ℤ and N, ε as above, that

dim S_{k}(N, ε) − dim M_{2−k}(N, ε)

= \frac{k − 1}{12} · μ_{0}(N) − \frac{1}{2} · ∏_{p|N} λ(p, N, v_{p}(c))

+ γ_{4}(k) · ∑_{x∈A_{4}(N)} ε(x) + γ_{3}(k) · ∑_{x∈A_{3}(N)} ε(x)

where μ_{0}(N) is as in Section 6.1, A_{4}(N) = {x ∈ ℤ/Nℤ : x^{2} + 1 = 0} and A_{3}(N) = {x ∈ ℤ/Nℤ : x^{2} + x + 1 = 0}, and γ_{3}, γ_{4} are:

γ_{4}(k) = \begin{cases}−1/4 & if k ≡ 2 (mod 4) \\ 1/4 & if k ≡ 0 (mod 4) \\ 0 & if k is odd \end{cases}

γ_{3}(k) = \begin{cases}−1/3 & if k ≡ 2 (mod 3) \\ 1/3 & if k ≡ 0 (mod 3) \\ 0 & if k ≡ 1 (mod 3) \end{cases}

It remains to define λ. Fix a prime divisor p | N and let r = v_{p}(N). Then

λ(p, N, v_{p}(c)) = \begin{cases}p^{\frac{r}{2}} + p^{\frac{r}{2} −1} & if 2 · v_{p}(c) ≤ r and 2 | r, \\ 2 · p^{\frac{r−1}{2}} & if 2 · v_{p}(c) ≤ r and 2 ∤ r, \\ 2 · p^{r−v_{p}(c)} & if 2 · v_{p}(c) > r \end{cases}

The formula can be used to compute dim M_{k}(N, ε), dim S_{k}(N, ε), and dim E_{k}(N, ε) for any N, ε, k ≠ 1, by using that

dim S_{k}(N, ε) = 0  if k ≤ 0
dim M_{k}(N, ε) = 0  if k < 0
dim M_{0}(N, ε) = 1  if k = 0

One thing that is not straightforward when implementing an algorithm to compute the above dimension formulas is how to efficiently compute the sets A_{4}(N) and A_{6}(N). Kevin Buzzard suggested the following two algorithms to the author. Note that if k is odd, then γ_{4}(k) = 0, so the sum over A_{4}(N) is only needed when k is even.

Algorithm 6.3.1 (Compute Sum over A_{4}(N)). INPUT: A positive integer N and an even Dirichlet character ε modulo N. OUTPUT: The sum ∑_{x∈A_{4}(N)} ε(x).

1. [Factor N] Compute the prime factorization p_{1}^{e_{1}} ⋯ p_{n}^{e_{n}} of N.

2. [Initialize] Set t = 1 and i = 0.

3. [Loop over prime divisors] Set i = i + 1. If i > n, return t. Otherwise set p = p_{i} and e = e_{i}.

(a) If p ≡ 3 (mod 4), return 0.

(b) If p = 2 and e > 1, return 0.

(c) If p = 2 and e = 1, go to Step 3.

(d) Compute a generator a ∈ (ℤ/pℤ)^{∗} using Algorithm 4.3.4.

(e) Compute ω = a^{(p−1)/4}.

(f) Using the Chinese Remainder Theorem to find x ∈ ℤ/Nℤ such that x ≡ a (mod p) and x ≡ 1 (mod N/p^{e}).

(g) Set x = x^{p^{r−1}}.

(h) Set s = ε(x).

(i) If s = 1, set t = 2t and go to Step 3.

(j) If s = −1, set t = −2t and go to Step 3.

Proof. Note that ε(−x) = ε(x), since ε is even. By the chinese remainder theorem, the set A_{4}(N) is empty if and only if there is no square root of −1 modulo some prime power divisor of p. If A_{4}(N) is empty, the algorithm correctly detects this fact in steps 3a–3b. Thus assume A_{4}(N) is non-empty. For each prime power p_{i}^{e_{i}} that exactly divides N, let x_{i} ∈ Z/Nℤ be such that x_{i}^{2} = −1 and x_{i} ≡ 1 (mod p_{j}^{e_{j}}) for i ≠ j. This is the value of x computed in steps 3d–3g (as one can see using elementary number theory).

The next key observation is that

∏_{i}(ε(x_{i}) + ε(−x_{i})) = ∑_{x∈A_{4}(N)} ε(x),  (6.3.1)

since by the chinese remainder theorem the elements of A_{4}(N) are in bijection with the choices for a square root of −1 modulo each prime power divisors of N. The observation (6.3.1) is a huge gain from an efficiency point of view—if N had r prime factors, then A_{4}(N) would have size 2^{r}, which could be prohibitive, where the product involves only r factors. To finish the proof, just note that Steps 3h–3j compute the local factors ε(x_{i}) + ε(−x_{i}) = 2ε(x_{i}), where again we use that ε is even. (Note, e.g., that a solution of x^{2} + 1 ≡ 0 (mod p) lifts uniquely to a solution mod p^{n} for any n, because the kernel of the natural homomorphism (ℤ/p^{n}ℤ)^{∗} → (ℤ/pℤ)^{∗} is a group of p-power order.

The algorithm for computing the sum over A_{3}(N) is similar, but we omit it. The following table contains the dimension of S_{k}(N, ε) for some sample val-

ues of N and k. In each case, ε is the product of characters ε_{p} of maximal order corresponding to the prime power factors of N (i.e., the product of the generators of D(N, ℂ^{∗})).

N  dim S_{2}(N, ε) dim S_{3}(N, ε) dim S_{4}(N, ε) dim S_{24}(N, ε)
1  0  0  0  2
10  0  1  0  0
11  0  1  0  0
100 13  0  43  343
389 0  64  0  0
1000 148  0  448  3448
2004 0  668  0  0

Remark 6.3.2. Cohen and Oesterle also give dimension formulas for spaces of half-integral weight modular forms, which we do not give in this chapter. Also [CO77] does not contain any proofs that their claimed formulas are correct, but instead say only that “Les formules qui les donnent sont connues de beaucoup de gens et il existe plusieurs méthodes permettant de les obtenir (théorème de Riemann-Roch, application des formules de trace données par Shimura).” (The formulas that we give here are well known and there exist many methods to prove them, e.g., the Riemann-Roch theorem and applications of the trace formula of Shimura.)

6.4 Exercises

6.1 Fill in the elementary number theory details of the proof of Algorithm 6.3.1.

6.2 Track this down the analogue of Moebius inversion for \overline{μ} and give a quick presentation on it.

6.3 Implement in your favorite computer language an algorithm to compute dim S_{k}(Γ_{0}(N)).

Linear Algebra

This chapter is about exact matrix algebra with over the rational numbers and cyclotomic fields. Algorithms for linear algebra over exact fields are necessary in order to implement the modular symbols algorithms that we will describe in Chapter 7.

This chapter partly overlaps with [Coh93, §2.1–2.4].

7.1 Echelon Forms of Matrices

Definition 7.1.1 (Reduced Row Echelon Form). A matrix is in row echelon form if each row in the matrix starts with more zeros than the row above it. A matrix is in reduced row echelon form if it is in row echelon form, the first nonzero entry of any row is 1, and the first nonzero entry of any row is the only nonzero value in its column.

Given a matrix A, there is another matrix B such that B is obtained from A by left multiplication by an invertible matrix and B is in reduced row echelon form. This matrix B is called the reduced row echelon form of A. It is unique.

A pivot column of A is one such that the reduced row echelon form of A contains a leading 1.

Example 7.1.2. The following matrix is in row echelon form, but not reduced row echelon form:

       [ 14,  2,  7,  228, -224;
          0,  0,  3,   78,  -70;
          0,  0,  0, -405,  381]

The reduced row echelon form of the above matrix is

        [1, 1/7, 0, 0, -1174/945;
         0,   0, 1, 0,   152/135;
         0,   0, 0, 1,  -127/135]

Notice that the entries of the reduced row echelon form can easily be messy. Another example is the simple looking matrix

        [ -9,  6,  7, 3, 1, 0, 0, 0;
         -10,  3,  8, 2, 0, 1, 0, 0;
           3, -6,  2, 8, 0, 0, 1, 0;
          -8, -6, -8, 6, 0, 0, 0, 1]

whose echelon form is

        [1, 0, 0, 0,  42/1025,  -92/1025,  1/25,  -9/205;
         0, 1, 0, 0, 716/3075, -641/3075, -2/75,  -7/615;
         0, 0, 1, 0, -83/1025,  133/1025,  1/25, -23/410;
         0, 0, 0, 1, 184/1025, -159/1025,  2/25,   9/410]

One learns in a basic linear algebra course that two matrices A and B have the same reduced row echelon form if and only if there is an invertible matrix E such that EA = B. Also, many standard operations in linear algebra, e.g., computation of the kernel of a linear map, intersection of subspaces, membership checking, etc., can be encoded as a question about computing the echelon form of a matrix.

The following is a naive algorithm for computing the echelon form of a matrix.

Algorithm 7.1.3 (Gauss Elimination). INPUT: An m × n matrix A over a field. OUTPUT: The reduced row echelon form of A. We write A[i,j] for the i, j entry of A, where 0 ≤ i ≤ m−1 and 0 ≤ j ≤ n−1.

      def echelon(A):
          start_row = 0
          nr = A.nrows        # The number of rows of A
          nc = A.ncols        # The number of columns of A
          for c in range(nc): # for c = 0, 1, 2, ..., nc-1
              for r in range(nr):
                  a = A[r,c]
                  # if a is nonzero
                  if a != 0:
                      # Rescale row r of A by 1/a.
                      A.scale_row(r, 1/a)
                      # Swap row r with the start_row row.
                      A.swap_rows(r, start_row)
                      # Clear the c-th column
                      for i in range(nr):
                          if i != start_row:
                              if A[i,c] != 0:
                                  # Add -A[i,c] times start_row to the i-th row
                                  # in order to clear the leading entry of
                                  # the i-th row.
                                  A.add_multiple_of_row(start_row, -A[i,c], i)
                      # Increment the start_row
                      start_row = start_row + 1
                      # The following break means that we skip the rest
                      # of the for loop over r in range(nr), and
                      # increase c and start a new for loop over r.
                      break

This algorithm takes O(mn^{2}) arithmetic operation in the base field, where A is an m × n matrix. If the base field is ℚ, the entries can become huge and arithmetic operations can be increasingly expensive. See Section 7.2 for ways to mitigate this problem.

To conclude this section we mention how to convert a few standard problems into questions about reduced row echelon forms of matrices. Note that one can also phrase some of these answers in terms of the echelon form, which might be easier to compute, or an LUP decomposition (lower triangular times upper triangular times permutation matrix), which the numerical analysts use.

1. Kernel of A: Since passing to the reduced row echelon form of A is the same as multiplying on the left by an invertible matrix, the kernel of the reduce row echelon form is the same as the kernel of A. Thus we may assume A is in reduced row echelon form. There is a basis vector of ker(A) that corresponds to each non-pivot column of A. That vector has a 1 at the non-pivot column, 0’s at all other non-pivot columns, and for each pivot column, the negative of the entry of A at the non-pivot column in the row with that pivot element.

2. Intersection of Subspaces: Suppose W_{1} and W_{2} are subspace of a finite-dimensional vector space V. Let A_{1} and A_{2} be matrices whose columns form a basis for W_{1} and W_{2}, respectively. Let A = [A_{1}|A_{2}] be the augmented matrix formed from A_{1} and A_{2}. Let K be the kernel of the linear transformation defined by A. Then K is isomorphic to the desired intersection. To write down the intersection explicitly, suppose that dim(V) ≤ dim(W) and do the following: For each b in a basis for K, write down the linear combination of a basis for V got by taking the first dim(V) entries of the vector b. The fact that b is in Ker(A) implies that the vector we just wrote down is also in W. We took V to have smaller dimension just so that the linear combinations in the intersection could be written down slightly more quickly.

7.2 Echelon Forms over ℚ

A major difficulty with computation of the echelon form of a dense matrix over the rational numbers is that arithmetic with large rational numbers is very time consuming, since each addition potentially requires a gcd and numerous additions and multiplications of integers. Moreover, the entries of A during intermediate steps of Algorithm 7.1.3 can be huge even though the entries of A and the answer are small. For example, suppose A is an invertible square matrix. Then the echelon form of A is the identity matrix, but during intermediate steps the entries of A could be quite large. One technique for mitigating this problem is to compute the echelon form using a multi-modular method. The following is a sketch of such a multi-modular method (we will give a more precise version; see Algorithm 7.2.3):

1. By clearing denominators, we may assume that the entries of A are integers.

2. Compute the echelon forms B_{p} of the reduction A (mod p) of A modulo several primes P = {p, …}, using some variant of Algorithm 7.1.3. (Note that arithmetic modulo p for a “machine size” prime p is very fast.)

3. Use the Chinese Remainder Theorem to find a matrix B with integer entries such that B ≡ B_{p} (mod p) for all p ∈ P.

4. Use rational reconstruction (see below) to find a matrix C whose coefficients are rational numbers n/r such that |n|, r ≤ \sqrt{m/2}, where m is the product of the primes in P, and C ≡ B_{p} (mod p) for each prime p.

5. Use height bounds to verify that C is the reduced row echelon form of A.

Rational reconstruction is a process that allows one to sometimes lift an integer modulo m uniquely to a bounded rational number.

Algorithm 7.2.1 (Rational Reconstruction). INPUT: An integer a ≥ 0 and an integer m ≥ 1.

7.2. ECHELON FORMS OVER ℚ 89

OUTPUT: The numerator and denominator n, d of the unique rational number n/d, if it exists, with

|n|, d ≤ \sqrt{\frac{m}{2}}  and  n ≡ ad (mod m),

or returns n = d = 0, if no such rational number exists.

      def rational_reconstruction(a, m):
          # Reduce a modulo m
          a = a % m
          # Trivial special cases
          if a == 0: return (0,1)
          if a == 1: return (1,1)
          # Let bnd be the integer part of the square root of m/2.
          bnd = sqrt(m/2.0)
          # Initialize Euclidean algorithm.
          u = m
          v = a
          # Perform the extended Euclidean algorithm, but terminate
          # when V[2] is <= bnd.
          U = (1,0,u)
          V = (0,1,v)
          while abs(V[2]) > bnd:
              q = U[2]//V[2]      # // means divide and take the integer part
              tmp = (U[0]-q*V[0], U[1]-q*V[1], U[2]-q*V[2])
              U = V
              V = tmp
          d = abs(V[1])
          n = V[2]
          if V[1] < 0:  n = n * (-1)
          if d <= bnd and gcd(n,d) == 1:
              return (n,d)
          return (0,0)

Remark 7.2.2 (Technical Python Remarks). In Python, use the sqrt function from the gmpy GMP library, not the one from math. With Python integers, a/b also means divide and take the floor, i.e., what we denote by a//b above. Finally, gcd is not included with Python. Use, e.g., the gmpy.gcd function.

Algorithm 7.2.1 for rational reconstruction is described (with a complete nontrivial proof) in [Knu, pg.656–657] as the solution to exercise 51 on page 379. See in particular the paragraph right in the middle of page 657, which describes the algorithm. Knuth says this rational reconstruction algorithm is due to Wang, Kornerup, and Gregory from around 1983.

We now give an indication of why Algorithm 7.2.1 computes the rational reconstruction of a (mod m), leaving the precise details and uniqueness to [Knu, pg.656–657]. At each step in Algorithm 7.2.1, the 3-tuple V = (v_{0}, v_{1}, v_{2}) satisfies

m · v_{0} + a · v_{1} = v_{2},  (7.2.1)

and similarly for U. When computing the usual extended gcd, at the end v_{2} = gcd(a, m) and v_{0}, v_{1} give a representation of the v_{2} as a ℤ-linear combination of m and a. In Algorithm 7.2.1, we are instead interested in finding a rational number n/d such that n ≡ a · d (mod m). If we set n = v_{2} and d = v_{1} in (7.2.1) and rearrange, we obtain

n = a · d + m · v_{0}.

Thus at every step of the algorithm we find a rational number n/d such that n ≡ ad (mod m). The problem at intermediate steps is that, e.g., v_{0} could be 0, or n or d could be too large.

If A is a matrix with rational entries, let H(A) be the height of A, which is the maximum of the absolute values of the numerators and denominators of all entries of A.

Algorithm 7.2.3 (Modular Algorithm for Computing Echelon Form). INPUT: An m × n matrix A with entries in ℚ. OUTPUT: The reduced row echelon form of A.

1. Rescale the input matrix A to have integer entries. This does not change the echelon form and makes reduction modulo many primes easier. Henceforth we assume A has integer entries.

2. Let c be a guess for the height of the echelon form.

3. List successive primes p_{1}, p_{2}, … such that the product of the p_{i} is bigger than n · c · H(A) + 1, where n is the number of columns of A.

4. Compute the echelon forms B_{i} of the reduction A (mod p_{i}) using, e.g., Algorithm 7.1.3 or something similar.

5. Discard any B_{i} whose pivot column list is not maximal among pivot lists of all B_{j} found so far. (The pivot list associated to B_{i} is the ordered list of integers k such that the kth column of B_{j} is a pivot column. We mean maximal with respect to the following ordering on integer sequences: shorter integer sequences are smaller, and if two sequences have the same length, then order in reverse lexicographic order. Thus [1, 2] is smaller than [1, 2, 3], and [1, 2, 7] is smaller than [1, 2, 5]. Think of maximal as “optimal”, i.e., best possible pivot columns.)

6. Use the Chinese Remainder Theorem to find a matrix B with integer entries such that B ≡ B_{i} (mod p_{i}) for all p_{i}.

7. Use rational reconstruction (Algorithm 7.2.1) to try to find a matrix C whose coefficients are rational numbers n/r such that |n|, r ≤ \sqrt{M/2}, where M = ∏ p_{i}, and C ≡ B_{i} (mod p_{i}) for each prime p. If rational reconstruction fails, compute a few more echelon forms mod the next few primes (using the above steps), and attempt rational reconstruction again. Let E be the matrix over ℚ so obtained.

8. Compute the denominator d of E, i.e., the smallest positive integer such that dE has integer entries. If

H(dE) · H(A) · n ≤ ∏ p_{i},  (7.2.2)

then E is the reduced row echelon form of A. If not, repeat the above steps with a few more primes.

Proof. We prove that if the bound (7.2.2) is satisfied, then the matrix E computed by the algorithm really is the reduced row echelon form R of A. The set of pivot columns of all matrices B_{i} used to construct E are the same, so the pivot columns of E are the same as those of any B_{i}. Thus E is in reduced row echelon form.

Recall from the end of Section 7.1 that a matrix whose columns are a basis for the kernel of A can be obtained from the reduced row echelon form of R. Let K be the matrix whose columns are the vectors in the kernel algorithm applied to E, so EK = 0. Since the reduced row echelon form is got by left multiplying by an invertible matrix, for each i, there is an invertible matrices C_{i} mod p_{i} such that A = C_{i}B_{i} so

A · dK ≡ dC_{i}B_{i}K ≡ C_{i} · dE · K ≡ 0 (mod p_{i}).

Since dK and A are integer matrices,

A · dK ≡ 0 (mod ∏ p_{i}).

The integer entries of A · dK are all at most H(A) · H(dK) · n, where n is the number of columns of A. Since H(K) ≤ H(E), the bound (7.2.2) implies that A · dK = 0. Thus AK = 0, so Ker(E) ⊂ Ker(A). On the other hand, the rank of E equals the rank of each B_{i} (since the pivot columns are the same), so

rank(E) = rank(B_{i}) = rank(A (mod p_{i})) ≤ rank(A).

Thus dim(Ker(A)) ≤ dim(Ker(E)), and combining this with the bound obtained above we see that Ker(E) = Ker(A). This implies that E is the reduced row echelon form of A, since two matrices have the same kernel if and only if they have the same reduced row echelon form (the echelon form is an invariant of the row space, and the kernel is the orthogonal complement of the row space).

The reason for Step 5 is that the matrices B_{i} need not be the reduction of R modulo p_{i}, and indeed this reduction might not even be defined, e.g., if p_{i} divides the denominator of some element of R, then this reduction makes no sense. For example, set p = p_{i} and suppose A = ( \begin{matrix}p & 1 \\ 0 & 0 \end{matrix} ). Then R = ( \begin{matrix}1 & 1/p \\ 0 & 0 \end{matrix} ), which has no reduction modulo p; also, the reduction of A modulo B_{i} is B_{i} = ( \begin{matrix}0 & 1 \\ 0 & 0 \end{matrix} ) (mod p), which is already in reduced row echelon form. However if we were to combine B_{i} with the echelon form of A modulo another prime, the result could never be lifted using rational reconstruction. Thus the reason we exclude all B_{i} with non-maximal pivot column sequence is so that a rational reconstruction will exist. There are only finitely many primes that divide denominators of entries of R, so eventually all B_{i} will have maximal pivot column sequences, i.e., are the reduction of the true reduced row echelon form R, so the algorithm terminates.

Remark 7.2.4.

1. I learned about rational reconstruction in the context of computing echelon forms from Allan Steel, who is one of the developers of Magma. I learned from Allan that Magma does not use the above algorithm; instead it uses a Strassen “divide and conquer” echelon procedure that involves random permuting of rows, etc., and takes advantage of asymptotically fast matrix multiplication algorithms. The matrix multiplies are done using a modular CRT technique. This is probably better in many cases, especially for dense matrices.

2. I have tested an implementation of Algorithm 7.2.3 against MAGMA V2.11-8. For large square matrices over ℚ, e.g., over a hundred rows, (a case of importance when cutting out eigenspaces for Hecke operators), Algorithm 7.2.3 is much more efficient (both in time and memory usage) than MAGMA. In contrast, for matrices with more columns than rows (an important case, e.g., when intersecting subspaces), MAGMA is often an order of magnitude faster. Thus an optimal package should probably implement both Algorithm 7.2.3 for square matrices and a divide and conquer echelon strategy for non-square matrices.

3. I have never seen Algorithm 7.2.3 anywhere else, and found the details and proof myself. I have seen the idea of using a multi-modular method for linear algebra problems hinted out or explicitly suggested many times; I’ve just never seen a discussion of computing reduced row echelon forms this way.

4. There is also an iterative p-adic method for lifting solutions modulo p to an equation Ax = v to characteristic 0. This is supposed to be faster for a single solution, but slower for lifting many solutions. See http://magma.

maths.usyd.edu.au/users/allan/gb/faugere_f4.ps.gz for a discus-

sion.

5. Algorithm 7.2.3, with all matrices sparse, seems to work very well in practice. A simple but helpful modification to Algorithm 7.1.3 in the sparse case is to clear each column using a row with a minimal number of nonzero entries, so as to reduce the amount of “fill in” (denseness) of the matrix. There are more sophisticated methods along these lines called “intelligent Gauss elimination”. (Cryptographers are interested in linear algebra with huge sparse linear, since they come up in factor basis attacks on the discrete log problem or integer factorization.)

One can likely adapt Algorithm 7.2.3 to computation of reduced row echelon forms of matrices A over cyclotomic fields ℚ(ζ_{n}). Assume A has denominator 1. Let p be a prime that splits completely in ℚ(ζ_{n}). Compute the homomorphisms f_{i} : ℤ_{p}[ζ_{n}] → 𝔽_{p} by finding the elements of order n in 𝔽_{p}^{∗}. Then compute the mod p matrix f_{i}(A) for each i, and find its reduced row echelon form. Taken together, the maps f_{i} together induce an isomorphism Ψ : 𝔽_{p}[X]/Φ_{n}(X) ≅ 𝔽_{p}^{d}, where Φ_{n}(X) is the nth cyclotomic polynomial and d is its degree. It’s easy to compute Ψ(f(x)) by evaluating f(x) at each element of order n in 𝔽_{p}. To compute Ψ^{−1} simply use linear algebra over 𝔽_{p} to invert a matrix that represents Ψ. Use Ψ^{−1} to compute the the reduced row echelon form of A (mod p), where (p) is the non-prime ideal in ℤ[ζ_{n}] generated by p. Do this for several primes p, and use rational reconstruction on each coefficient of each power of ζ_{n}, to recover the echelon form of A. Problems: What is the analogue of (7.2.2)?

7.3 Polynomials

There are several linear algebra algorithms that involve polynomials and are important to modular forms algorithms.

Computation of characteristic polynomials of matrices is crucial to modular forms computations. There are many approaches to this problems: compute det(xI − A) symbolically (bad), compute the traces of the powers of A (bad), or compute the Hessenberg form modulo many primes and use CRT (not so bad, see [Coh93, §2.2.4]). Another more sophisticated method is to compute the rational canonical form of A using Giesbrecht’s algorithms, which involve computing Krylov subspaces (i.e., cyclic spaces spanned by a single vector), and building up the whole space on which A acts. This latter method may be viewed as a generalization of Wiedemann’s algorithm for computing minimal polynomials (see Section 7.4.1), but with more structure. The algorithm used in Magma is similar to Giesbrecht’s (probably independently discovered). PARI uses only Lagrange interpolation (?) and Hessenberg form.

Factorization of polynomials in ℤ[X] is an important step in computing an explicit basis of newforms for a space of modular forms. The best algorithm is the van Hoeij method, which uses LLL in a novel way to solve the sort of optimization problems that come up in trying to lift factorizations mod p to ℤ. It has aparently been generalized to number fields and is included in new versions of PARI, Magma, and NTL. For more details, see van Hoeij’s web

page: http://www.math.fsu.edu/~hoeij/papers.html.

7.4 Decomposing Spaces

Fix a weight k, integer N, and Dirichlet character ε modulo N. Let

V = 𝕊_{k}(Γ_{1}(N), ε)^{+ new}

be the new subspace of the +1 quotient of cuspidal modular symbols, viewed as a K = ℚ(ε) vector space. In this section we will describe an algorithm to write V as a direct sum of simple 𝕋-submodules. It is a consequence of Atkin-Lehner-Li theory and the isomorphism between cusp forms and certain modular symbols that V is a direct sum of distinct simple modules, and that the Hecke operators T_{n} all act diagonalizably on V.

Let R denote the image of 𝕋⊗K in End(V), and let n = dim(V). Since R is semisimple and finite dimensional over a field, R is a product ∏ K_{i} of number fields, so a random Hecke operator T will, with high probability, generate R as a K-algebra. (The elements that don’t generate lie in proper K-subalgebras of R, and those subalgebras are direct sums of subsets of the K_{i}.) If T generates R as an algebra, then the minimal polynomial f of T has degree n, so it equals the characteristic polynomial of T. Also since T is diagonalizable, the minimal polynomial of T is square free. Thus we are led to the following problem:

Problem 7.4.1. Suppose T is an n × n matrix with entries in K and that the minimal polynomial of T is square free and has degree n. View T as acting on V = K^{n}. Find the (unique up to order) simple module decomposition W_{0} ⊕ ⋯ ⊕ W_{m} of V as a direct sum of simple K[T]-modules. Equivalently, find an invertible matrix A such that A^{−1}T A is a block direct sum of matrices T_{0}, …, T_{m} such that the minimal polynomial of each T_{i} is irreducible.

Remark 7.4.2. A natural generalization of Problem 7.4.1 to arbitrary matrices is to find the rational Jordan form of T. This form is like the usual Jordan form, but the summands corresponding to eigenvalues are replaced by certain matrices with minimal polynomials the minimal polynomials of the eigenvalues. The rational Jordan form was extensively studied by Geisbrecht in his Ph.D. thesis and many successive papers, where he carefully analyzes the complexity of his algorithms in terms of bit operations, and observes that the limiting step is factoring polynomials over K. The reason is that given a polynomial f ∈ K[x], one can easily write down a matrix T such that one can can read off the factorization of f from the rational Jordan form of T. See also Allan Steel’s related paper (A New Algorithm for the Computation of Canonical Forms of Matrices over Fields, J. Symbolic Computation (1997) 24, 409–432). The author would also like to thank Allan Steel for discussions related to this chapter.

7.4.1 Wiedemann’s Minimal Polynomial Algorithm

In this section we describe an algorithm due to Wiedemann for computing the minimal polynomial of an n × n matrix A over a field.

Choose a random vector v and compute the iterates

v_{0} = v, v_{1} = A(v), v_{2} = A^{2}(v), …, v_{2n−1} = A^{2n−1}(v).

If f = x^{m} + c_{m−1}x^{m−1} + ⋯ + c_{1}x + c_{0} is the minimal polynomial of A, then

A^{m} + c_{m−1}A^{m−1} + ⋯ + c_{0}I_{n} = 0,

where I_{n} is the n × n identity matrix. For any k ≥ 0, by multiplying both sides on the right by A^{k}v, we see that

A^{m+k}v + c_{m−1}A^{m−1+k}v + ⋯ + c_{0}A^{k}v = 0,

hence

v_{m+k} + c_{m−1}v_{m−1+k} + ⋯ + c_{0}v_{k} = 0, all k ≥ 0.

Wiedemann’s clever idea is to observe that any single component of the vectors v_{0}, …, v_{2n−1} satisfies a linear recurrence with coefficients 1, c_{m−1}, …, c_{0}. There is an algorithm (see Algorithm 7.4.4 below) called the Berlekamp-Massey algorithm (which was introduced in the 1960s in the context of coding theory) that finds the minimal polynomial of a linear recurrence sequence {a_{r}}. The minimal polynomial of this linear recurrence is by definition the unique monic polynomial g, such that if {a_{r}} satisfies a linear recurrence a_{j+k} + b_{j−1}a_{j−1+k} + ⋯ + b_{0}a_{k} = 0 (for all k ≥ 0), then g divides the polynomial x^{j} + ∑_{i=0}^{j−1} b_{i}x^{i}. In particular, if we apply Berlekamp-Massey to the top coordinates of the v_{i}, we obtain a polynomial g_{0}, which divides f. We then apply it to the second to the top coordinates and find a polynomial g_{1} that divides f, etc., Taking the least common multiple of the first few g_{i}, we find a divisor of the minimal polynomial of f. One can show that with “high probability” one quickly finds f, instead of just a proper divisor of f.

Remark 7.4.3. In the literature, techniques that involve iterating a vector are often called Krylov methods. The subspace generated by the iterates of a vector under a matrix is called a Krylov subspace.

In the context of decomposing spaces of modular forms, we will start with a matrix for which it is likely that the degree of the minimal polynomial f equals the number of rows of A.

Here’s the Berlekamp-Massey algorithm.

Algorithm 7.4.4 (Berlekamp-Massey). INPUT: The first 2n terms a_{0}, …, a_{2n−1} of a linear sequence that satisfies a linear recurrence of degree at most n. OUTPUT: The minimal polynomial f of the sequence.

1. Let R_{0} = x^{2n}, R_{1} = ∑_{i=0}^{2n−1} a_{i}x^{i}, V_{0} = 0, V_{1} = 1.

2. While deg(R_{1}) ≥ n do the following:

(a) Compute Q and R such that R_{0} = QR_{1} + R.

(b) Let (V_{0}, V_{1}, R_{0}, R_{1}) = (V_{1}, V_{0} − QV_{1}, R_{1}, R).

3. Let d = max(deg(V_{1}), 1 + deg(R_{1})) and set P = x^{d}V_{1}(1/x).

4. Let c be the leading coefficient of P and output f = P/c.

For a fresh viewpoint on Berlekamp-Massey and some ideas for improvement, see The Berlekamp-Massey Algorithm revisited by Atti, Diaz-Toca, and Lom-

bardi (see http://hlombardi.free.fr/publis/ABMAvar.html) (Note: I essen-

tially copied the above description of the Berlekamp-Massey algorithm from loc. cit.; my point is only to illustrate that the Berlekamp-Massey is basically just the Euclidean algorithm, i.e., it’s not something really complicated.)

Now suppose T is an n × n matrix as in Problem 7.4.1. We find the minimal polynomial of T by computing the minimal polynomial of T (mod ℘), using Wiedemann’s algorithm, for many primes ℘ and using the Chinese remainder theorem. (One has to bound the number of primes that must be considered; see, e.g., [Coh93].)

One can also compute the characteristic polynomial of T directly from the Hessenberg form of T, which can be computed in O(n^{4}) field operations, as described in [Coh93]. This is simple, but slow. Also, the T we consider will often be sparse, and Wiedemann is particularly good when T is sparse.

Example 7.4.5. We compute the minimal polynomial of the Hecke operator A = T_{2} on 𝕄_{2}(Γ_{0}(23))^{+} using Wiedemann’s algorithm. We have

A = ( \begin{matrix}3 & 0 & 0 \\ 0 & 0 & 2 \\ −1 & 1/2 & −1 \end{matrix} )

Let v = (1, 0, 0)^{t}. Then

v = (1, 0, 0)^{t}, Av = (3, 0, −1)^{t}, A^{2}v = (9, −2, −2)^{t},
A^{3}v = (27, −4, −8)^{t}, A^{4}v = (81, −16, −21)^{t}, A^{5}v = (243, −42, −68)^{t}.

The linear recurrence sequence coming from the first entries is

1, 3, 9, 27, 81, 243.

This sequence satisfies the linear recurrence

a_{k+1} − 3a_{k} = 0, all k > 0

so its minimal polynomial is x − 3. This implies that x − 3 divides the minimal polynomial of the matrix A. Next we use the sequence of second coordinates of the iterates of v, which is

0, 0, −2, −4, −16, −42.

The recurrence that this sequence satisfies is slightly less obvious, so we apply the Berlekamp-Massey algorithm to find it, with n = 3.

1. We have R_{0} = x^{6}, R_{1} = −42x^{5} − 16x^{4} − 4x^{3} − 2x^{2}, V_{0} = 0, V_{1} = 1.

2. (a) Dividing R_{0} by R_{1}, we find

R_{0} = R_{1} (−\frac{1}{42}x + \frac{4}{441}) + (\frac{22}{441}x^{4} − \frac{5}{441}x^{3} + \frac{8}{441}x^{2})

7.4. DECOMPOSING SPACES 97

(b) The new V_{0}, V_{1}, R_{0}, R_{1} are

V_{0} = 1
V_{1} = \frac{1}{42}x − \frac{4}{441}
R_{0} = −42x^{5} − 16x^{4} − 4x^{3} − 2x^{2}
R_{1} = \frac{22}{441}x^{4} − \frac{5}{441}x^{3} + \frac{8}{441}x^{2}

Since deg(R_{1}) ≥ n = 3, we have to do the above three steps again.

3. We repeat the preceeding three steps.

(a) Dividing R_{0} by R_{1}, we find

R_{0} = R_{1} (−\frac{9261}{11}x − \frac{123921}{242}) + (\frac{1323}{242}x^{3} + \frac{882}{121}x^{2})

(b) The new V_{0}, V_{1}, R_{0}, R_{1} are [I’m running out of \frac steam.]

V_{0} = 1/42x − 4/441
V_{1} = 441/22x^{2} + 2205/484x + 441/121
R_{0} = 22/441x^{4} − 5/441x^{3} + 8/441x^{2}
R_{1} = 1323/242x^{3} + 882/121x^{2}

4. Unfortunately we have to repeat the steps yet again. We get

V_{0} = 441/22x^{2} + 2205/484x + 441/121
V_{1} = −242/1323x^{3} + 968/3969x^{2} + 484/3969x − 242/3969
R_{0} = 1323/242x^{3} + 882/121x^{2}
R_{1} = 484/3969x^{2}

5. We have d = 3, so P = −242/3969x^{3}+484/3969x^{2}+968/3969x−242/1323.

6. Multiply through by −3969/242 and output

x^{3} − 2x^{2} − 4x + 3 = (x − 3)(x^{2} + x − 1).

The minimal polynomial of T_{2} is (x−3)(x^{2}+x−1), since the minimal polynomial has degree at most 3 and is divisible by (x − 3)(x^{2} + x − 1).

7.4.2 Polynomial Factorization

There is a new algorithm due to Hoeij, which has been refined by Belabas, Klüners, and Steel, for factoring polynomials over number fields (and more general global fields). It involves factoring modulo many primes, lifting p-adically, and cleverly using LLL to solve a certain “knapsack problem” that reduces the number of subsets of factors that need to be considered. We will say nothing more about it here, except that it is rumored to be “very fast”, and it is the algorithm to know about. [After a quick reading of Belebas, Hoeij, Klüners, and Steel, the O complexity is unclear to me.]

7.4.3 Decomposition Using Kernels

We now know enough to give an algorithm to solve Problem 7.4.1.

Algorithm 7.4.6 (Decomposition Using Kernels). INPUT: An n × n matrix T over a field K as in Problem 7.4.1. OUTPUT: Decomposition of V as a direct sum of simple K[T] modules.

1. [Minimal Polynomial] Compute the minimal polynomial f of T, e.g., using the multi-modular Wiedemann algorithm.

2. [Factorization] Factor f using the Belebas, Hoeij, Klüners, and Steel algorithm.

3. [Compute Kernels] For each irreducible factor g_{i} of f:

(a) Compute the matrix A_{i} = g_{i}(T). (This is difficult, and A will have huge coefficients.)

(b) Compute W_{i} = ker(A_{i}) using, e.g., a multi-modular kernel algorithm.

4. [Output Answer] Then V = ⊕W_{i}.

Remark 7.4.7. In the worst case, perhaps Step 2 is most difficult step. In practice Step 3 is very time consuming. As mentioned in Remark 7.4.2, if one can compute such decompositions V = ⊕W_{i}, then one can easily factor polynomials f, hence the difficulty of polynomial factorization is a lower bound on the complexity of writing V as a direct sum of simples.

7.4.4 Multi-Modular Decomposition Algorithm

The following algorithm is a modification of Algorithm 7.4.6, which improves upon the difficult Step 3.

Algorithm 7.4.8 (Decomposition Algorithm II). INPUT: An n × n matrix T over a field K as in Problem 7.4.1. OUTPUT: Decomposition of V as a direct sum of simple K[T] modules.

1. [Minimal Polynomial] Compute the minimal polynomial f of T, e.g., using the multi-modular Wiedemann algorithm.

2. [Factorization] Factor f = ∏ g_{i} using the Belebas, Hoeij, Klüners, and Steel algorithm.

3. [Cofactors] For each i, let h_{i} = f/g_{i}.

4. [Find Kernels] For several primes ℘ (how many?), compute reduced row echelon forms for basis of all the kernels \overline{W}_{i} = ker(g_{i}(\overline{T})) as follows:

(a) Choose a random vector v ∈ \overline{V}.

(b) Compute the iterates

v_{0} = v, v_{1} = \overline{T} v, …, v_{n−1} = \overline{T}^{n−1}v.

(c) For each i do the following:

i. Compute w = h_{i}(\overline{T})v ∈ ker(g_{i}(\overline{T})) by taking the linear combination of the v_{i} given by the coefficients of h_{i}.

ii. Generate a subspace of ker(g_{i}(\overline{T})) using w, \overline{T} w, …, \overline{T}^{i}w, keeping the subspace basis in Echelon form at each step. If this subspace does not equal the full ker(g_{i}(\overline{T})), repeat the above steps with another v, and add the resulting iterates of the new w to this subspace. Repeat this process until we obtain a basis for ker(g_{i}(\overline{T})), in reduced row echelon form.

5. [Lift] Using the Chinese remainder theorem and rational reconstruction, lift the \overline{W}_{i} to K-vector spaces W_{i} such that V = ⊕W_{i} is the desired decomposition. (WARNING: It is probably necessary to throw away “bad” primes, just as we did in the multi-modular echelon algorithm.)

100 CHAPTER 7. LINEAR ALGEBRA

Modular Symbols of any Weight and Level

In this chapter we explain how to generalize the notion of modular symbols from Chapter 3 to compute most classical modular forms.

Modular symbols are a formalism that make it fairly easy and elementary to compute with homology or cohomology related to certain Kuga-Sato varieties (these are E ×_{X} ⋯ ×_{X} E, where X is a modular curve and E is the univeral elliptic curve over it). It is not necessary to know anything about these Kuga-Sato varieties in order to compute with modular symbols.

This chapter is about spaces of modular symbols and how to compute with them. It is by far the most important chapter in this book. The algorithms that build on the theory in this chapter are central to all the computations we will do later in the book. We will start with the basics, in that the intended reader of this chapter is not assumed to have ever seen a modular symbol before.

Much of this chapter follows Loic Merel’s paper [Mer94] very closely. First we define modular symbols of weight k ≥ 2. Then we define the corresponding Manin symbols, and state a theorem of Merel-Shokurov, which gives all relations between Manin symbols. (The proof of the Merel-Shokurov theorem is beyond the scope of this book.) Next we describe how the Hecke operators act on both modular and Manin symbols, and how to compute trace and inclusion maps between spaces of modular symbols of different levels. We close the chapter with a discussion of computations with modular symbols over finite fields.

102 CHAPTER 8. MODULAR SYMBOLS OF ANY WEIGHT AND LEVEL

In this book we will view modular symbols primarily as a formalism that generates algorithms for computing with modular forms. I.e., we view modular symbols as modular forms for computers. However, modular symbols have also been used to prove theoretical results about modular forms. For example, certain technical calculations with modular symbols are used in Loic Merel’s proof of the uniform boundedness conjecture for torsion points on elliptic curves over number fields; modular symbols arise, e.g., in order to understand linear independence of Hecke operators. Another example is Grigor Grigorov’s in-progress Ph.D. thesis, which distills hypotheses about Kato’s Euler system in K_{2} of modular curves to a simple formula involving modular symbols (when the hypotheses are satisfied, one obtains a lower bound on the Shafarevich-Tate group of an elliptic curve).

8.1 Modular Symbols

We begin by defining a free abelian group 𝕄 of modular symbols, which you should think of as the homology of the extended upper half plane 𝔥^{∗} = 𝔥∪ℙ^{1}(ℚ) relative to the cusps. This is the free abelian group on symbols {α, β} with

α, β ∈ ℙ^{1}(ℚ) = ℚ ∪ {∞}

subject to the relations

{α, β} + {β, γ} + {γ, α} = 0,

for all α, β, γ ∈ ℙ^{1}(ℚ). More precisely, 𝕄 = (F/R)/(F/R)_{tor}, where F is the free abelian group on all pairs (α, β) and R is the subgroup generated by all elements of the form (α, β) + (β, γ) + (γ, α). Note that 𝕄 is a huge free abelian group of countable rank.

Remark 8.1.1 (Warning!). The {α, β} satisfy the relations {α, β} = −{β, α}, since {α, β} + {β, α} + {α, α} = 0. Thus the order matters. The notation {α, β} looks like the set containing two elements, which strongly (and incorrectly) suggests that the order does not matter. This is annoying, but it is the standard notation, and we will stick with it.

Now fix an integer k ≥ 2. Let ℤ_{k−2}[X, Y] be the abelian group of homogeneous polynomials of degree k − 2 in two variables X, Y (so ℤ_{k−2}[X, Y] is isomorphic to Sym^{k−2}(ℤ) as a group, but certain natural actions are different). Set

𝕄_{k} = ℤ_{k−2}[X, Y] ⊗_{ℤ} 𝕄,

which is a torsion-free abelian group whose elements are sums of expressions of the form X^{i}Y^{k−2−i} ⊗ {α, β}. For example,

X^{3} ⊗ {0, 1/2} − 17XY^{2} ⊗ {∞, 1/7} ∈ 𝕄_{5}.

Fix a finite index subgroup G of SL_{2}(ℤ). Define a left action of G on

ℤ_{k−2}[X, Y] as follows. If g = ( \begin{matrix}a & b \\ c & d \end{matrix} ) ∈ G and P (X, Y) ∈ ℤ_{k−2}[X, Y], let

(g.P)(X, Y) = P (dX − bY, −cX + aY).

Note that if we think of z = (X, Y) as a column vector, then

(g.P)(z) = P (g^{−1}z),

since g^{−1} = ( \begin{matrix}d & −b \\ −c & a \end{matrix} ), since det(g) = 1. The reason for the inverse is so that this is a left action instead of a right action, which is what function pre-composition always is. As further explanation, observe that if g, h ∈ G, then

((gh).P)(z) = P ((gh)^{−1}z) = P (h^{−1}g^{−1}z) = (h.P)(g^{−1}z) = (g.(h.P))(z).

Let G act on the left on 𝕄 by

g.{α, β} = {g(α), g(β)}.

Here G is acting via linear fractional transformations, so if g = ( \begin{matrix}a & b \\ c & d \end{matrix} ), then

g(α) = \frac{aα + b}{cα + d}.

For example, useful special cases to remember are that if g = ( \begin{matrix}a & b \\ c & d \end{matrix} ) then

g(0) = \frac{b}{d}  and  g(∞) = \frac{a}{c}.

We now combine these two actions to obtain a left action of G on 𝕄_{k−2}, which is given by

g.(P ⊗ {α, β}) = (g.P) ⊗ {g(α), g(β)}.

For example,

(\begin{matrix}1 & 2 \\ −2 & −3 \end{matrix}) .(X^{3} ⊗ \{0, 1/2\}) = (−3X − 2Y)^{3} ⊗ \{−\frac{2}{3}, −\frac{5}{8}\}

= (−27X^{3} − 54X^{2}Y − 36XY^{2} − 8Y^{3}) ⊗ \{−\frac{2}{3}, −\frac{5}{8}\} .

We will often write P (X, Y){α, β} for P (X, Y) ⊗ {α, β}.

Definition 8.1.2 (Modular Symbols). Let k ≥ 2 be an integer and let G be a finite index subgroup of SL_{2}(ℤ). The space 𝕄_{k}(G) of weight k modular symbols for G is the quotient of 𝕄_{k} by all relations g.x − x for x ∈ 𝕄_{k} and by any torsion.

Note that 𝕄_{k} is a torsion free abelian group, and it is a nontrivial fact that 𝕄_{k} has finite rank. We denote modular symbols for G in exactly the same way we denote elements of 𝕄_{k}, but with surrounding text that hopefully makes the group G clear. Thus X^{3}{0, 1/2} is an example element of 𝕄_{5}(Γ_{0}(8)), because I say so. In practice this does not cause confusion.

The space of modular symbols over a ring R is

𝕄_{k}(G, R) = 𝕄_{k}(G) ⊗_{ℤ} R.

In Section ?? we will discuss computing 𝕄_{k}(G, R) when R is a finite field.

8.2 Manin Symbols

At this point you are probably wondering how one could possibly ever program a computer to compute 𝕄_{k}(G) for any specific k and G. As defined above, 𝕄_{k}(G) is the quotient of one infinitely generated abelian group by another one. This section is about Manin symbols, which are simply a distinguished subset of the elements of 𝕄_{k}(G) that lead to a finite presentation for 𝕄_{k}(G). Also, it has emerged that formulas written in terms of Manin symbols are frequently much easier to compute using a computer than formulas in terms of modular symbols.

The Manin symbol associated to g ∈ SL_{2}(ℤ) and P ∈ ℤ_{k−2}[X, Y] is

[P, g] = g.(P {0, ∞}) ∈ 𝕄_{k}(G).

Notice that if Gg = Gh, then [P, g] = [P, h], since the symbol g.(P {0, ∞}) is invariant by the action of G on the left (by definition, since it is a modular symbols for G). Thus we can also write [P, Gg], and since G has finite index in SL_{2}(ℤ), the abelian group generated by Manin symbols is of finite rank, generated by

{[X^{k−2−i}Y^{i}, Gg_{j}] : i = 0, …, k − 2, and j = 0, …, r},

where g_{0}, …, g_{r} run through representatives for the right cosets G\ SL_{2}(ℤ).

The great thing about Manin symbols is that every modular symbols can be written as a ℤ-linear combination of them, so they generate all 𝕄_{k}(G). The proof of this fact is known as “Manin’s trick”.

Proposition 8.2.1. The Manin symbols generate 𝕄_{k}(G).

Proof. Suppose that we are given a modular symbol P {α, β} and wish to represent it as a sum of Manin symbols. Because

P {a/b, c/d} = P {a/b, 0} + P {0, c/d},

it suffices to write P {0, a/b} in terms of Manin symbols. Let

0 = \frac{p_{−2}}{q_{−2}} = \frac{0}{1}, \frac{p_{−1}}{q_{−1}} = \frac{1}{0}, \frac{p_{0}}{1} = \frac{p_{0}}{q_{0}} , \frac{p_{1}}{q_{1}} , \frac{p_{2}}{q_{2}} , …, \frac{p_{r}}{q_{r}} = \frac{a}{b}

denote the continued fraction convergents of the rational number a/b. Then

p_{j}q_{j−1} − p_{j−1}q_{j} = (−1)^{j−1} for − 1 ≤ j ≤ r.

If we let g_{j} = (\begin{matrix}(−1)^{j−1}p_{j} & p_{j−1} \\ (−1)^{j−1}q_{j} & q_{j−1} \end{matrix}), then g_{j} ∈ SL_{2}(ℤ) and

P \{0, a/b\} = P ∑_{j=−1}^{r} \{\frac{p_{j−1}}{q_{j−1}} , \frac{p_{j}}{q_{j}} \}

= ∑_{j=−1}^{r} g_{j}((g_{j}^{−1}P){0, ∞})

= ∑_{j=−1}^{r}[g_{j}^{−1}P, g_{j}].

Since g_{j} ∈ SL_{2}(ℤ) and P has integer coefficients, the polynomial g_{j}^{−1}P also has integer coefficients, so we introduce no denominators.

As is well known, the continued fraction expansion [c_{1}, c_{2}, …, c_{n}] of the rational number a/b can be computed using the Euclidean algorithm. The first term c_{1} is the “quotient”: a = bc_{1} + r, with 0 ≤ r < b. Let a′ = b, b′ = r and compute c_{2} as a′ = b′c_{2} + r′, etc., terminating when the remainder is 0. For example, the expansion of 5/13 is [0, 2, 1, 1, 2]. The numbers

d_{i} = c_{1} + \frac{1}{c_{2} + \frac{1}{c_{3} + ⋯}}

will then be the (finite) convergents. For example if a/b = 5/13, then the convergents are

0/1, 1/0, d_{1} = 0, d_{2} = \frac{1}{2}, d_{3} = \frac{1}{3}, d_{4} = \frac{2}{5}, d_{5} = \frac{5}{13}.

Remark 8.2.2. One can prove Proposition 8.2.1 inductively without introducing continued fractions, but that proof is essentially the same one used to prove the existence of continued fractions of integers. (I think I saw this in [MTT86], but I can’t seem to find the exact location in that paper right now.)

Now that we know the Manin symbols generate 𝕄_{k}(G), the next question is what are the relations between Manin symbols. Fortunately the answer is fairly simple (though the proof is not). Let

σ = (\begin{matrix}0 & −1 \\ 1 & 0 \end{matrix}) ,  τ = (\begin{matrix}0 & −1 \\ 1 & −1 \end{matrix}) ,  J = (\begin{matrix}−1 & 0 \\ 0 & −1 \end{matrix}) .

Define a right action of SL_{2}(ℤ) on Manin symbols as follows. If h ∈ SL_{2}(ℤ), let

[P, g].h = [h^{−1}.P, gh].

This is a right action because P.h = h^{−1}P is a right action, and right multiplication g ↦ gh is also a right action.

Theorem 8.2.3. If x is a Manin symbol, then

x + x.σ = 0  (8.2.1)
x + x.τ + x.τ^{2} = 0  (8.2.2)
x − x.J = 0.  (8.2.3)

Moreover, these are all the relations between Manin symbols, in the sense that the space 𝕄_{k}(G) of modular symbols is isomorphic to the quotient of the free abelian group on the finitely many symbols [X^{i}Y^{k−2−i}, Gg] (for i = 0, …, k − 2, and Gg ∈ G\ SL_{2}(ℤ)) by the above relations and any torsion.

Proof. We will only prove the easy “half” of the theorem here. The proof of the difficult half, i.e., that the above relations are all the relations is more complicated. Merel remarks in [Mer94, §1.3] that the quotient of Manin symbols by the above relations and torsion is isomorphic to a space of Šokurov symbols, which is in turn isomorphic to 𝕄_{k}(G). He cites [Šok80] for most of the proof. See also [Ste03] for an exposition of Manin’s proof from [Man72] when k = 2, which involves triangulating the Riemann surface G\𝔥.

For the proof of the easy half, i.e., that the expressions above are in fact relations, we follow Merel’s proof from [Mer94, §1.2]. Note that

σ(0) = σ^{2}(∞) = ∞  and  τ(1) = τ^{2}(0) = ∞.

Write x = [P, g], we have

[P, g] + [P, g].σ = [P, g] + [σ^{−1}.P, gσ]
= g.(P {0, ∞}) + gσ.(σ^{−1}.P {0, ∞})
= (g.P){g(0), g(∞)} + (gσ).(σ^{−1}.P){gσ(0), gσ(∞)}
= (g.P){g(0), g(∞)} + (g.P){g(∞), g(0)}
= (g.P)({g(0), g(∞)} + {g(∞), g(0)})
= 0.

Also,

[P, g] + [P, g].τ + [P, g].τ^{2} = [P, g] + [τ^{−1}.P, gτ] + [τ^{−2}.P, gτ^{2}]

= g.(P {0, ∞}) + gτ.(τ^{−1}.P {0, ∞}) + gτ^{2}.(τ^{−2}.P {0, ∞})

= (g.P){g(0), g(∞)} + (g.P){gτ(0), gτ(∞)}) + (g.P){gτ^{2}(0), τ^{2}(∞)}) = (g.P){g(0), g(∞)} + (g.P){g(1), g(0)}) + (g.P){g(∞), g(1)}) = (g.P)({g(0), g(∞)} + {g(∞), g(1)} + {g(1), g(0)}) = 0

Finally,

[P, g] + [P, g].J = g.(P {0, ∞}) − gJ.(J^{−1}P {gJ(0), gJ(∞)}
= (g.P){g(0), g(∞)} − (g.P){g(0), g(∞)}
= 0,

where we use that J acts trivially via linear fractional transformations.

If G is a finite-index subgroup and we have an algorithm to enumerate the right cosets G\ SL_{2}(ℤ), and to decide which coset an arbitrary element of SL_{2}(ℤ) belongs to, then Theorem 8.2.3 and the algorithms of Chapter 7 yield an algorithm to compute 𝕄_{k}(G, ℚ). We will defer further discussion about precise details of algorithms to compute modular symbols until Chapter ??). Note that if J ∈ G, then the relation x − x.J = 0 is automatic. Also note the matrices σ and τ do not commute, so one can not first quotient out by the two-term σ relations, then quotient out only the remaining free generators by the τ relations, and get the right answer in general.

8.2.1 Coset Representatives and Manin Symbols

Proposition 8.2.4. The right cosets Γ_{1}(N)\ SL_{2}(ℤ) are in bijection with pairs (c, d) where c, d ∈ ℤ/Nℤ and gcd(c, d, N) = 1. The coset containing a matrix ( \begin{matrix}a & b \\ c & d \end{matrix} ) corresponds (c, d).

Proof. This proof is copied from [Cre92, pg. 203], except in that paper Cremona works with the analogue of Γ_{1}(N) in PSL_{2}(ℤ), so his result is slightly different. Suppose γ_{i} = ( \begin{matrix}a_{i} & b_{i} \\ c_{i} & d_{i} \end{matrix} ) ∈ SL_{2}(ℤ), for i = 1, 2. We have

γ_{1}γ_{2}^{−1} = (\begin{matrix}a_{1} & b_{1} \\ c_{1} & d_{1} \end{matrix}) (\begin{matrix}d_{2} & −b_{2} \\ −c_{2} & a_{2} \end{matrix}) = (\begin{matrix}a_{1}d_{2} − b_{1}c_{2} & ∗ \\ c_{1}d_{2} − d_{1}c_{2} & a_{2}d_{1} − b_{2}c_{1} \end{matrix}) ,

which is in Γ_{1}(N) if and only if

c_{1}d_{2} − d_{1}c_{2} ≡ 0 (mod N)  (8.2.4)

and

a_{2}d_{1} − b_{2}c_{1} ≡ a_{1}d_{2} − b_{1}c_{2} ≡ 1 (mod N).  (8.2.5)

Since the γ_{i} have determinant 1, if (c_{1}, d_{1}) = (c_{2}, d_{2}) (mod N), then the congruences (8.2.4–8.2.5) hold. Conversely, if (8.2.4–8.2.5) hold, then

c_{2} ≡ a_{2}d_{1}c_{2} − b_{2}c_{1}c_{2}
≡ a_{2}d_{2}c_{1} − b_{2}c_{2}c_{1} since d_{1}c_{2} ≡ d_{2}c_{1} (mod N)
≡ c_{1} since a_{2}d_{2} − b_{2}c_{2} = 1,

and likewise

d_{2} ≡ a_{2}d_{1}d_{2} − b_{2}c_{1}d_{2} ≡ a_{2}d_{1}d_{2} − b_{2}d_{1}c_{2} ≡ d_{1} (mod N).

Thus we may view weight k Manin symbols for Γ_{1}(N) as triples of integers (i, c, d), where 0 ≤ i ≤ k − 2 and c, d ∈ ℤ/Nℤ with gcd(c, d, N) = 1. Here (i, c, d) corresponds to the Manin symbol [X^{i}Y^{k−2−i}, ( \begin{matrix}a & b \\ c′ & d′ \end{matrix} )], where c′ and d′ lift c, d. The relations of Theorem 8.2.3 become

(i, c, d) + (−1)^{i}(k − 2 − i, d, −c) = 0,

(i, c, d) + (−1)^{k−2} ∑_{j=0}^{k−2−i}(−1)^{j}\binom{k − 2 − i}{j}(j, d, −c − d)

+ (−1)^{k−2−i} ∑_{j=0}^{i}(−1)^{j}\binom{i}{j}(k − 2 − i + j, −c − d, c) = 0,
(i, c, d) − (−1)^{k−2}(i, −c, −d) = 0.

There is a similar description of cosets for Γ_{0}(N):

Proposition 8.2.5. The right cosets Γ_{0}(N)\ SL_{2}(ℤ) are in bijection with the elements of ℙ^{1}(ℤ/Nℤ). The coset containing a matrix ( \begin{matrix}a & b \\ c & d \end{matrix} ) corresponds to the point (c : d) ∈ ℙ^{1}(ℤ/Nℤ).

For a proof, see [Cre97a, §2.2].

8.2.2 Modular Symbols With Character

Suppose now that G = Γ_{1}(N) ⊂ SL_{2}(ℤ). Merel defines an action of diamond bracket operators ⟨d⟩, with gcd(d, N) = 1, on modular and Manin symbols. On Manin symbols the action is given by

⟨n⟩([P, (c, d)]) = [P, (nc, nd)] .

Let

ε : (ℤ/Nℤ)^{∗} → ℚ(ζ)^{∗}

be a Dirichlet character, where ζ is an nth root of unity and n is the order of ε. Let 𝕄_{k}(Γ_{1}(N), ε) be the quotient of 𝕄_{k}(Γ_{1}(N), ℤ[ζ]) by the relations (given in terms of Manin symbols)

⟨d⟩x − ε(d)x = 0,

for all x ∈ 𝕄_{k}(Γ_{1}(N), ℤ[ζ]), and by any torsion. Thus 𝕄_{k}(Γ_{1}(N), ε) is a torsion free ℤ[ε]-module.

Remark 8.2.6. I do not know whether or not 𝕄_{k}(Γ_{1}(N), ε) is necessarily free as a ℤ[ε]-module.

8.3 Hecke Operators

Just as for modular forms, there is a Hecke algebra 𝕋 = ℤ[T_{1}, T_{2}, …] of Hecke operators that act on 𝕄_{k}(Γ_{0}(N)). Let

R_{p} = \{(\begin{matrix}1 & r \\ 0 & p \end{matrix}) : r = 0, 1, …, p − 1\} ∪ \{(\begin{matrix}p & 0 \\ 0 & 1 \end{matrix})\} ,

where we omit ( \begin{matrix}p & 0 \\ 0 & 1 \end{matrix} ) if p | N. Then the Hecke operator T_{p} on 𝕄_{k}(Γ_{0}(N)) is given by

T_{p}(x) = ∑_{g∈R} g.x.

Notice when p ∤ N, that T_{p} is defined by summing over p + 1 matrices that correspond to the p + 1 sublattices of ℤ × ℤ if index p. This is exactly how we defined T_{p} on modular forms.

You might think at this point that we’ve just formally defined a computable abelian group, and defined operators formally on it that look something like the usual Hecke operators, but perhaps there’s no real connection. As it turns out, the ring generated by all the Hecke operators on modular symbols is commutative, and 𝕄_{k}(Γ_{1}(N), ℝ) is non-canonically isomorphic as a 𝕋-module to M_{k}(Γ_{1}(N)). Note that 𝕄_{k}(Γ_{1}(N), ℝ) is a real vector space and M_{k}(Γ_{1}(N)) is a complex vector space, so this should be viewed also as an isomorphism of ℝvector spaces. In fact there is an extra conjugation structure on 𝕄_{k}(Γ_{1}(N), ℝ), which we will discuss later.

8.3.1 General Definition of Hecke Operators

Let Γ be a finite index subgroup of SL_{2}(ℤ) and suppose

Δ ⊂ GL_{2}(ℚ)

is a set such that ΓΔ = ΔΓ = Δ and Γ\Δ is finite. For example, Δ = Γ trivially satisfies this condition. Also, if Γ = Γ_{1}(N), then for any positive integer n, the set

Δ_{n} = \{(\begin{matrix}a & b \\ c & d \end{matrix}) ∈ M_{2}(ℤ) : ad − bc = n, and (\begin{matrix}a & b \\ c & d \end{matrix}) ≡ (\begin{matrix}1 & ∗ \\ 0 & n \end{matrix}) (mod N)\}

also satisfies this condition, as we will now prove.

Lemma 8.3.1. We have

Γ_{1}(N) · Δ_{n} = Δ_{n} · Γ_{1}(N) = Δ_{n}

and

Δ_{n} = ⋃_{a,b} Γ_{1}(N) · σ_{a} (\begin{matrix}a & b \\ 0 & n/a \end{matrix}) ,

where σ_{a} ≡ ( \begin{matrix}1/a & 0 \\ 0 & a \end{matrix} ) (mod N), the union is disjoint and 1 ≤ a ≤ n with a | n, gcd(a, N) = 1, and 0 ≤ b < n/a. In particular, the set of cosets Γ_{1}(N)\Δ_{n} is finite.

Proof. If γ ∈ Γ_{1}(N) and δ ∈ Δ_{n}, then

(\begin{matrix}1 & ∗ \\ 0 & 1 \end{matrix}) · (\begin{matrix}1 & ∗ \\ 0 & n \end{matrix}) ≡ (\begin{matrix}1 & ∗ \\ 0 & n \end{matrix}) · (\begin{matrix}1 & ∗ \\ 0 & 1 \end{matrix}) ≡ (\begin{matrix}1 & ∗ \\ 0 & n \end{matrix}) (mod N).

Thus Γ_{1}(N)Δ_{n} ⊂ Δ_{n}, and since Γ_{1}(N) is a group Γ_{1}(N)Δ_{n} = Δ_{n}; likewise Δ_{n}Γ_{1}(N) = Δ_{n}.

For the coset decomposition, we first prove the statement for N = 1, i.e., for Γ_{1}(N) = SL_{2}(ℤ). If A is an arbitrary element of M_{2}(ℤ) with determinant n, then using row operators on the left with determinant 1, i.e., left multiplication by elements of SL_{2}(ℤ), we can transform A into the form ( \begin{matrix}a & b \\ 0 & n/a \end{matrix} ), with 1 ≤ a ≤ n and 0 ≤ b < n. (Just imagine applying the Euclidean algorithm to the two entries in the first column of A. Then a is the gcd of the two entries in the first column, and the lower left entry is 0. Next subtract n/a from b until 0 ≤ b < n/a.)

Next suppose N is arbitrary. Let g_{1}, …, g_{r} be such that

g_{1}Γ_{1}(N) ∪ ⋯ ∪ g_{r}Γ_{1}(N) = SL_{2}(ℤ)

is a disjoint union. If A ∈ Δ_{n} is arbitrary, then as we showed above, there is some γ ∈ SL_{2}(ℤ), so that γ · A = ( \begin{matrix}a & b \\ 0 & n/a \end{matrix} ), with 1 ≤ a ≤ n and 0 ≤ b < n/a, and a | n. Write γ = g_{i} · α, with α ∈ Γ_{1}(N). Then

α · A = g_{i}^{−1} · (\begin{matrix}a & b \\ 0 & n/a \end{matrix}) ≡ (\begin{matrix}1 & ∗ \\ 0 & n \end{matrix}) (mod N).

It follows that

g_{i}^{−1} ≡ (\begin{matrix}1 & ∗ \\ 0 & n \end{matrix}) · (\begin{matrix}a & b \\ 0 & n/a \end{matrix})^{−1} ≡ (\begin{matrix}1/a & ∗ \\ 0 & a \end{matrix}) (mod N).

Since ( \begin{matrix}1 & 1 \\ 0 & 1 \end{matrix} ) ∈ Γ_{1}(N) and gcd(a, N) = 1, there is γ′ ∈ Γ_{1}(N) such that

γ′g_{i}^{−1} ≡ (\begin{matrix}1/a & 0 \\ 0 & a \end{matrix}) (mod N).

We may then choose σ_{a} = γ′g_{i}^{−1}. Thus every A ∈ Δ_{n} is of the form γσ_{a} ( \begin{matrix}a & b \\ 0 & n/a \end{matrix} ), with γ ∈ Γ_{1}(N) and a, b suitably bounded. This proves the second claim.

Let any element δ = ( \begin{matrix}a & b \\ c & d \end{matrix} ) ∈ GL_{2}(ℚ) act on the left on modular symbols M_{k} by

δ(P {α, β}) = P (dX − bY, −cX + aY){δ(α), δ(β)}.

(Until now we had only defined an action of SL_{2}(ℤ) on modular symbols.) For

g = ( \begin{matrix}a & b \\ c & d \end{matrix} ) ∈ GL_{2}(ℚ), let

g̃ = (\begin{matrix}d & −b \\ −c & a \end{matrix}) = det(g) · g^{−1}.  (8.3.1)

Note that ˜ g̃ = g. Also, δ.P (X, Y) = (P ∘ g̃)(X, Y), where we set

g̃(X, Y) = (dX − bY, −cX + aY).

Suppose Γ and Δ are as above. Fix a finite set R of representatives for Γ\Δ. Let

T_{Δ} : M_{k}(Γ) → M_{k}(Γ)

be the linear map

T_{Δ}(x) = ∑_{δ∈R} δ · x,

This map is well defined because if γ ∈ Γ and x ∈ M_{k}(Γ), then

∑_{δ∈R} δγ · x = ∑_{certain δ′} γδ′ · x = ∑_{certain δ′} δ′ · x = ∑_{δ∈R} δ · x,

where we have used that ΔΓ = ΓΔ, and Γ acts trivially on M_{k}(Γ).

Let Γ = Γ_{1}(N) and Δ = Δ_{n}. Then the nth Hecke operator T_{n} is T_{Δ_{n}}, and by Lemma 8.3.1,

T_{n}(x) = ∑_{a,b} σ_{a} (\begin{matrix}a & b \\ 0 & n/a \end{matrix}) · x,

where a, b are as in Lemma 8.3.1.

Given this definition, we can compute the Hecke operators on M_{k}(Γ_{1}(N)) as follows. Write x as a modular symbol P {α, β}, compute T_{n}(x) as a modular symbol, then convert back to Manin symbols using (many!) continued fractions expansions. This is extremely inefficient, and fortunately Loïc Merel found a much better way, which we now describe (see also [Mer94] and also [Maz73]).

8.3.2 Hecke Operators on Manin Symbols

If S is a subset of GL_{2}(ℚ), let

S̃ = {g̃ : g ∈ S}.

Also, for any ring R and any subset S ⊂ M_{2}(ℤ), let R[S] denote the free Rmodule with basis the elements of S, so the elements of R[S] are the finite R-linear combinations of the elements of S.

One of the main theorems of [Mer94] is that for any Γ, Δ as above, if one can find ∑ u_{M}M ∈ ℂ[M_{2}(ℤ)] and a map

ϕ : Δ̃ SL_{2}(ℤ) → SL_{2}(ℤ)

that satisfies a complicated list of conditions, then for any Manin symbol [P, g] ∈ M_{k}(Γ), we have

T_{Δ}([P, g]) = ∑_{gM∈Δ̃ SL_{2}(ℤ) with M∈SL_{2}(ℤ)} u_{M}[M̃ · P, ϕ(gM)].

Merel devotes substantial work to giving examples of ϕ and ∑ u_{M}M ∈ ℂ[M_{2}(ℤ)] that satisfy all his conditions.

When Γ = Γ_{1}(N), the complicated list of conditions becomes simpler. Let M_{2}(ℤ)_{n} be the set of 2 × 2 matrices with determinant n. An element

h = ∑ u_{M}[M] ∈ ℂ[M_{2}(ℤ)_{n}]

satisfies condition C_{n} if for every K ∈ M_{2}(ℤ)_{n}/ SL_{2}(ℤ), we have that

∑_{M∈K} u_{M}([M∞] − [M0]) = [∞] − [0] ∈ ℂ[P^{1}(ℚ)].  (8.3.2)

If h satisfies condition C_{n}, then for any Manin symbol [P, g] ∈ M_{k}(Γ_{1}(N)), Merel proves that

T_{n}([P, (u, v)]) = ∑_{M} u_{M}[P (aX + bY, cX + dY), (u, v)M].  (8.3.3)

Here (u, v) ∈ (ℤ/Nℤ)^{2} corresponds to a coset of Γ_{1}(N) in SL_{2}(ℤ), as in Proposition 8.2.4, and if (u′, v′) = (u, v)M ∈ (ℤ/Nℤ)^{2}, and gcd(u′, v′, N) ≠ 1, then we omit the corresponding summand.

For example, we will now check directly that the element

h_{2} = [(\begin{matrix}2 & 0 \\ 0 & 1 \end{matrix})] + [(\begin{matrix}1 & 0 \\ 0 & 2 \end{matrix})] + [(\begin{matrix}2 & 1 \\ 0 & 1 \end{matrix})] + [(\begin{matrix}1 & 0 \\ 1 & 2 \end{matrix})]

satisfies condition C_{2}. We have, as in the proof of Lemma 8.3.1, but using elementary column operations, that

M_{2}(ℤ)_{2}/ SL_{2}(ℤ) = \{(\begin{matrix}a & 0 \\ b & 2/a \end{matrix}) SL_{2}(ℤ) : a = 1, 2 and 0 ≤ b < 2/a\}

= \{(\begin{matrix}1 & 0 \\ 0 & 2 \end{matrix}) SL_{2}(ℤ), (\begin{matrix}1 & 0 \\ 1 & 2 \end{matrix}) SL_{2}(ℤ), (\begin{matrix}2 & 0 \\ 0 & 1 \end{matrix}) SL_{2}(ℤ)\} .

To verify condition C_{2}, we consider each of the three elements of M_{2}(ℤ)_{2}/ SL_{2}(ℤ) and check that (8.3.2) holds. We have that

(\begin{matrix}1 & 0 \\ 0 & 2 \end{matrix}) ∈ (\begin{matrix}1 & 0 \\ 0 & 2 \end{matrix}) SL_{2}(ℤ),

(\begin{matrix}2 & 1 \\ 0 & 1 \end{matrix}) , (\begin{matrix}1 & 0 \\ 1 & 2 \end{matrix}) ∈ (\begin{matrix}1 & 0 \\ 1 & 2 \end{matrix}) SL_{2}(ℤ),

and

(\begin{matrix}2 & 0 \\ 0 & 1 \end{matrix}) ∈ (\begin{matrix}2 & 0 \\ 0 & 1 \end{matrix}) SL_{2}(ℤ).

Thus if K = ( \begin{matrix}1 & 0 \\ 0 & 2 \end{matrix} ) SL_{2}(ℤ), the left sum of (8.3.2) is [( \begin{matrix}1 & 0 \\ 0 & 2 \end{matrix} ) (∞)] − [( \begin{matrix}1 & 0 \\ 0 & 2 \end{matrix} ) (0)] = [∞] − [0], as required. If K = ( \begin{matrix}1 & 0 \\ 1 & 2 \end{matrix} ) SL_{2}(ℤ), then the left side of (8.3.2) is

[( \begin{matrix}2 & 1 \\ 0 & 1 \end{matrix} ) (∞)]−[( \begin{matrix}2 & 1 \\ 0 & 1 \end{matrix} ) (0)]+[( \begin{matrix}1 & 0 \\ 1 & 2 \end{matrix} ) (∞)]−[( \begin{matrix}1 & 0 \\ 1 & 2 \end{matrix} ) (0)] = [∞]−[1]+[1]−[0] = [∞]−[0].

Finally, for K = ( \begin{matrix}2 & 0 \\ 0 & 1 \end{matrix} ) SL_{2}(ℤ) we also have [( \begin{matrix}2 & 0 \\ 0 & 1 \end{matrix} ) (∞)] − [( \begin{matrix}2 & 0 \\ 0 & 1 \end{matrix} ) (0)] = [∞] − [0], as required. Thus by (8.3.3) we can compute T_{2} on any Manin symbol, by summing over the action of the four matrices ( \begin{matrix}2 & 0 \\ 0 & 1 \end{matrix} ) , ( \begin{matrix}1 & 0 \\ 0 & 2 \end{matrix} ) , ( \begin{matrix}2 & 1 \\ 0 & 1 \end{matrix} ) , ( \begin{matrix}1 & 0 \\ 1 & 2 \end{matrix} ).

Proposition 8.3.2 (Merel). The element

∑_{\begin{matrix}a>b≥0 \\ d>c≥0 \\ ad−bc=n \end{matrix}} [(\begin{matrix}a & b \\ c & d \end{matrix})] ∈ ℤ[M_{2}(ℤ)_{n}]

satisfies condition C_{n}.

Merel’s proof isn’t too difficult, but takes two pages.

Remark 8.3.3. In [Cre97a, §2.4], Cremona discusses the work of Merel and Mazur on Heilbronn matrices in the special cases Γ = Γ_{0}(N) and weight 2. He gives a fairly simple proof that the action of T_{p} on Manin symbols can be computed by summing the action of some set R_{p} of matrices of determinant p. He then describes the set R_{p}, and gives an efficient continued fractions algorithm for computing it (but he does not seem to prove that his description of R_{p} is correct). (Note: My experience is that Cremona’s set R_{p} is significantly smaller than the sets appearing in Merel’s paper, but when I’ve tried to use R_{p} to do certain more general higher-weight computations that are correct using Merel’s sets, they do not work.)

8.3.3 Remarks on Complexity

Merel also gives another family S_{n} of matrices that satisfy condition C_{n}, and he proves that as n → ∞,

#S_{n} ∼ \frac{12 log(2)}{π^{2}} · σ_{1}(n) log(n),

where σ_{1}(n) is the sum of the divisors of n. Thus for a fixed space M_{k}(Γ) of modular symbols, one can compute the Hecke operator T_{n} using O(σ_{1}(n) log(n)) arithmetic operations in the base field. Note that we’ve fixed M_{k}(Γ), so we ignore the linear algebra involved in computation of a presentation; also, adding elements takes a bounded number of field operations when the space is fixed. Thus using Manin symbols the complexity of computing T_{p}, for p prime, is O((p + 1) log(p)) field operations, which is exponential in the number of digits of p.

There is a trick of Basmaji (see [Bas96]) for computing a matrix of T_{n} on 𝕄_{k}(Γ), when n is very large, and it is more efficient than one might naively expect. Basmaji’s trick doesn’t improve the big-oh complexity for a fixed space, but does improve the complexity by a constant factor of the dimension of 𝕄_{k}(Γ, ℚ). Suppose we are interested in computing the matrix for T_{n} for some massive integer n, and that 𝕄_{k}(Γ, ℚ) as has fairly large dimension. The trick is as follows. Choose, a list

x_{1} = [P_{1}, g_{1}], …, x_{r} = [P_{r}, g_{r}] ∈ V = 𝕄_{k}(Γ, ℚ)

of Manin symbols such that the map Ψ : 𝕋 → V^{r} given by

t ↦ (tx_{1}, …, tx_{r})

is injective. In practice, it is often possible to do this with r “very small”. Also, we emphasize that V^{r} is a ℚ-vector space of dimension r · dim(V).

Next find Hecke operators T_{i}, with i small, whose images form a basis for the image of Ψ. Now with the above data precomputed, which only required working with Hecke operators T_{i} for small i, we are ready to compute T_{n} with n huge. Compute y_{i} = T_{n}(x_{i}), for each i = 1, …, r, which we can compute using Heilbronn matrices since each x_{i} = [P_{i}, g_{i}] is a Manin symbol. We thus obtain Ψ(T_{n}) ∈ V^{r}. Since we have precomputed Hecke operators T_{j} such that Ψ(T_{j}) generate V^{r}, we can find a_{j} such that ∑ a_{j}Ψ(T_{j}) = Ψ(T_{n}). Then since Ψ is injective, we have T_{n} = ∑ a_{j}T_{j}, which gives the full matrix of T_{n} on M_{k}(Γ, ℚ).

8.4 Cuspidal Modular Symbols

Let 𝔹 be the free abelian group on symbols {α}, for α ∈ ℙ^{1}(ℚ), and set

𝔹_{k} = ℤ_{k−2}[X, Y] ⊗ 𝔹.

Define a left action of SL_{2}(ℤ) on 𝔹_{k} by

g.(P {α}) = (g.P){g(α)},

for g ∈ SL_{2}(ℤ). For any finite index subgroup Γ ⊂ SL_{2}(ℤ), let 𝔹_{k}(Γ) be the quotient of 𝔹_{k} by the relations x − g.x for all g ∈ Γ and by any torsion. Thus 𝔹_{k}(Γ) is a torsion free abelian group.

The boundary map is the map

b : 𝕄_{k}(Γ) → 𝔹_{k}(Γ)

given by extending the map

b(P {α, β}) = P {β} − P {α}

linearly. The space 𝕊_{k}(Γ) of cuspidal modular symbols is the kernel

𝕊_{k}(Γ) = ker(𝕄_{k}(Γ) → 𝔹_{k}(Γ)),

so we have an exact sequence

0 → 𝕊_{k}(Γ) → 𝕄_{k}(Γ) → 𝔹_{k}(Γ).

One can prove that when k > 2 then this sequence is exact on the right. Also, there is a presentation of 𝔹_{k}(Γ) in terms of “boundary Manin symbols”. [[TODO: Add this later to the book. It is crucial to add this, since this is something nontrivial that I have in my thesis, and it’s very important to know when implementing.]]

8.5. THE PAIRING BETWEEN MODULAR SYMBOLS AND MODULAR FORMS115

8.5 The Pairing Between Modular Symbols and Modular Forms

In this section we define a pairing between modular symbols and modular forms, and prove that the Hecke operators respect this pairing. We also define an involution on modular symbols, and study its relationship with the pairing. This pairing is crucial in much that follows, because it gives rise to period maps from modular symbols to certain complex vector spaces.

Fix an integer weight k ≥ 2 and a finite-index subgroup Γ of SL_{2}(ℤ). Let M_{k}(Γ) denote the space of holomorphic modular forms of weight k for Γ, and S_{k}(Γ) its cuspidal subspace. Following [Mer94, §1.5], let

\overline{S}_{k}(Γ) = \{\overline{f} : f ∈ S_{k}(Γ)\}

denote the space of antiholomorphic cuspforms. Here \overline{f} is the function on 𝔥^{∗} given by \overline{f}(z) = \overline{f(z)}.

Define a pairing

(S_{k}(Γ) ⊕ \overline{S}_{k}(Γ)) × 𝕄_{k}(Γ) → ℂ  (8.5.1)

by

⟨(f_{1}, f_{2}), P \{α, β\}⟩ = ∫_{α}^{β} f_{1}(z)P (z, 1)dz + ∫_{α}^{β} f_{2}(z)P (\overline{z}, 1)d\overline{z},

and extending linearly. Here the integral is a complex path integral along a great circle (or vertical line) from α to β (so, e.g., write z(t) = x(t) + iy(t), where (x(t), y(t)) traces out the path, and consider two real integrals; see any introductory book on complex analysis for more details).

The integration pairing is well defined, which means that if we replace P {α, β} by an equivalent modular symbols (equivalent modulo the left action of Γ), then the integral is the same. This follows from the change of variables formulas for integration and the fact that f_{1} ∈ S_{k}(Γ) and f_{2} ∈ \overline{S}_{k}(Γ). For example, if k = 2, g ∈ Γ and f ∈ S_{k}(Γ), then

⟨f, g{α, β}⟩ = ⟨f, {g(α), g(β)}⟩
= ∫_{g(α)}^{g(β)} f(z)dz

= ∫_{α}^{β} f(g(z))dg(z)
= ∫_{α}^{β} f(z)dz = ⟨f, {α, β}⟩,

where in the last step we use that f is a weight 2 modular form.

Remark 8.5.1. The integration pairing is related to special values of L-functions. The L-function attached to a cusp form f = ∑ a_{n}q^{n} ∈ S_{k}(Γ_{1}(N)) is

L(f, s) = (2π)^{s}Γ(s)^{−1} ∫_{0}^{∞} f(it)t^{s} \frac{dt}{t}  (8.5.2)

Note that one can show that L(f, s) = ∑_{n=1}^{∞} \frac{a_{n}}{n^{s}} by switching the order of summation and integration, which is justified using standard estimates on |a_{n}| (see, e.g., [Kna92, §VIII.5]).

For each integer j with 1 ≤ j ≤ k − 1, we have setting s = j and making the change of variables t ↦ −it in (8.5.2), that

L(f, j) = \frac{(−2πi)^{j}}{(j − 1)!} · ⟨f, X^{j−1}Y^{k−2−(j−1)}\{0, ∞\}⟩ .  (8.5.3)

The integers j as above are called critical integers, and when f is an eigenform, they have deep conjectural significance. We will discuss tricks to efficiently compute L(f, j) later in this book.

Theorem 8.5.2 (Shokoruv). The pairing ⟨· , ·⟩ is nondegenerate when restricted to cuspidal modular symbols:

⟨· , ·⟩ : (S_{k}(Γ) ⊕ \overline{S}_{k}(Γ)) × 𝕊_{k}(Γ) → ℂ.

The pairing is also compatible with Hecke operators. Before proving this, we define an action of Hecke operators on M_{k}(Γ_{1}(N)) and on \overline{S}_{k}(Γ_{1}(N)). The definition is very similar to the one we gave in Section 2.4 for modular forms of level 1. For a positive integer n, let R_{n} be a set of coset representatives for Γ_{1}(N)\Δ_{n} from Lemma 8.3.1. For any γ = ( \begin{matrix}a & b \\ c & d \end{matrix} ) ∈ GL_{2}(ℚ) and f ∈ M_{k}(Γ_{1}(N)) set

f|[γ]_{k} = det(γ)^{k−1}(cz + d)^{−k}f(γ(z)).

Also, for f ∈ \overline{S}_{k}(Γ_{1}(N)), set

f|[γ]′_{k} = det(γ)^{k−1}(c\overline{z} + d)^{−k}f(γ(z)).

Then for f ∈ M_{k}(Γ_{1}(N)),

T_{n}(f) = ∑_{γ∈R_{n}} f|[γ]_{k}

and for f ∈ \overline{S}_{k}(Γ_{1}(N)),

T_{n}(f) = ∑_{γ∈R_{n}} f|[γ]′_{k}.

This agrees with the definition from 2.4 when N = 1.

Remark 8.5.3. If Γ is an arbitrary finite index subgroup of SL_{2}(ℤ), then we can define operators T_{Δ} on M_{k}(Γ) for any Δ with ΔΓ = ΓΔ = Δ and Γ\Δ finite. For concreteness we do not do the general case here or in the theorem below, but the proof is exactly the same (see [Mer94, §1.5]).

Finally we prove the promised Hecke compatibility of the pairing. This proof should convince you that the definition of modular symbols is sensible, in that they are “natural” expressions to integrate against modular forms.

Theorem 8.5.4. If f = (f_{1}, f_{2}) ∈ S_{k}(Γ_{1}(N))⊕\overline{S}_{k}(Γ_{1}(N)) and x ∈ 𝕄_{k}(Γ_{1}(N)), then for any n,

⟨T_{n}(f), x⟩ = ⟨f, T_{n}(x)⟩.

Proof. We exactly follow [Mer94, §2.1], and will only prove the theorem when f = f_{1} ∈ S_{k}(Γ_{1}(N)), the proof in the general case being the same.

Let α, β ∈ ℙ^{1}(ℚ), P ∈ ℤ_{k−2}[X, Y], and for g = ( \begin{matrix}a & b \\ c & d \end{matrix} ) ∈ GL_{2}(ℚ), set j(g, z) =

(cz+d). Let n be any positive integer, and let R_{n} be a set of coset representatives for Γ_{1}(N)\Δ_{n} from Lemma 8.3.1.

We have

⟨T_{n}(f), P {α, β}⟩ = ∫_{α}^{β} T_{n}(f)P (z, 1)dz

= ∑_{δ∈R} ∫_{α}^{β} det(δ)^{k−1}f(δ(z))j(δ, z)^{−k}P (z, 1)dz.

Now for each summand corresponding to the δ ∈ R, make the change of variables u = δz. Thus we make #R change of variables. Also, recall the notation from (8.3.1), which we will use below.

⟨T_{n}(f), P {α, β}⟩ = ∑_{δ∈R} ∫_{δ(α)}^{δ(β)} det(δ)^{k−1}f(u)j(δ, δ^{−1}(u))^{−k}P (δ^{−1}(u), 1)d(δ^{−1}(u))

= ∑_{δ∈R} ∫_{δ(α)}^{δ(β)} det(δ)^{k−1}f(u)j(δ̃, u)^{k} det(δ)^{−k}P (δ̃(u), 1)\frac{det(δ)du}{j(δ̃, u)^{2}}

= ∑_{δ∈R} ∫_{δ(α)}^{δ(β)} f(u)j(δ̃, u)^{k−2}P (δ̃(u), 1)du

= ∑_{δ∈R} ∫_{δ(α)}^{δ(β)} f(u) · ((δ.P)(u, 1))du

= ⟨f, T_{n}(P {α, β})⟩.

The second equality is the trickiest. First, note that δ^{−1}(u) = δ̃(u), since a linear fractional transformation is unchanged by a nonzero rescaling of a matrix that induces it. Thus by the quotient rule, using that δ̃ has determinant det(δ), we see that

d(δ^{−1}(u)) = \frac{det(δ)du}{j(δ̃, u)^{2}}.

The other part of the second equality asserts that

j(δ, δ^{−1}(u))^{−k}P (δ^{−1}(u), 1) = j(δ̃, u)^{k} det(δ)^{−k}P (δ̃(u), 1).  (8.5.4)

From the definitions, and again using that δ^{−1}(u) = δ̃(u), we see that

j(δ, δ^{−1}(u)) = \frac{det(δ)}{j(δ̃, u)},

which proves that (8.5.4) holds. In the third equality, we use that

(δ.P)(u, 1) = j(δ̃, u)^{k−2}P (δ̃(u), 1).

To see this, note that P (X, Y) = P (X/Y, 1) · Y^{k−2}. Using this we see that

(δ.P)(X, Y) = (P ∘ δ̃)(X, Y)

= P (δ̃(\frac{X}{Y} ) , 1) · (−c · \frac{X}{Y} + a)^{k−2} · Y^{k−2}.

Now substituting (u, 1) for (X, 1), we see that

(δ.P)(u, 1) = P (δ̃(u), 1) · (−cu + a)^{k−2},

as required.

Remark 8.5.5. The theorem is true more generally for any Γ and any operator T_{Δ}, via the same proof.

Suppose that Γ is finite index subgroup of SL_{2}(ℤ) such that if η = ( \begin{matrix}−1 & 0 \\ 0 & 1 \end{matrix} ), then

ηΓη = Γ.

For example, Γ = Γ_{1}(N) satisfies this condition. There is an involution ι^{∗} on 𝕄_{k}(Γ) given by

ι^{∗}(P (X, Y){α, β}) = −P (X, −Y){−α, −β},  (8.5.5)

which we call the star involution. On Manin symbols, ι^{∗} it is

ι^{∗}[P, (u, v)] = −[P (−X, Y), (−u, v)].

Let 𝕊_{k}(Γ)^{+} be the +1 eigenspace for ι^{∗} and 𝕊_{k}(Γ)^{−} the −1 eigenspace. There is also a map ι on modular forms, which is adjoint to ι^{∗}.

Remark 8.5.6 (WARNING). Notice the − sign in front of −P (X, −Y){−α, −β} in (8.5.5). This sign is missing in [Cre97a], which confused me. Thus the +1 quotient in MAGMA is the quotient where η acts as −1. (This is a mistake.)

We now state the final result about the pairing, which explains how modular symbols and modular forms are related.

Theorem 8.5.7. The pairing ⟨· , ·⟩ restricts to give nondegenerate Hecke compatible bilinear pairings

𝕊_{k}(Γ)^{+} × S_{k}(Γ) → ℂ  and  𝕊_{k}(Γ)^{−} × \overline{S}_{k}(Γ) → ℂ.

In light of the Peterson inner product, the above theorem implies that there is a canonical isomorphism of 𝕋′-modules

𝕊_{k}(Γ, ℂ)^{+} ≅ S_{k}(Γ),

where 𝕋′ is the anemic Hecke algebra, i.e., the subring of 𝕋 generated by Hecke operators T_{n} with gcd(n, N) = 1. In fact, one can prove, e.g., using Eichler-Shimura cohomology, that there is a non-canonical isomorphism over the full Hecke algebra

𝕄_{k}(Γ, ℂ) ≅ M_{k}(Γ) ⊕ \overline{S}_{k}(Γ).

8.6. EXPLICITLY COMPUTING 𝕄_{K}(Γ_{0}(N) 119

8.6 Explicitly Computing 𝕄_{k}(Γ_{0}(N)

In this section we explicitly compute 𝕄_{k}(Γ_{0}(N)) for various k and N. We represent Manin symbols for Γ_{0}(N) as triples (i, u, v), where (u, v) ∈ ℙ^{1}(ℤ/Nℤ), and (i, u, v) corresponds to [X^{i}Y^{k−2−i}, (u, v)] in the usual notation. Also, recall that (u, v) corresponds to the right coset in Γ_{0}(N)\ SL_{2}(ℤ) that contains a matrix ( \begin{matrix}a & b \\ c & d \end{matrix} ) with (u, v) ≡ (c, d) as elements of ℙ^{1}(ℤ/Nℤ), i.e., up to rescaling by an element of (ℤ/Nℤ)^{∗}.

8.6.1 Computing ℙ^{1}(ℤ/Nℤ)

In this section we give an algorithm to compute a canonical representative for each element of ℙ^{1}(ℤ/Nℤ). This algorithm is extremely important because modular symbols implementations call a huge number of times. A more naive approach would be to store all pairs (u, v) ∈ (ℤ/Nℤ)^{2}, and a fixed reduced representative, but this wastes a huge amount of memory. For example, if N = 10^{5}, we would have to store an array of

(10^{5} · 10^{5})/10^{6} = 10000 million integers,

which is many terabytes.

Another approach to enumerating ℙ^{1}(ℤ/Nℤ) is described at the end of [Cre97a, §2.2]. We use that it is easy to test whether two pairs (u_{0}, v_{0}), (u_{1}, v_{1}) define the same element of ℙ^{1}(ℤ/Nℤ); they do if and only if we have equality of cross terms u_{0}v_{1} = v_{0}u_{1} (mod N) (see [Cre97a, Prop. 2.2.1]). So we list elements (1, a) for a = 0, 1, …, N − 1, then elements (d, a) for d | N and a = 1, …, N − 1, but checking each time we add a new element to our list whether we have already seen it. Unfortunately, given a random pair (u, v), which is something we encounter very frequently in practice, we have to compare (u, v) with each element of the list to find our chosen equivalent representative in ℙ^{1}(ℤ/Nℤ). This is very expensive, since it requires a linear search through the list, hence takes time at least O(n), where n is the number of elements of ℙ^{1}(ℤ/Nℤ). To get around this Cremona says he “used a simple ’hashing’ system, so that given any particular symbole (c, d) we could quickly determine to which symbol in our standard list it is equivalent.” (He doesn’t say what hashing system he uses.)

Instead of either of the above methods, we use the following algorithm, which finds a canonical representative for each element of ℙ^{1}(ℤ/Nℤ). With this algorithm in hand, given an arbitrary (u, v), we first find the canonical equivalent elements (u′, v′), then search a sorted lists of all canonical pairs, which takes time O(log(n)), where n = #ℙ^{1}(ℤ/Nℤ).

Algorithm 8.6.1 (Reduce). INPUT: Integers u and v, and a positive integer N. OUTPUT: If possible, this algorithm outputs a pair u_{0}, v_{0} such that (u, v) ≡ (u_{0}, v_{0}) as elements of ℙ^{1}(ℤ/Nℤ) and s ∈ ℤ such that (u, v) = (su_{0}, sv_{0}) (mod ℤ/nℤ). Moreover, the element (u_{0}, v_{0}) does not depend on the class of (u, v), i.e., for any s with gcd(N, s) = 1 the input (su, sv) also outputs (u_{0}, v_{0}). If (u, v) is not in ℙ^{1}(ℤ/Nℤ), this algorithm outputs (0, 0), 0.

THE ALGORITHM: In the following algorithm, a%N denotes the residue of a modulo N that satisfies 0 ≤ a < N.

1. Reduce both u and v modulo N:

          u = u % N;   v = v % N

2. Deal with the easy special case when u = 0, using that (0, v) ∈ ℙ^{1}(ℤ/Nℤ) if and only if gcd(v, N) = 1:

          if u == 0:
              u0 = 0
              if gcd(v,N) == 1:
                  v0 = 1
              else:
                  v0 = 0
              s = v
              return (u0,v0), s

3. Compute g = gcd(u, N) and s, t ∈ ℤ such that g = su + tN:

          g, s, t = XGCD(u, N)
          s = s % N

4. We have gcd(u, v, N) = gcd(g, v), so if gcd(g, v) > 1, then (u, v) ∉ ℙ^{1}(ℤ/Nℤ).

          if gcd(g, v) != 1:
              return (0,0), 0

5. Now g = su + tN, so we may think of s as “pseudo-inverse” of u (mod N), in the sense that su is as close as possible to being 1 modulo N. Note that since g | u, changing s modulo N/g does not change su (mod N). We can adjust s modulo N/g so it is coprime to N. (This is because 1 = su/g+tN/g, so s is a unit mod N/g, and the map (ℤ/Nℤ)^{∗} → (ℤ/(N/g)ℤ)^{∗} is surjective, e.g., as we saw in the proof of Algorithm 4.6.1.)

          if g != 1:
              d = N/g
              while gcd(s,N) != 1:
                  s = (s+d) % N

6. Multiply (u, v) by s, replacing (u, v) by the equivalent element (g, sv) of ℙ^{1}(ℤ/Nℤ).

          {u = g \atop v = (s*v) % N}

7. Next we find the unique pair (g, v′) equivalent to (g, v) that minimizes v. To do this, we note that if 1 ≠ t ∈ (ℤ/Nℤ)^{∗} and tg ≡ g (mod N), then (t − 1)g ≡ 0 (mod N), so t − 1 = kN/g for some k with 1 ≤ k ≤ g − 1. Then for t = 1+kN/g coprime to N, we have (gt, vt) = (g, v+kvN/g). The following part of the algorithm computes all (g, v + kvN/g) pairs and picks out the one that minimizes the least nonnegative residue of vt modulo N:

          min_v = v; min_t = 1
          if g != 1:
              Ng = N/g
              vNg = (v*Ng) % N
              t = 1
              for k in xrange(1,g):     # for k satisfying 1<=k<g.
                  v = (v + vNg) % N
                  t = (t + Ng) % N
                  if v < min_v and gcd(t,N) == 1:
                      min_v = v; min_t = t
          s = s * min_t

8. The s that we have computed in the above steps multiples the input (u, v) to give the output (u_{0}, v_{0}). Thus we have to invert it, since the output scalar is supposed to multiply (u_{0}, v_{0}) to give (u, v).

          s = inverse_mod(s, N)
          return (u,min_v), s

Remark 8.6.2. Allan Steel and the author jointly came up with Algorithm 8.6.1.

Remark 8.6.3. There might be an even better algorithm that uses that

ℙ^{1}(ℤ/Nℤ) ≅ ∏_{p|N} ℙ^{1}(ℤ/p^{ν_{p}}ℤ).

This would also use that it is relatively easy to enumerate the elements of ℙ^{1}(ℤ/p^{n}ℤ) for a prime power p^{n}. I have not thought this through.

Algorithm 8.6.4 (List ℙ^{1}(ℤ/Nℤ)). This algorithm makes a sorted list of the distinct canonical representatives of ℙ^{1}(ℤ/Nℤ), as output by Algorithm 8.6.1.

INPUT: An integer N > 1.

OUTPUT: Sorted list of canonical representatives for ℙ^{1}(ℤ/Nℤ).

1. First we make a list of the canonical representatives of enough pairs (c, d) to fill up ℙ^{1}(ℤ/Nℤ). In the following code, we name Algorithm 8.6.1

     p1 normalize.

               lst = [(0,1), (1,0)]
               for c in range(1,N):          # iterate c such that 1 <= c < N:
                   lst.append((1,c))
                   g = gcd(c,N)
                   if g > 1:
                       u, v, s = p1_normalize(c, 1,   N)
                       lst.append((u,v))
                       if g == c:              # so c is a divisor
                           for d in xrange(2,N):              # 2 <= d < N
                               if gcd(d,N) > 1 and gcd(d,c) == 1:
                                   u,v,s = p1_normalize(c, d,   N)
                                   lst.append((u,v))

2. Next we sort the list of canonical pairs, then with one pass through the list delete any duplicates (or use the following Python code, which is slightly different).

               lst = list(set(lst))    # Python trick remove duplicates.
               lst.sort()

8.6.2 Examples of Computation of 𝕄_{k}(Γ_{0}(N))

In this section, we compute 𝕄_{k}(Γ_{0}(N)) explicitly in a few cases.

Example 8.6.5. We compute V = 𝕄_{4}(Γ_{0}(1)). Because S_{k}(Γ_{0}(1)) = 0, and M_{k}(Γ_{0}(1)) = ℂE_{4}, we expect V to have dimension 1, and for the Hecke operator T_{n} to have eigenvalues the sum σ_{3}(n) of the cubes of positive divisors of n.

The Manin symbols are

x_{0} = (0, 0, 0), x_{1} = (1, 0, 0), x_{2} = (2, 0, 0).

The relation matrix is

(\begin{matrix}1 & 0 & 1 \\ 0 & 0 & 0 \\ 2 & − 2 & 2 \\ 1 & − 1 & 1 \\ 2 & − 2 & 2 \end{matrix}) ,

where the first 2 rows correspond to S relations and the second two to T relations. Note that we don’t include all S relations, since it is obvious that some are redundant, e.g., x + xS = 0 and (xS) + (xS)S = xS + x = 0 are the same since S has order 2. (It’s not clear to me what is going on with T relations when k > 2, though in this example two of the three T relations are redundant.)

The echelon form of the relation matrix is

(\begin{matrix}1 & 0 & 1 \\ 0 & 1 & 0 \end{matrix}) ,

where we’ve deleted the zero rows from the bottom. Thus we may replace the above complicated list of relations with the following simpler list of relations:

x_{0} + x_{2} = 0
x_{1} = 0

from which we immediately read off that the second generator x_{1} is 0 and x_{0} = −x_{2}. Thus 𝕄_{4}(Γ_{0}(1)) has dimension 1, with basis the equivalence class of x_{2} (or of x_{0}).

Next we compute the Hecke operator T_{2} on 𝕄_{4}(Γ_{0}(1)). The Heilbronn matrices of determinant 2 from Proposition 8.3.2 are

h_{0} = (\begin{matrix}1 & 0 \\ 0 & 2 \end{matrix}) , h_{1} = (\begin{matrix}1 & 0 \\ 1 & 2 \end{matrix}) , h_{2} = (\begin{matrix}2 & 0 \\ 0 & 1 \end{matrix}) , h_{3} = (\begin{matrix}2 & 1 \\ 0 & 1 \end{matrix}) ,

To compute T_{2}, we apply each of these matrices to x_{0}, then reduce modulo the relations. We have

x_{2}. (\begin{matrix}1 & 0 \\ 0 & 2 \end{matrix}) = [X^{2}, (0, 0)]. (\begin{matrix}1 & 0 \\ 0 & 2 \end{matrix}) x_{2}
x_{2}. (\begin{matrix}1 & 0 \\ 1 & 2 \end{matrix}) = [X^{2}, (0, 0)] = x_{2}
x_{2}. (\begin{matrix}2 & 0 \\ 0 & 1 \end{matrix}) = [(2X)^{2}, (0, 0)] = 4x_{2}
x_{2}. (\begin{matrix}2 & 1 \\ 0 & 1 \end{matrix}) = [(2X + 1)^{2}, (0, 0)] = x_{0} + 4x_{1} + 4x_{2} ∼ 3x_{2}

Summing we see that T_{2}(x_{2}) ∼ 9x_{2} in 𝕄_{4}(Γ_{0}(1)). Notice that

9 = 1^{3} + 2^{3} = σ_{3}(2).

The Merel Heilbronn matrices of determinant 3 from Proposition 8.3.2 are

h_{0} = (\begin{matrix}1 & 0 \\ 0 & 3 \end{matrix}) , h_{1} = (\begin{matrix}1 & 0 \\ 1 & 3 \end{matrix}) , h_{2} = (\begin{matrix}1 & 0 \\ 2 & 3 \end{matrix}) , h_{3} = (\begin{matrix}2 & 1 \\ 1 & 2 \end{matrix}) ,
h_{4} = (\begin{matrix}3 & 0 \\ 0 & 1 \end{matrix}) , h_{5} = (\begin{matrix}3 & 1 \\ 0 & 1 \end{matrix}) , h_{6} = (\begin{matrix}3 & 2 \\ 0 & 1 \end{matrix}) .

We have

x_{2}. (\begin{matrix}1 & 0 \\ 0 & 3 \end{matrix}) = [X^{2}, (0, 0)]. (\begin{matrix}1 & 0 \\ 0 & 3 \end{matrix}) = x_{2}
x_{2}. (\begin{matrix}1 & 0 \\ 1 & 3 \end{matrix}) = [X^{2}, (0, 0)] = x_{2}
x_{2}. (\begin{matrix}1 & 0 \\ 2 & 3 \end{matrix}) = [X^{2}, (0, 0)] = x_{2}
x_{2}. (\begin{matrix}2 & 1 \\ 2 & 2 \end{matrix}) = [(2X + 1)^{2}, (0, 0)] = x_{0} + 4x_{1} + 4x_{2} ∼ 3x_{2}
x_{2}. (\begin{matrix}3 & 0 \\ 0 & 1 \end{matrix}) = [(3X)^{2}, (0, 0)] = 9x_{2}
x_{2}. (\begin{matrix}3 & 1 \\ 0 & 1 \end{matrix}) = [(3X + 1)^{2}, (0, 0)] = x_{0} + 6x_{1} + 9x_{2} ∼ 8x_{2}
x_{2}. (\begin{matrix}3 & 2 \\ 0 & 1 \end{matrix}) = [(3X + 2)^{2}, (0, 0)] = 4x_{0} + 12x_{1} + 9x_{2} ∼ 5x_{2}

Summing we see that

T_{3}(x_{2}) ∼ x_{2} + x_{2} + x_{2} + 3x_{2} + 9x_{2} + 8x_{2} + 5x_{2} = 28x_{2}.

Notice that

28 = 1^{3} + 3^{3} = σ_{3}(3).

Example 8.6.6. Next we compute 𝕄_{2}(Γ_{0}(11)) explicitly. The Manin symbol generators are

x_{0} = (0, 1), x_{1} = (1, 0), x_{2} = (1, 1), x_{3} = (1, 2), x_{4} = (1, 3), x_{5} = (1, 4),

x_{6} = (1, 5), x_{7} = (1, 6), x_{8} = (1, 7), x_{9} = (1, 8), x_{10} = (1, 9), x_{11} = (1, 10).

The relation matrix is as follows, where the S relations are above the line, and the T relations are below it.

( \begin{matrix}1 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\ 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 \\ 0 & 0 & 0 & 1 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 1 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 1 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 & 1 & 0 \\ 1 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 \\ 0 & 0 & 1 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 1 & 0 & 1 & 0 & 0 & 1 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 1 & 0 & 0 & 1 & 0 & 1 & 0 & 0 \end{matrix} )

In weight 2, two out of three T -relations are redundant, so we do not include them. The reduced row echelon form of the relation matrix is

( \begin{matrix}1 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\ 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & −1 & 0 \\ 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 1 & −1 & 0 \\ 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 1 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & −1 & 1 & 0 \\ 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 \\ 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \end{matrix} )

From the echelon form we immediaely see that every symbol is equivalent to a combination of x_{1} = (1, 0), x_{9} = (1, 8), and x_{10} = (1, 9). (Notice that columns 1, 9, and 10 are the pivot columns, where we index columns starting at 0.) Explicitly, if (a, b, c) is the ith row of the following matrix, then x_{i} = ax_{1} + bx_{9} + cx_{10}:

( \begin{matrix}−1 & 0 & 0 \\ 1 & 0 & 0 \\ 0 & 0 & 0 \\ 0 & 0 & 1 \\ 0 & −1 & 1 \\ 0 & −1 & 0 \\ 0 & 0 & −1 \\ 0 & 0 & −1 \\ 0 & 1 & −1 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \\ 0 & 0 & 0 \end{matrix} )

To compute T_{2}, we apply each of the Heilbronn matrices of determinant 2 from Proposition 8.3.2 to x_{1}, then to x_{9}, and finally to x_{10}. The matrices are as in Example 8.6.5 above. We have

T_{2}(x_{1}) = 3(1, 0) + (1, 6) ∼ 3x_{1} − x_{10}.

Applying T_{2} to x_{9} = (1, 8), we get

T_{2}(x_{9}) = (1, 3) + (1, 4) + (1, 5) + (1, 10) ∼ −2x_{9}

Applying T_{2} to x_{10} = (1, 9), we get

T_{2}(x_{10}) = (1, 4) + (1, 5) + (1, 7) + (1, 10) ∼ −x_{1} − 2x_{10}.

Thus the matrix of T_{2} with respect to this basis is

T_{2} = ( \begin{matrix}3 & 0 & 0 \\ 0 & −2 & 0 \\ −1 & 0 & −2 \end{matrix} ) ,

where we write the matrix as an operator on the left on vectors written in terms of x_{1}, x_{9}, and x_{10}. The matrix T_{2} has characteristic polynomial

(x − 3)(x + 2)^{2}.

The (x − 3) factor corresponds to the weight 2 Eisenstein series, and the x + 2 factor corresponds to the elliptic curve E = X_{0}(11), which has

a_{2} = −2 = 2 + 1 − #E(𝔽_{2}).

We have

T_{3}(x_{1}) = 4(1, 0) + (1, 4) + (1, 6) + (1, 8) ∼ 4x_{1} − x_{10}
T_{3}(x_{9}) = (1, 2) + (1, 3) + (1, 4) + (1, 5) + (1, 7) + 2(1, 10) ∼ −x_{9}
T_{3}(x_{10}) = (0, 1) + (1, 0) + (1, 2) + (1, 3) + (1, 5) + (1, 6) + (1, 7) ∼ −x_{10},

so

T_{3} = ( \begin{matrix}4 & 0 & 0 \\ 0 & −1 & 0 \\ −1 & 0 & −1 \end{matrix} ) .

The characteristic polynomial of T_{3} is (x − 4)(x + 1)^{2}.

Example 8.6.7. In this example, we compute 𝕄_{6}(Γ_{0}(3)), which illustrates both big weight and nontrivial level. We have the following generating Manin symbols:

x_{0} = [XY^{4}, (0, 1)],  x_{1} = [XY^{4}, (1, 0)]
x_{2} = [XY^{4}, (1, 1)],  x_{3} = [XY^{4}, (1, 2)]
x_{4} = [XY^{3}, (0, 1)],  x_{5} = [XY^{3}, (1, 0)]
x_{6} = [XY^{3}, (1, 1)],  x_{7} = [XY^{3}, (1, 2)]
x_{8} = [X^{2}Y^{2}, (0, 1)], x_{9} = [X^{2}Y^{2}, (1, 0)]
x_{10} = [X^{2}Y^{2}, (1, 1)], x_{11} = [X^{2}Y^{2}, (1, 2)]
x_{12} = [X^{3}Y, (0, 1)],  x_{13} = [X^{3}Y, (1, 0)]
x_{14} = [X^{3}Y, (1, 1)],  x_{15} = [X^{3}Y, (1, 2)]
x_{16} = [X^{4}Y, (0, 1)],  x_{17} = [X^{4}Y, (1, 0)]
x_{18} = [X^{4}Y, (1, 1)],  x_{19} = [X^{4}Y, (1, 2)]

The relation matrix is already very large for M_{6}(Γ_{0}(3)) follows, where the S 8.6. EXPLICITLY COMPUTING 𝕄_{K}(Γ_{0}(N) 127 relations are before the line and the T relations after it:

( \begin{matrix}1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 \\ 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 \\ 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 \\ 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & −1 & 0 & 0 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & −1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & −1 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & −1 & 0 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\ 1 & 0 & 0 & 1 & 0 & 0 & 0 & −4 & 0 & 0 & 0 & 6 & 0 & 0 & 0 & −4 & 0 & 1 & 0 & 1 \\ 1 & 1 & 0 & 0 & −4 & 0 & 0 & 0 & 6 & 0 & 0 & 0 & −4 & 0 & 0 & 0 & 1 & 0 & 0 & 1 \\ 0 & 0 & 2 & 0 & 0 & 0 & −4 & 0 & 0 & 0 & 6 & 0 & 0 & 0 & −4 & 0 & 0 & 0 & 2 & 0 \\ 0 & 1 & 0 & 1 & 0 & −4 & 0 & 0 & 0 & 6 & 0 & 0 & 0 & −4 & 0 & 0 & 1 & 1 & 0 & 0 \\ 0 & 0 & 0 & 1 & 1 & 0 & 0 & −3 & 0 & 0 & 0 & 3 & 0 & −1 & 0 & −1 & 0 & 1 & 0 & 0 \\ 1 & 0 & 0 & 0 & −3 & 1 & 0 & 0 & 3 & 0 & 0 & 0 & −1 & 0 & 0 & −1 & 0 & 0 & 0 & 1 \\ 0 & 0 & 1 & 0 & 0 & 0 & −2 & 0 & 0 & 0 & 3 & 0 & 0 & 0 & −2 & 0 & 0 & 0 & 1 & 0 \\ 0 & 1 & 0 & 0 & 0 & −3 & 0 & 1 & 0 & 3 & 0 & 0 & −1 & −1 & 0 & 0 & 1 & 0 & 0 & 0 \\ 0 & 0 & 0 & 1 & 0 & 0 & 0 & −2 & 1 & 1 & 0 & 1 & 0 & −2 & 0 & 0 & 0 & 1 & 0 & 0 \\ 1 & 0 & 0 & 0 & −2 & 0 & 0 & 0 & 1 & 1 & 0 & 1 & 0 & 0 & 0 & −2 & 0 & 0 & 0 & 1 \\ 0 & 0 & 1 & 0 & 0 & 0 & −2 & 0 & 0 & 0 & 3 & 0 & 0 & 0 & −2 & 0 & 0 & 0 & 1 & 0 \\ 0 & 1 & 0 & 0 & 0 & −2 & 0 & 0 & 1 & 1 & 0 & 1 & −2 & 0 & 0 & 0 & 1 & 0 & 0 & 0 \\ 0 & 0 & 0 & 1 & 0 & −1 & 0 & −1 & 0 & 3 & 0 & 0 & 1 & −3 & 0 & 0 & 0 & 1 & 0 & 0 \\ 1 & 0 & 0 & 0 & −1 & 0 & 0 & −1 & 0 & 0 & 0 & 3 & 0 & 1 & 0 & −3 & 0 & 0 & 0 & 1 \\ 0 & 0 & 1 & 0 & 0 & 0 & −2 & 0 & 0 & 0 & 3 & 0 & 0 & 0 & −2 & 0 & 0 & 0 & 1 & 0 \\ 0 & 1 & 0 & 0 & −1 & −1 & 0 & 0 & 3 & 0 & 0 & 0 & −3 & 0 & 0 & 1 & 1 & 0 & 0 & 0 \\ 0 & 1 & 0 & 1 & 0 & −4 & 0 & 0 & 0 & 6 & 0 & 0 & 0 & −4 & 0 & 0 & 1 & 1 & 0 & 0 \\ 1 & 0 & 0 & 1 & 0 & 0 & 0 & −4 & 0 & 0 & 0 & 6 & 0 & 0 & 0 & −4 & 0 & 1 & 0 & 1 \\ 0 & 0 & 2 & 0 & 0 & 0 & −4 & 0 & 0 & 0 & 6 & 0 & 0 & 0 & −4 & 0 & 0 & 0 & 2 & 0 \\ 1 & 1 & 0 & 0 & −4 & 0 & 0 & 0 & 6 & 0 & 0 & 0 & −4 & 0 & 0 & 0 & 1 & 0 & 0 & 1 \end{matrix} )

The reduced row echelon form of the relations matrix, with zero rows removed:

( \begin{matrix}1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 \\ 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 \\ 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 \\ 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 3/16 & −3/16 \\ 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & −1/16 & 1/16 \\ 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1/2 & −5/16 & −3/16 \\ 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & −1/2 & 3/16 & 5/16 \\ 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & −1/6 & 1/12 & 1/12 \\ 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1/6 & −1/12 & −1/12 \\ 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1/4 & −1/4 \\ 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & −1/4 & 1/4 \\ 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & −1/16 & 1/16 \\ 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 3/16 & −3/16 \\ 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 & −1/2 & 3/16 & 5/16 \\ 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 1/2 & −5/16 & −3/16 \end{matrix} )

Since these relations are equivalent to the original relations, we see quite clearly how x_{0}, …, x_{15} can be expressed in terms of x_{16}, x_{17}, x_{18}, and x_{19}. Thus 𝕄_{6}(Γ_{0}(3)) has dimension 4. For example,

x_{15} ∼ \frac{1}{2}x_{17} − \frac{5}{16}x_{18} − \frac{3}{16}x_{19}.

Notice that the number of relations is already quite large. It is perhaps surprisingy how complicated the presentation is for 𝕄_{6}(Γ_{0}(3)). Because there are denominators in the relations, the above calculation is only a computation of 𝕄_{6}(Γ_{0}(3), ℚ). Computing 𝕄_{6}(Γ_{0}(3), ℤ) requires computation of a ℤ-basis for the kernel of the relation matrix, which could be accomplished via, e.g., Hermite normal form or LLL reduction.

As before, we find that with respect to the basis x_{16}, x_{17}, x_{18}, and x_{19}, that

T_{2} = ( \begin{matrix}33 & 0 & 0 & 0 \\ 3 & 6 & 12 & 12 \\ −3/2 & 27/2 & 15/2 & 27/2 \\ −3/2 & 27/2 & 27/2 & 15/2 \end{matrix} )

Notice that there are denominators in the matrix for T_{2} with respect to this basis. It is clear from the definition of T_{2} acting on Manin symbols that T_{2} preserves the ℤ-module 𝕄_{6}(Γ_{0}(3)), so there is some basis for 𝕄_{6}(Γ_{0}(3)) such that T_{2} is given by an integer matrix. Thus the characteristic polynomial f_{2} of T_{2} will have integer coefficients; indeed,

f_{2} = (x − 33)^{2} · (x + 6)^{2}.

Note the factor of 33, which comes from the two images of the Eisenstein series E_{4} of level 1. The factor x + 6 comes from a cusp form

g = q − 6q^{2} + ⋯ ∈ S_{6}(Γ_{0}(3)).

By computing more Hecke operators T_{n}, we can find more coefficients of g. For example, the charpoly of T_{3} is (x − 1)(x − 243)(x − 9)^{2}, and the matrix of T_{5} is

T_{5} = ( \begin{matrix}3126 & 0 & 0 & 0 \\ 240 & 966 & 960 & 960 \\ −120 & 1080 & 1086 & 1080 \\ −120 & 1080 & 1080 & 1086 \end{matrix} ) ,

which has characteristic polynomial

f_{5} = (x − 3126)^{2}(x − 6)^{2}.

The matrix of T_{7} is

T_{7} = ( \begin{matrix}16808 & 0 & 0 & 0 \\ 1296 & 5144 & 5184 & 5184 \\ −648 & 5832 & 5792 & 5832 \\ −648 & 5832 & 5832 & 5792 \end{matrix} ) ,

with characteristic polynomial

f_{7} = (x − 16808)^{2}(x + 40)^{2}.

One can put this information together to deduce that

g = q − 6q^{2} + 9q^{3} + 4q^{4} + 6q^{5} − 54q^{6} − 40q^{7} + · · · .

Example 8.6.8. The relation matrix for M_{2}(Γ_{0}(43)) is

( \begin{matrix}1 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\ 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 \\ 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 1 & 0 & 0 & 0 & 0 & 0 \\ 1 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 \\ 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 & 0 & 0 & 3 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 1 & 0 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 3 & 0 & 0 & 0 & 0 & 0 & 0 \end{matrix} )

Reducing, one computes a presentation for 𝕄_{2}(Γ_{0}(43)), which has dimension

7. With respect to the symbols

x_{1} = (1, 0), x_{32} = (1, 31), x_{33} = (1, 32),
x_{39} = (1, 38), x_{40} = (1, 39), x_{41} = (1, 40), x_{42} = (1, 41),

the matrix of T_{2} is

T_{2} = ( \begin{matrix}3 & 0 & 0 & 0 & 0 & 0 & 0 \\ 0 & −2 & −1 & −1 & −1 & 0 & 0 \\ 0 & 1 & 1 & 0 & 0 & −2 & −1 \\ 0 & 0 & 1 & −1 & 1 & 0 & 0 \\ 0 & 0 & 0 & 2 & 1 & 2 & 1 \\ 0 & 0 & −1 & −1 & −1 & −2 & 0 \\ −1 & 0 & 0 & 1 & 1 & 1 & −1 \end{matrix} ) ,

which has characteristic polynomial

(x − 3)(x + 2)^{2}(x^{2} − 2)^{2}.

There is one Eisenstein series, and three cusp forms with a_{2} = −2 and a_{2} = ±\sqrt{2}.

Example 8.6.9. In this example we discuss computation of 𝕄_{2}(Γ_{0}(2004), ℚ), without explicitly writing down the matrices, which are huge. First we make a list of the

4032 = (2^{2} + 2) · (3 + 1) · (167 + 1)

elements (a, b) ∈ ℙ^{1}(ℤ/2004ℤ) using Algorithm 8.6.1. This list looks like this:

x_{0} = (0, 1), (1, 0), (1, 1), (1, 2), …, (501, 7), (668, 1), (668, 3), (668, 5), x_{4032} = (1002, 1)

For each of the symbols x_{i}, we consider the S and T relations. Ignoring the redundant relations, we find 2016 S-relations and 1344 T -relations. It is simple to quotient out by the S-relations, e.g., by identifying x_{i} with −x_{i}S = −x_{j} for some j (or setting x_{i} = 0 if x_{i}S = x_{i}). Once we’ve quotiented out by the S relations, we take the image of all of the 1344 T relations modulo the S-relations and quotient out by those relations. Because S and T do not commutate, we can not only quotient out by T relations x_{i} + x_{i}T + x_{i}T^{2} = 0 where the x_{i} are the basis after quotienting out by the S relations. We find that the relation matrix has rank 3359, so 𝕄_{2}(Γ_{0}(2004), ℚ) has dimension 673.

If we instead compute the quotient 𝕄_{2}(Γ_{0}(2004), ℚ)^{+} of 𝕄_{2}(Γ_{0}(2004), ℚ) by the subspace of elements x − η^{∗}(x), we include relations x_{i} + x_{i}I = 0, where I = ( \begin{matrix}−1 & 0 \\ 0 & 1 \end{matrix} ). There are now 2016 S relations, 2024 I relations, and 1344 T relations. Again, it is almost trivial to quotient out by the S relations by identifying x_{i} and −x_{i}S. We then take the image of all 2024 I relations modulo the S relations, and again directly quotient out by the I-relations by identifying [x_{i}] with −[x_{i}I] = −[x_{j}] for some j, where by [x_{i}] we mean the class of x_{i} modulo the S relations. Finally, we quotient out by the 1344 T relations, which involves sparse Gauss elimination on a matrix with ??? columns and 1344 rows, and at most 3 nonzero entries per row. The dimension of 𝕄_{2}(Γ_{0}(2004), ℚ)^{+} is 331.

8.6.3 Refined Algorithm For Computing Presentation

Algorithm 8.6.10 (Compute Presentation). This is an algorithm to compute 𝕄_{k}(Γ_{0}(N), ℚ) or 𝕄_{k}(Γ_{0}(N), ℚ)^{±}, which only requires doing generic sparse linear algebra to deal with the three term T -relations.

1. Let x_{0}, …, x_{n} by a list of all Manin symbols.

2. Quotient out the two-term S relations and if the ± quotient is desired, by the two-term η relations. (See Algorithm 8.6.12 below.) Let [x_{i}] denote the class of x_{i} after this quotienting process.

3. Create a sparse matrix A with m columns, whose rows encode the relations

[x_{i}] + [x_{i}T] + [x_{i}T^{2}] = 0.

For example, there are about n/3 such rows (I’m unsure what the situation is for k > 2). The number of nonzero entries per row is at most 3(k − 1).

Note that we must include rows for all i, since even if [x_{i}] = [x_{j}], it need not be the case that [x_{i}T] = [x_{j}T], since the matrices S and T do not commute. However, we have an a priori formula for the dimension of the quotient by all these relations, so we could omit many relations and just check that there are enough at the end—if there aren’t, we add in more.

4. Compute the reduced row echelon form of A using the multi-modular (sparse) Gaussian elimination algorithm (Algorithm 7.2.3). For k = 2, this is the echelon form of a matrix with size about n/3 × n/4.

5. Use what we have done above to read off a sparse matrix R that expresses each of the n Manin symbols in terms of a basis of Manin symbols, modulo the relations.

Remark 8.6.11. There is rumored to be a “geometric” way to compute a presentation for 𝕄_{2}(Γ_{0}(N)) more directly, without resorting to general linear algebra techniques. I am unaware of such a method having ever been published, but it was sketched to me independently by Georg Weber in 1999 and Robert Pollack in 2004. The computations we do after computing a presentation for 𝕄_{2}(Γ_{0}(N)) are usually significantly more time consuming than computation of a presentation in the first place, so it’s unclear how useful this algorithm would be in practice. (I have not heard of a method for directly obtaining a presentation for 𝕄_{k}(Γ_{0}(N)).)

Algorithm 8.6.12 (Quotient By 2-Term Relations). This algorithm performs sparse Gauss elimination on a matrix all of whose columns have at most 2 nonzero entries. This algorithm is more subtle than just “identify symbols in pairs”, since complicated relations can cause generators to surprisingly equal 0.

INPUT:
rels -- set of pairs ((i,s), (j,t)).  The pair represents
        the relation
              s*x_i + t*x_j = 0.
n -- int, the x_i are x_0, ..., x_{n-1}.
F -- base field
OUTPUT:
mod -- list such that mod[i] = (j,s), which means that
             x_i is equivalent to s*x_j,
       where the x_j are a basis for the quotient.
EXAMPLE:
We quotient out by the relations
   3*x0 - x1 = 0,  x1 + x3 = 0,   x2 + x3 = 0,  x4 - x5 = 0
to get
>>> Q = rings.RationalField()
>>> rels = set([((0,3), (1,-1)), ((1,1), (3,1)), ((2,1),(3,1)), ((4,1),(5,-1))])
>>> n = 6
>>> sparse_2term_quotient(rels, n, Q)
[(3, -1/3), (3, -1), (3, -1), (3, 1), (5, 1), (5, 1)]
"""
if not isinstance(rels, set):
raise TypeError, "rels must be a set"
if not isinstance(n, int):
raise TypeError, "n must be an int"
if not isinstance(F, rings.Ring):
raise TypeError, "F must be a ring."
tm = misc.verbose()
free = range(n)
ONE = F(1)
ZERO = F(0)
coef = [ONE for i in xrange(n)]
related_to_me = [[] for i in xrange(n)]
for v0, v1 in rels:
c0 = coef[v0[0]] * F(v0[1])
c1 = coef[v1[0]] * F(v1[1])
# Mod out by the relation
#    c1*x_free[t[0]] + c2*x_free[t[1]] = 0.
die = None
if c0 == ZERO and c1 == ZERO:
    pass
elif c0 == ZERO and c1 != ZERO:  # free[t[1]] --> 0
    die = free[v1[0]]
elif c1 == ZERO and c0 != ZERO:
    die = free[v0[0]]
elif free[v0[0]] == free[v1[0]]:
    if c0+c1 != 0:
        # all xi equal to free[t[0]] must now equal to zero.
        die = free[v0[0]]
else:  # x1 = -c1/c0 * x2.
    x = free[v0[0]]
    free[x] = free[v1[0]]
    coef[x] = -c1/c0
    for i in related_to_me[x]:
        free[i] = free[x]
        coef[i] *= coef[x]
        related_to_me[free[v1[0]]].append(i)
    related_to_me[free[v1[0]]].append(x)
if die != None:
    for i in related_to_me[die]:
        free[i] = 0
        coef[i] = ZERO
    free[die] = 0
    coef[die] = ZERO
mod = [(free[i], coef[i]) for i in xrange(len(free))]
misc.verbose("finished",tm)
return mod

8.7 Applications

8.7.1 Later in this Book

We now sketch some of the ways in which we will apply the modular symbols algorithms of this chapter later in this book.

Cuspidal modular symbols are in Hecke-equivariant duality with cuspidal modular forms, and as such we can compute modular forms by computing systems of eigenvalues for the Hecke operators acting on modular symbols. By the Atkin-Lehner-Li theory of newforms (see, e.g., 6.1.2), we can construct S_{k}(N, ε) for any N, any ε, and k ≥ 2 using this method. See Chapter 1 for more details.

Once we can compute spaces of modular symbols, we move to computing the corresponding modular forms. We define inclusion and trace maps from modular symbols of one level N to modular symbols of level a multiple or divisor of N. Using these we compute the quotient V of the new subspace of cuspidal modular symbols on which a “star involution” acts as +1. The Hecke operators act by diagonalizable commuting matrices on this space, and computing the simultaneous systems of Hecke eigenvalues is equivalent to computing corresponding newforms ∑ a_{n}q^{n}. In this way, we obtain a list of all newforms (normalized eigenforms) in S_{k}(N, ε) for any N, ε, and k ≥ 2.

In Chapter 10, we compute with the period mapping from modular symbols to ℂ attached to a newform f ∈ S_{k}(N, ε). When k = 2, ε = 1 and f has rational Fourier coefficients, this gives a method to compute the period lattice associated to a modular elliptic curve attached to a newform (see Section 10.6). In general, computation of this map is important when finding equations for modular ℚ-curves, CM curves, and curves with a given modular Jacobian. It is also important for computing special values of the L-function L(f, s) at integer points in the critical strip.

8.7.2 Discussion of the Literature and Research

Modular symbols were introduced by Birch [Bir71] in connection with computations in support of the Birch and Swinnerton-Dyer conjecture. Manin [Man72] then made a systematic study of weight 2 modular symbols and used them to prove rationality results about special values of L-functions (note that “parabolic points” in the title of Manin’s paper means “cusps”). Merel’s paper [Mer94] builds on work of Šokurov (mainly [Šok80]), which developed a higherweight generalization of Manin’s work partly to understand rationality properties of special values of modular L-functions (Shimura simultaneously proved similar results via related cohomological methods). Cremona’s book [Cre97a] discusses in detail how to compute the space of weight 2 modular symbols for Γ_{0}(N), in connection with the problem of enumerating all elliptic curves of given conductor, and his article [Cre92] discusses the Γ_{1}(N) case and computation of modular symbols with character.

There have been several recent Ph.D. thesis about modular symbols. Basmaji’s thesis [Bas96], which is in German, contains a tricks to efficiently compute Hecke operators T_{p}, with p very large, and also discusses how to compute spaces of half integral weight modular forms building on what one can get from modular symbols of integral weight. The author’s Ph.D. thesis [Ste00] contains two chapters about higher-weight modular symbols, and an application to visibility of Shafarevich-Tate groups (see also [Aga00]). Martin’s thesis [Mar01] is about an attempt to study an analogue of modular symbols for weight 1. Lemelin’s thesis [Lem01] discusses modular symbols for quadratic imaginary fields in the context of p-adic analogues of the Birch and Swinnerton-Dyer conjecture. See also the survey paper [FM99], which discusses computation with of weight 2 modular symbols in the context of computing with modular abelian varieties.

There are analogues for modular symbols for groups besides finite-index subgroups of SL_{2}(ℤ), e.g., for groups of higher degree, e.g., GL_{3}. There has also been work on computing Hilbert modular forms, e.g., by Lassina Dembele [Dem04] (Hilbert modular forms are like classical modular forms, but are functions on a product of copies of 𝔥, and SL_{2}(ℤ) is replaced by a group of matrices with entries in a totally real field). I am not aware of any analogue of modular symbols for Siegel modular forms (these are like classical modular forms, except the upper half plane is replaced by a space of matrices).

Glenn Stevens (and recently Robert Pollack and Henri Darmon, see [DP04]) has been working for many years to develop an analogue of modular symbols in a rigid analytic context, which should be very helpful for questions about computing with over convergent p-adic modular forms, or proving results about p-adic L-functions.

Gabor Weise and Bas Edixhoven have been working on theory about mod p modular symbols, and computation of weight 1 modular symbols mod 2.

Finally we mention that Mazur uses the term “modular symbol” slightly differently in many of his papers. This is a dual notion, which attaches a “modular symbol” to a modular form or elliptic curve, and is really just an overloading of the terminology. See [MTT86] for an extensive discussion of modular symbols from this point of view, where they are used to construct p-adic L-functions.

8.8 Exercises

8.1 Compute 𝕄_{3}(Γ_{1}(3)) explicitly. List each Manin symbol, the relations they satisfy, compute the quotient, etc. Find the matrix of T_{2}. (Check: The dimension of 𝕄_{3}(Γ_{1}(3)) is 2, and the characteristic polynomial of T_{2} is (x − 3)(x + 3).)

8.2 Prove that the pairing 8.5.1 is well defined.

8.3 (a) Show that if η = ( \begin{matrix}−1 & 0 \\ 0 & 1 \end{matrix} ), then ηΓη = Γ for Γ = Γ_{0}(N) and Γ = Γ_{1}(N).

(b) (*) Give an example of a finite index subgroup Γ such that ηΓη ≠ Γ.

8.8. EXERCISES 135 8.4 Suppose M is an integer multiple of N. Prove that the natural map

(ℤ/Mℤ)^{∗} → (ℤ/Nℤ)^{∗} is surjective.

136 CHAPTER 8. MODULAR SYMBOLS OF ANY WEIGHT AND LEVEL

Computing Spaces of Modular Forms

9.1 Decomposing Modular Forms Using Dirichlet Characters

The group (ℤ/Nℤ)^{∗} acts on M_{k}(Γ_{1}(N)) through the diamond-bracket operators ⟨d⟩, as follows. For [d] ∈ (ℤ/Nℤ)^{∗}, define

f|⟨d⟩ = f|[( \begin{matrix}a & b \\ c & d \end{matrix} )]_{k},

where ( \begin{matrix}a & b \\ c & d \end{matrix} ) ∈ SL_{2}(ℤ) is congruent to ( \begin{matrix}d^{−1} & 0 \\ 0 & d \end{matrix} ) (mod N). Note that the map SL_{2}(ℤ) → SL_{2}(ℤ/Nℤ) is surjective (see Exercise 5.2), so the matrix ( \begin{matrix}a & b \\ c & d \end{matrix} ) exists. To prove that ⟨d⟩ preserves M_{k}(Γ_{1}(N)), we prove the more general fact that Γ_{1}(N) is normal in

Γ_{0}(N) = \{(\begin{matrix}a & b \\ c & d \end{matrix}) ∈ SL_{2}(ℤ) : (\begin{matrix}a & b \\ c & d \end{matrix}) ≡ (\begin{matrix}∗ & ∗ \\ 0 & ∗ \end{matrix}) (mod N)\} .

This will imply that ⟨d⟩ preserves M_{k}(Γ_{1}(N)) since ( \begin{matrix}a & b \\ c & d′ \end{matrix} ) ∈ Γ_{0}(N).

Lemma 9.1.1. The group Γ_{1}(N) is a normal subgroup of Γ_{0}(N), and the quotient Γ_{0}(N)/Γ_{1}(N) is isomorphic to (ℤ/Nℤ)^{∗}.

Proof. Consider the surjective homomorphism r : SL_{2}(ℤ) → SL_{2}(ℤ/Nℤ). Then Γ_{1}(N) is the exact inverse image of the subgroup H of matrices of the form ( \begin{matrix}1 & ∗ \\ 0 & 1 \end{matrix} ) and Γ_{0}(N) is the inverse image of the subroup T of upper triangular matrices. It thus suffices to observe that H is normal in T, which is clear. Finally, the quotient T/H is isomorphic to the group of diagonal matrices in SL_{2}(ℤ/Nℤ)^{∗}, which is isomorphic to (ℤ/Nℤ)^{∗}.

The diamond bracket action is simply the action of Γ_{0}(N)/Γ_{1}(N) ≅ (ℤ/Nℤ)^{∗} on M_{k}(Γ_{1}(N)). Since M_{k}(Γ_{1}(N)) is a finite dimensional vector space over ℂ, the ⟨d⟩ action breaks M_{k}(Γ_{1}(N)) up as a direct sum of factors corresponding to the Dirichlet characters D(N, ℂ) of modulus N.

Proposition 9.1.2. We have

M_{k}(Γ_{1}(N)) = ⨁_{ε∈D(N,ℂ)} M_{k}(N, ε),

where

M_{k}(N, ε) = {f ∈ M_{k}(Γ_{1}(N)) : f|⟨d⟩ = ε(d)f all d ∈ (ℤ/Nℤ)^{∗}}.

Proof. The linear transformations ⟨d⟩, for the d ∈ (ℤ/Nℤ)^{∗}, all commute, since ⟨d⟩ acts through the abelian group Γ_{0}(N)/Γ_{1}(N). Also, if e is the exponent of (ℤ/Nℤ)^{∗}, then ⟨d⟩^{e} = ⟨d^{e}⟩ = ⟨1⟩ = 1, so the matrix of ⟨d⟩ is diagonalizable. It is a standard fact from linear algebra that any commuting family of diagonalizable linear transformations is simultaneously diagonalizable (see Exercise 5.4), so there is a basis f_{1}, …, f_{n} for M_{k}(Γ_{1}(N)) so that all ⟨d⟩ act by diagonal matrices. The eigenvalues of the action of (ℤ/Nℤ)^{∗} on a fixed f_{i} defines a Dirichlet character, i.e., each f_{i} has the property that f_{i}|⟨d⟩ = ε_{i}(d), for all d ∈ (ℤ/Nℤ)^{∗} and some Dirichlet character ε_{i}. The f_{i} for a given ε then span M_{k}(N, ε), and taken together the M_{k}(N, ε) must span M_{k}(Γ_{1}(N)).

Definition 9.1.3 (Character of Modular Form). If f ∈ M_{k}(N, ε), we say that f has character ε.

Remark 9.1.4. People sometimes write that f has “nebentypus character” ε.

The spaces M_{k}(N, ε) are a direct sum of subspaces S_{k}(N, ε) and E_{k}(N, ε), where S_{k}(N, ε) is the subspace of cusp forms, i.e., forms that vanish at all cusps (elements of ℚ ∪ {∞}), and E_{k}(N, ε) is the subspace of Eisenstein series, which is the unique subspace of M_{k}(N, ε) that is invariant under all Hecke operators and is such that M_{k}(N, ε) = S_{k}(N, ε) ⊕ E_{k}(N, ε). The space E_{k}(N, ε) can also be defined as the space spanned by all Eisenstein series of weight k and level N, as defined in Chapter 5. The space E_{k}(N, ε) can also be defined using the Petersson inner product (see, e.g., [Lan95]).

The diamond bracket operators preserve the subspace of cusp forms, so the isomorphism of Proposition 9.1.2 restricts to an isomorphism of the corresponding cuspidal subspaces. SAGE implements dimension formulas for general spaces of cusp forms, which we can use to make a table giving the dimension of S_{k}(Γ_{1}(N)) and of the dimension of each subspace corresponding to a character. We do this first for N = 13.

      sage: G = DirichletGroup(13)
      sage: G
      Group of Dirichlet characters of modulus 13 over Cyclotomic Field
            of order 12 and degree 4
      sage: dimension_cusp_forms(Gamma1(13),2)
      2
      sage: [dimension_cusp_forms_eps(e,2) for e in G]
      [0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0]

Next we do this for N = 100.

      sage: G = DirichletGroup(100)
      sage: G
      Group of Dirichlet characters of modulus 100 over Cyclotomic Field
            of order 20 and degree 8
      sage: dimension_cusp_forms_gamma1(100)
      231
      sage: [dimension_cusp_forms_eps(e,2) for e in G]
      [ 7, 0, 0, 13, 12, 0, 0, 13, 12, 0, 0, 9,  12, 0, 0, 13,
       12, 0, 0, 13,  6, 0, 0, 13, 12, 0, 0, 13, 12, 0, 0, 9,
       12, 0, 0, 13, 12, 0, 0, 13]

9.2 Atkin-Lehner-Li Theory

By Atkin-Lehner-Li theory (see [AL70, Li75]), we have a decomposition

S_{k}(Γ_{1}(N)) = ⨁_{M|N} ⨁_{d|N/M} α_{d}(S_{k}(Γ_{1}(M))_{new}).  (9.2.1)

Here α_{d} : S_{k}(Γ_{1}(M)) → S_{k}(Γ_{1}(N)) is the degeneracy map f(q) ↦ f(q^{d}), and S_{k}(Γ_{1}(M))_{new} is the largest 𝕋-stable (or Petersson) complement of the image of all maps α_{d} from level properly dividing M. The analogue of (9.2.1) with Γ_{1} replaced by Γ_{0} is true; it is also true with character, as long as we omit the spaces S_{k}(Γ_{1}(M), ε) for which M ∤ cond(ε).

Example 9.2.1. If N is prime and k ≤ 11, then S_{k}(Γ_{1}(N))_{new} = S_{k}(Γ_{1}(N)), since S_{k}(Γ_{1}(1)) = 0.

One can prove using the Petersson inner product that the Hecke operators T_{n} on S_{k}(Γ_{1}(N)), with (n, N) = 1, are diagonalizable. Another result of Atkin-Lehner-Li theory is that the ring of endomorphism of S_{k}(Γ_{1}(N))_{new} generated by all Hecke operators equals the ring generated by the Hecke operators T_{n} with (n, N) = 1. This statement need not be true if we do not restrict to the new subspace.

Example 9.2.2. We have

S_{2}(Γ_{0}(22)) = S_{2}(Γ_{0}(11)) ⊕ α_{2}(S_{2}(Γ_{0}(11))),

where each of the spaces S_{2}(Γ_{0}(11)) has dimension 1. Thus S_{2}(Γ_{0}(22))_{new} = 0. The Hecke operator T_{2} on S_{2}(Γ_{0}(22)) has characteristic polynomial x^{2} + 2x + 2, which is irreducible. Since α_{2} commutes with all Hecke operators T_{n}, with gcd(n, 2) = 1, the subring 𝕋′ of the Hecke algebra generated by operators T_{n} with n odd is isomorphic to ℤ (the 2×2 scalar matrices). Thus on the full space S_{2}(Γ_{0}(22)), we do not have 𝕋′ = 𝕋. However, on the new subspace we do have this equality, since the new subspace has dimension 0.

Example 9.2.3. This example is similar to Example 9.2.2, except that there are newforms. We have

S_{2}(Γ_{0}(55)) = S_{2}(Γ_{0}(11)) ⊕ α_{5}(S_{2}(Γ_{0}(11))) ⊕ S_{2}(Γ_{0}(55))_{new},

where S_{2}(Γ_{0}(11)) has dimension 1 and S_{2}(Γ_{0}(55))_{new} has dimension 3. The Hecke operator T_{5} on S_{2}(Γ_{0}(55))_{new} acts via the matrix

(\begin{matrix}−2 & 2 & −1 \\ −1 & 1 & −1 \\ 1 & −2 & 0 \end{matrix})

with respect to some basis. This matrix has eigenvalues 1 and −1. Atkin-Lehner theory asserts that T_{5} must be a linear combination of Hecke operators T_{n}, with gcd(n, 55) = 1. Upon computing the matrix for T_{2}, we find by simple linear algebra that T_{5} = 2T_{2} − T_{4}.

Before moving on, we pause to say something about how the Atkin-Lehner-Li theorems are proved. A key result is to prove that if f, g ∈ S_{k}(Γ_{1}(N))_{new} and a_{n}(f) = a_{n}(g) for all n with gcd(n, N) = 1, then f = g. First, replace f and g by their difference h = f − g, and observe that a_{n}(h) = 0 for gcd(n, N) = 1. Note that such an h “looks like” it is in the image of the maps α_{d}, for d | N. In fact it is—one shows that h is in the old subspace S_{k}(Γ_{1}(N))_{old} (this is the “crucial” Theorem 2 of [Li75]). But h is also new, since it is the difference of two newforms, so h = 0, hence f = g. The details involve introducing many maps between spaces of modular forms, and computing what they do to q-expansions.

Definition 9.2.4 (Newform). A newform is a 𝕋-eigenform f ∈ S_{k}(Γ_{1}(N))_{new} that is normalized so that the coefficient of q is 1.

We now motivate this definition by explaining why any eigenform can be normalized so that the coefficient of q is 1, and how such an eigenform has the convenient properties that its Fourier coefficients are exactly the Hecke eigenvalues.

Proposition 9.2.5. The coefficients of a normalized 𝕋-eigenform are the eigenvalues.

9.3. COMPUTING CUSPFORMS USING MODULAR SYMBOLS 141

Proof. The Hecke algebra 𝕋_{ℚ} on S_{k}(Γ_{1}(N)) contains the diamond bracket operators ⟨d⟩, since T_{p^{2}} = T_{p}^{2} − ⟨p⟩p^{k−1}, so any 𝕋-eigenform lies in a subspace S_{k}(Γ_{1}(N), ε) for some Dirichlet character ε. The Hecke operators T_{p}, for p prime, act on S_{k}(Γ_{1}(N), ε) by

T_{p} (∑_{n=1}^{∞} a_{n}q^{n}) = ∑_{n=1}^{∞} (a_{np}q^{n} + ε(p)p^{k−1}a_{n}q^{np}) ,

and there is a similar formula for T_{m} with m composite. If f = ∑_{n=1}^{∞} a_{n}q^{n} is an eigenform for all T_{p}, with eigenvalues λ_{p}, then by the above formula

λ_{p}f = λ_{p}a_{1}q + λ_{p}a_{2}q^{2} + ⋯ = T_{p}(f) = a_{p}q + higher terms.  (9.2.2)

Equating coefficients of q we see that if a_{1} = 0, then a_{p} = 0 for all p, hence a_{n} = 0 for all n, because of the multiplicativity of Fourier coefficients and the recurrence

a_{p^{r}} = a_{p^{r−1}}a_{p} − ε(p)p^{k−1}a_{p^{r−2}}.

This would mean that f = 0, a contradiction. Thus a_{1} ≠ 0, and it makes sense to normalize f so that a_{1} = 1. With this normalization, (9.2.2) implies that λ_{p} = a_{p}, as desired.

Remark 9.2.6. We even have that the operators ⟨d⟩ on S_{k}(Γ_{1}(N)) lie in ℤ[…, T_{n}, …]. It is enough to show ⟨p⟩ ∈ ℤ[…, T_{n}, …] for primes p, since each ⟨d⟩ can be written in terms of the ⟨p⟩. Since p ∤ N, we have that

T_{p^{2}} = T_{p}^{2} − ⟨p⟩p^{k−1},

so ⟨p⟩p^{k−1} = T_{p}^{2} − T_{p^{2}}. By Dirichlet’s theorem on primes in arithmetic progression, there is another prime q congruent to p mod N. Since p^{k−1} and q^{k−1} are relatively prime, there exist integers a and b such that ap^{k−1} + bq^{k−1} = 1. Then

⟨p⟩ = ⟨p⟩(ap^{k−1} + bq^{k−1}) = a(T_{p}^{2} − T_{p^{2}}) + b(T_{q}^{2} − T_{q^{2}}) ∈ ℤ[…, T_{n}, …].

9.3 Computing Cuspforms Using Modular Symbols

There is an isomorphism

S_{k}(Γ_{1}(N), ε)_{new} ≅ 𝕊_{k}(Γ_{1}(N), ε, ℂ)_{new}^{+}

of 𝕋 modules. Thus finding the systems of 𝕋-eigenvalues on cuspforms is the same as finding the systems of 𝕋-eigenvalues on cuspidal modular symbols.

Our strategy to compute S_{k}(Γ_{1}(N), ε) is to first reduce to computing spaces S_{k}(Γ_{1}(N), ε)_{new} using the Atkin-Lehner-Li decomposition (9.2.1). To compute S_{k}(Γ_{1}(N), ε)_{new} to a given precision, we compute the systems of eigenvalues of the Hecke operators T_{p} on V = 𝕊_{k}(Γ_{1}(N), ε, ℂ)_{new}^{+}. Using Proposition 9.2.5, we then recover a basis of q-expansions for newforms. Note that we only need to compute Hecke eigenvalues T_{p}, for p prime, not the T_{n} for n composite, since the a_{n} can be quickly recovered in terms of the a_{p} using multiplicativity and the recurrence.

For many problems, one is really interested in the newforms, not just any basis for S_{k}(Γ_{1}(N), ε). The are many other problems where just having a basis is enough, and knowing the newforms is not so important. Merel’s paper

[Mer94] culminates with the following algorithm to compute S_{k}(Γ_{1}(N), ε) without finding any eigenspaces:

Algorithm 9.3.1 (Merel’s Algorithm for Computing a Basis). 1. [Compute Modular Symbols] Using Algorithm 8.6.10, compute a presentation for V = 𝕊_{k}(Γ_{1}(N), ε)^{+} ⊗ ℚ(ε), viewed as a K = ℚ(ε) vector space, along with an action of Hecke operators T_{n}.

2. [Basis for Linear Dual] Write down a basis for V^{∗} = Hom(V, ℚ(ε)). E.g., if we identify V with K^{n} viewed as column vectors, then V^{∗} is the space of row vectors of length n, and the pairing is the row × column product.

3. [Find Generator] Find x ∈ V such that 𝕋x = V by choosing random x until we find one that generates. The set of x that fail to generate lie in a union of a finite number of proper subspace. (This can be seen by analyzing the structure of S_{k}(Γ_{1}(N), ε) as a 𝕋-module; see, e.g., my 252 notes.)

4. [Compute Basis] The set of power series

f_{i} = ∑_{n=1}^{m} ψ_{i}(T_{n}(x))q^{n} + O(q^{m+1})

form a basis for S_{k}(Γ_{1}(N), ε) to precision m.

In practice my experience is that my implementations of Algorithm 9.3.1 are significantly slower than the eigenspace algorithm that we will describe in the rest of this chapter. The theoretical complexity of Algorithm 9.3.1 may be better, because it is not necessary to factor any polynomials. Polynomial factorization is difficult from the analysis-of-complexity point of view, though usually fairly fast in practice. The eigenvalue algorithm only requires computing a few images T_{p}(x) for p prime and x a Manin symbol on which T_{p} can easily be computed. The Merel algorithm involves computing T_{n}(x) for all n, and a fairly easy x, which is potentially more work. (By “easy x”, I mean that computing T_{n}(x) is easier on x than on a completely random element of 𝕊_{k}(Γ_{1}(N), ε)^{+}, e.g., x could be a Manin symbol.)

9.4 Computing Systems of Eigenvalues

In this section we describe an algorithm for computing the system of Hecke eigenvalues associated to a simple subspace of a space of modular symbols. This algorithm is vastly better than naively doing linear algebra over the number field generated by the eigenvalues. It only involves linear algebra over the base field, and also yields a very compact representation for the answer, which is much better than writing the eigenvalues in terms of a power basis for a number field.

9.4.1 Computing Projection Onto a Subspace

Suppose V = ⊕W_{i} is the 𝕋-simple decomposition of V and fix a factor W_{j}. Then there is a unique 𝕋-equivariant homomorphism

π_{j} : V → W_{j}

such that π_{j} restricted to W_{j} is the identity map. We compute π_{j} using the following algorithm.

Algorithm 9.4.1 (Projection Matrix). INPUT: Decomposition V = ⊕W_{i}. OUTPUT: Matrix of Projection Onto a Factor W_{j}.

1. Let B be the matrix whose columns are got by concatenating together a basis for the factors W_{i}.

2. Compute C = B^{−1} using, e.g., computation of the reduced row echelon form of the augmented matrix [B|I], which is [I|C].

3. The projection matrix onto W_{j} is the submatrix of C got from the rows corresponding to W_{j}, i.e., if the basis vectors for W_{j} appear as columns n through m of B, then the projection matrix is got from rows n through m of C.

The algorithm works because the matrix of projection, written with respect to the basis of columns for B, is just given by an m − n + 1 row slice P of a diagonal matrix D with 1’s in the n through m positions. Thus projection with respect to the standard basis is given by P C, which is just rows n through m of B^{−1}.

Note that we only have to do the work of inverting B once; we then get all projection maps π_{i} for all i by taking appropriate submatrices of B.

9.4.2 Systems of Eigenvalues

Algorithm 9.4.2 (System of Eigenvalues). INPUT: A 𝕋-simple subspace W ⊂ V of modular symbols. OUTPUT: Maps ψ and e, where ψ : 𝕋_{K} → W is a K-linear map and e : W ≅ L is an isomorphism of W with a number field L, such that a_{n} = e(ψ(T_{n})) is the eigenvalue of the nth Hecke operator acting on a fixed 𝕋-eigenvector in W ⊗ \overline{ℚ}. Thus f = ∑_{n=1}^{∞} i(ψ(T_{n}))q^{n} is a cuspidal modular eigenform.

1. [Compute Projection] Using Algorithm 9.4.1, compute the 𝕋-equivariant projection map π : V → W. Remark: We can replace π by any K-vector space map φ : V → W′ such that Ker(π) = Ker(φ), where W′ is any vector space, and the rest of the algorithm works. For example, one could find such a φ by finding the simple submodule of V^{∗} = Hom(V, K) that is isomorphic to W, e.g., by applying Algorithm 7.4.8 to V^{∗} with T replaced by the transpose of T. This is what Cremona means in his book when he talks about find “left eigenvectors”.

2. [Choose v] Choose a nonzero element v ∈ V such that π(v) ≠ 0 and computation of T_{n}(v) is “easy”, e.g., choose v to be a Manin symbol.

3. [Map From Hecke Ring] Let ψ be the map 𝕋 → W, given by ψ(t) = π(tv). Note that computation of ψ is relatively easy, because v was chosen so that tv is relatively easy to compute. In particular, if t = T_{p}, we do not need to compute the full matrix of T_{p} on V; instead we just compute T_{p}(v). (We can even often compute eigenvalues for all the factors W_{i} just by computing one evaluation T_{p}(v) for a single easy v!)

4. [Find Generator] Find a random T ∈ 𝕋 such that the iterates

ψ(T^{0}), ψ(T), ψ(T^{2}), …, ψ(T^{d−1})

are a basis for W, where W has dimension d. For example, the T that was used to compute the decomposition V = ⊕W_{i} earlier would work.

5. [Characteristic Polynomial] Compute the characteristic polynomial f of T |_{W}, and let L = K[x]/(f) be the number field generated by a root of f. Because of how we chose T in Step 4, the minimal and characteristic polynomials of T |_{W} are equal, and both are irreducible, so L is an extension of K of degree d = dim(W). If in Step 4, we used the T used to compute the decomposition V = ⊕W_{i} earlier, then we already know f.

6. [Field Structure] In this step we endow W with a field structure. Let e : W → L be the unique K-linear isomorphism such that

e(ψ(T^{i})) ≡ x^{i} (mod f)

for i = 0, 1, 2, ..., deg(f) − 1. The map e is uniquely determined since the ψ(T^{i}) are a basis for W. To compute e, we compute the change of basis matrix from the standard basis for W to the basis {ψ(T^{i})}. This change of basis matrix is the inverse of the matrix whose rows are the ψ(T^{i}) for i = 0, ..., deg(f) − 1.

7. [Hecke Eigenvalues] Finally note that we have

a_{n} = e(ψ(T_{n})) = e(π(T_{n}(v)))

for Hecke operators T_{n}, where the a_{n} are eigenvalues. Output the maps ψ and e and terminate.

One reason we separate ψ and e is that when dim(W) is large, the values ψ(T_{n}) tend to take not too much space to store and are easier to compute, whereas each one of the values e(ψ(n)) are huge. John Cremona initially suggested to me the idea of separating these two maps. The function e typically involves large numbers if dim(W) is large, since e is got from the iterates of a single vector. For many applications, e.g., databases, it is better to store a matrix that defines e and the images under ψ of many T_{n}.

Remark 9.4.3. How can we find a minimal collection of information from which we can compute the map n ↦ ψ(T_{n})? Do we need the whole modular symbols presentation? No, we need only the image of each generating Manin symbol in M under projection. The Hecke operators are then given by the standard Manin symbols formulas, where we reduce all resulting Manin symbols to their image in M.

Example 9.4.4. The space S_{2}(Γ_{0}(23)) of cusp forms has dimension 2, and is spanned by two Gal(\overline{ℚ}/ℚ)-conjugate newforms, one of which is

f = ∑ q + aq^{2} + (−2a − 1)q^{3} + (−a − 1)q^{4} + 2aq^{5} + ⋯,

where a = (−1 + \sqrt{5})/2. We will use Algorithm 9.4.2 to compute a few of these coefficients.

The space 𝕄_{2}(Γ_{0}(23))^{+} of modular symbols has dimension 3. It has as basis the following basis of Manin symbols:

[(0, 0)], [(1, 0)], [(0, 1)],

where we use square brackets to differentiate Manin symbols from vectors. The Hecke operator

T_{2} = ( \begin{matrix}3 & 0 & 0 \\ 0 & 0 & 2 \\ −1 & 1/2 & −1 \end{matrix} )

has characteristic polynomial (x−3)(x^{2}+x−1). The kernel of T_{2}−3 corresponds to the span of the Eisenstein series of level 23 and weight 2, and the kernel V of T_{2}^{2} + T_{2} − 1 corresponds to S_{2}(Γ_{0}(23)). (We could also have computed V as the kernel of the boundary map 𝕄_{2}(Γ_{0}(23))^{+} → 𝔹_{2}(Γ_{0}(23))^{+}.) Each of the following steps corresponds to the same step of Algorithm 9.4.2.

1. [Compute Projection] Using the Algorithm 9.4.1, we compute projection onto V. The matrix whose first two columns are the echelon basis for V and whose last column is the echelon basis for the Eisenstein subspace is

( \begin{matrix}0 & 0 & 1 \\ 1 & 0 & −2/11 \\ 0 & 1 & −3/11 \end{matrix} )

and

B^{−1} = ( \begin{matrix}2/11 & 1 & 0 \\ 3/11 & 0 & 1 \\ 1 & 0 & 0 \end{matrix} ) ,

so projection onto V is given by the first two rows:

π = ( \begin{matrix}2/11 & 1 & 0 \\ 3/11 & 0 & 1 \end{matrix} ) .

2. [Choose v] Let v = (0, 1, 0)^{t}. Notice that π(v) = (1, 0)^{t} ≠ 0, and v = [(1, 0)] is a sum of only one Manin symbol, so it is easier to compute Hecke operators on v using Heilbronn matrices.

3. [Map From Hecke Ring] This step is purely conceptual, since no actual work needs to be done. We illustrate it by computing ψ(T_{1}) and ψ(T_{2}). We have

ψ(T_{1}) = π(v) = (1, 0)^{t},

and

ψ(T_{2}) = π(T_{2}(v)) = π((0, 0, 1/2)^{t}) = (0, 1/2)^{t}.

4. [Find Generator] We have

ψ(T_{2}^{0}) = ψ(T_{1}) = (1, 0)^{t},

which is clearly independent from ψ(T_{2}) = (0, 1/2)^{t}. Thus we find that the image of the powers of T = T_{2} generate V.

5. [Characteristic Polynomial] It is easy to compute the characteristic polynomial of a 2 × 2 matrix. The matrix of T_{2}|_{V} is ( \begin{matrix}0 & 2 \\ 1/2 & −1 \end{matrix} ), which has characteristic polynomial f = x^{2} + x − 1. Of course, we already knew this because we computed V as the kernel of T_{2}^{2} + T_{2} − 1.

6. [Field Structure] We have

ψ(T_{2}^{0}) = π(v) = (1, 0)^{t} and ψ(T_{2}) = (0, 1/2).

The matrix with rows the ψ(T_{2}^{i}) is ( \begin{matrix}1 & 0 \\ 0 & 1/2 \end{matrix} ), which has inverse e = ( \begin{matrix}1 & 0 \\ 0 & 2 \end{matrix} ). The matrix e defines an isomorphism between V and the field

L = ℚ[x]/(f) = ℚ((−1 + \sqrt{5})/2).

For example, e((1, 0)) = 1 and e((0, 1)) = 2x, where x = (−1 + \sqrt{5})/2.

7. [Hecke Eigenvalues] We have a_{n} = e(Ψ(T_{n})). For example,

a_{1} = e(Ψ(T_{1})) = e((1, 0)) = 1
a_{2} = e(Ψ(T_{2})) = e((0, 1/2)) = x
a_{3} = e(Ψ(T_{3})) = e(π(T_{3}(v))) = e(π((0, −1, −1)^{t})) = e((−1, −1)^{t}) = −1 − 2x
a_{4} = e(Ψ(T_{4})) = e(π((0, −1, −1/2)^{t})) = e((−1, −1/2)^{t}) = −1 − x
a_{5} = e(Ψ(T_{5})) = e(π((0, 0, 1)^{t})) = e((0, 1)^{t}) = 2x
a_{23} = e(Ψ(T_{23})) = e(π((0, 1, 0)^{t})) = e((1, 0)^{t}) = 1
a_{97} = e(Ψ(T_{23})) = e(π((0, 14, 3)^{t})) = e((14, 3)^{t}) = 14 + 6x

It is difficult to appreciate this algorithm without seeing how big the coefficients of the power series expansion of a newform typically are, when the newform is defined over a large field. For such examples, please browse [Ste04].

148 CHAPTER 9. COMPUTING SPACES OF MODULAR FORMS

Special Values of L-functions and Periods

This chapter is about how to approximate the integration pairing, and the induced period mapping from modular symbols to a complex vector space.

Let Γ be a subgroup of SL_{2}(ℤ) that contains Γ_{1}(N) for some N, and suppose

f = ∑_{n≥1} a_{n}q^{n} ∈ S_{k}(Γ).

is a newform. In this chapter we describe how to approximately compute the complex period mapping

Φ_{f} : 𝕄_{k}(Γ) → ℂ,

given by

Φ_{f}(P {α, β}) = ⟨f, P {α, β}⟩ = ∫_{α}^{β} f(z)P (z, 1)dz,

as in Section 8.5. As an application, we approximate the special values L(f, j), for j = 1, 2, …, k − 1 using (8.5.3) from page 116. We also compute the period lattice attached to a modular abelian variety, which is an important step, e.g., in enumeration of ℚ-curves [cite Gonzalez, Lario, etc.] or computation of a curve whose Jacobian is a modular abelian variety A_{f} [cite X. Wang and Ph.D. thesis from Essen].

The algorithms that we describe in this chapter are a generalization of the ones in [Cre97a] to other congruence subgroups, newforms of degree bigger than 1, and weight bigger than 2.

10.1 The Period Mapping and Complex Torus Attached to a Newform

150 CHAPTER 10. SPECIAL VALUES OF L-FUNCTIONS AND PERIODS

Fix a newform f ∈ S_{k}(Γ), where Γ_{1}(N) ⊂ Γ for some N. Let f_{1}, …, f_{d} be the Gal(\overline{ℚ}/ℚ)-conjugates of f, where Gal(\overline{ℚ}/ℚ) acts via its action on the Fourier coefficients, which are algebraic integers. Let

V_{f} = ℂf_{1} ⊕ ⋯ ⊕ ℂf_{d} ⊂ S_{k}(Γ)

be the subspace of cusp forms spanned by the Gal(\overline{ℚ}/ℚ)-conjugates of f. The integration pairing induces a 𝕋-equivariant homomorphism

Φ_{f} : 𝕄_{k}(Γ) → V_{f}^{∗} = Hom_{ℂ}(V_{f}, ℂ),

from modular symbols to the ℂ-linear dual V_{f}^{∗} of V_{f}. Here 𝕋 acts on V_{f}^{∗} via (φ.t)(x) = φ(tx), and this homomorphism is 𝕋-stable by Theorem 8.5.4. The complex torus attached to f is the quotient

A_{f}(ℂ) = V_{f}^{∗}/Φ_{f}(𝕊_{k}(Γ, ℤ)).

Note that 𝕊_{k}(Γ, ℤ) = 𝕊_{k}(Γ), and we include the ℤ in the notation here just to emphasize that these are integral modular symbols.

When k = 2, we can also construct A_{f} as a quotient of the modular Jacobian Jac(X_{Γ}), so A_{f} is an abelian variety canonically defined over ℚ.

In general, we have an exact sequence

0 → Ker(Φ_{f}) → 𝕊_{k}(Γ) → V_{f}^{∗} → A_{f}(ℂ) → 0.

When k = 2, we have an exact sequence

0 → B → Jac(X_{Γ}) → A_{f} → 0,

where X_{Γ} = Γ\𝔥^{∗} is the modular curve associated to Γ and B is some abelian variety. We have

H_{1}(Jac(X_{Γ}), ℤ) ≅ H_{1}(X_{Γ}, ℤ) ≅ 𝕊_{2}(Γ),

so the induced map on homology is

0 → H_{1}(B, ℤ) → 𝕊_{2}(Γ) → H_{1}(A_{f}, ℤ).

Thus we can identify the homology of A_{f} with a quotient of modular symbols.

Remark 10.1.1 (Warnings). In the literature, the notation A_{f} is sometimes used for the abelian subvariety of C ⊂ Jac(X_{Γ}) attached to f. Here C is the abelian variety dual of our A_{f}. Also, f could be a newform for a different group Γ′, and then the corresponding abelian variety A_{f} could be different, so A_{f} depends on the choice of Γ. For example, any newform for Γ_{0}(N) is also a newform for Γ_{1}(N), but the corresponding A_{f}’s need not be equal.

Remark 10.1.2. When k > 2, it is my understanding that the complex torus A_{f}(ℂ) is an abelian variety over ℂ. This additional abelian variety structure comes somehow from the Petersson inner product. I believe Shimura proves this in [Shi59].

10.2 Extended Modular Symbols

In this section, we extend the notion of modular symbols to allows symbols of the form P {w, z} where w and z are arbitrary elements of 𝔥^{∗} = 𝔥 ∪ ℙ^{1}(ℚ).

Definition 10.2.1 (Extended Modular Symbols). The abelian group \overline{𝕄}_{k} of extended modular symbols of weight k is the ℤ-span of symbols P {w, z}, with P ∈ V_{k−2} a homogenous polynomial of degree k − 2 with integer coefficients, modulo the relations

P · ({w, y} + {y, z} + {z, w}) = 0

and modulo any torsion.

Fix a finite-index subgroup Γ ⊂ SL_{2}(ℤ). Just as for usual modular symbols, \overline{𝕄}_{k} is equipped with an action of Γ, and we define the space of extended modular of weight k for Γ to be the biggest quotient

\overline{𝕄}_{k}(Γ) = (\overline{𝕄}_{k}/\{γx − x : γ ∈ Γ, x ∈ \overline{𝕄}_{k}\})/ tor

of \overline{𝕄}_{k}(Γ) that is torsion free and fixed by Γ.

The integration pairing extends naturally to a pairing

(S_{k}(Γ) ⊕ \overline{S}_{k}(Γ)) × \overline{𝕄}_{k}(Γ) → ℂ,  (10.2.1)

where we recall that \overline{S}_{k}(Γ) denotes the space of antiholomorphic cusp forms. Moreover, if

ι : 𝕄_{k}(Γ) ↪ \overline{𝕄}_{k}(Γ)

is the natural embedding, then ι respects (10.2.1) in the sense that for all f ∈ S_{k}(Γ) ⊕ \overline{S}_{k}(Γ) and x ∈ 𝕄_{k}(Γ), we have

⟨f, x⟩ = ⟨f, ι(x)⟩.

As we will see soon, it is often useful to replace x ∈ 𝕄_{k}(Γ) first by ι(x), and then by an equivalent sum ∑ y_{i} of symbols y_{i} ∈ \overline{𝕄}_{k}(N, ε) such that ⟨f, ∑ y_{i}⟩ is easier to compute numerically than ⟨f, x⟩.

For any Dirichlet character ε modulo N we also define \overline{𝕄}_{k}(Γ_{1}(N), ε) to be the quotient of \overline{𝕄}_{k}(Γ_{1}(N), ℤ[ε]) by the relations γ(x)−ε(γ)x, for all γ ∈ Γ_{0}(N), and modulo any torsion. (Recall that if γ = ( \begin{matrix}a & b \\ c & d \end{matrix} ), then ε(γ) = ε(d).)

10.3 Numerically Approximating Period Integrals

In this section we assume Γ is a congruence subgroup of SL_{2}(ℤ) that contains Γ_{1}(N) for some N. Suppose α ∈ 𝔥, so Im(α) > 0 and m is an integer such that 0 ≤ m ≤ k − 2, and consider the extended modular symbol X^{m}Y^{k−2−m}{α, ∞}.

Given an arbitrary cusp form f = ∑_{n=1}^{∞} a_{n}q^{n} ∈ S_{k}(Γ), we find that

Φ_{f}(X^{m}Y^{k−2−m}{α, ∞}) = ⟨f, X^{m}Y^{k−2−m}{α, ∞}⟩  (10.3.1)
= ∫_{α}^{i∞} f(z)z^{m}dz  (10.3.2)
= ∑_{n=1}^{∞} a_{n} ∫_{α}^{i∞} e^{2πinz}z^{m}dz.  (10.3.3)

The reversal of summation and integration is justified because the imaginary part of α is positive so that the sum converges absolutely. This is made explicit in the following lemma, which one proves by repeated integration by parts.

Lemma 10.3.1.

∫_{α}^{i∞} e^{2πinz}z^{m}dz = e^{2πinα} ∑_{s=0}^{m} (\frac{(−1)^{s}α^{m−s}}{(2πin)^{s+1}} ∏_{j=(m+1)−s}^{m} j) .  (10.3.4)

In practice we will be interested in computing the period map Φ_{f} when f ∈ S_{k}(Γ) is a newform. Since f is a newform, there is a Dirichlet character ε such that f ∈ S_{k}(Γ_{1}(N), ε). The period map Φ_{f} : 𝕄_{k}(Γ) → ℂ then factors through the quotient 𝕄_{k}(Γ_{1}(N), ε), so it suffices to compute the period map on modular symbols in 𝕄_{k}(Γ_{1}(N), ε).

The following proposition is a higher weight analogue of [Cre97a, Prop. 2.1.1(5)].

Proposition 10.3.2. For any γ ∈ Γ_{0}(N), P ∈ V_{k−2} and α ∈ 𝔥^{∗}, we have the following relation in \overline{𝕄}_{k}(Γ_{1}(N), ε):

P {∞, γ(∞)} = P {α, γ(α)} + (P − ε(γ)γ^{−1}P){∞, α} (10.3.5)
= ε(γ)(γ^{−1}P){α, ∞} − P {γ(α), ∞}.  (10.3.6)

Proof. By definition, if x ∈ 𝕄_{k}(N, ε) is a modular symbol and γ ∈ Γ_{0}(N) then γx = ε(γ)x. Thus ε(γ)γ^{−1}x = x, so

P {∞, γ(∞)} = P {∞, α} + P {α, γ(α)} + P {γ(α), γ(∞)}
= P {∞, α} + P {α, γ(α)} + ε(γ)γ^{−1}(P {γ(α), γ(∞)})
= P {∞, α} + P {α, γ(α)} + ε(γ)(γ^{−1}P){α, ∞}
= P {α, γ(α)} + P {∞, α} − ε(γ)(γ^{−1}P){∞, α}
= P {α, γ(α)} + (P − ε(γ)γ^{−1}P){∞, α}.

The second equality in the statement of the proposition now follows easily.

In the classical case of weight two and trivial character, the “error term” (P −ε(γ)γ^{−1}P){∞, α} vanishes. In general this term does not vanish. However, we can suitably modify the formulas found in [Cre97a, 2.10], and still obtain an algorithm for computing period integrals.

Algorithm 10.3.3 (Period Integrals). INPUT: A matrix γ ∈ Γ_{0}(N), a polynomial P ∈ V_{k−2} and a cuspidal modular form f ∈ S_{k}(Γ_{1}(N), ε) presented as a q-expansion to some precision. OUTPUT: The period integral ⟨g, P {∞, γ(∞)}⟩, computed to some precision.

1. Write γ = ( \begin{matrix}a & b \\ cN & d \end{matrix} ) ∈ Γ_{0}(N), with a, b, c, d ∈ ℤ, and set α = \frac{−d+i}{cN} in

Proposition 10.3.2.

2. Replacing γ by −γ if necessary, we find that the imaginary parts of α and γ(α) = \frac{a+i}{cN} are both equal to the positive number \frac{1}{cN}.

3. Use (10.3.3) and Lemma 10.3.1 to compute the period integrals of Proposition 10.3.2.

Remark 10.3.4. I have not specified the precision of the output in terms of the input, which is a major problem with this algorithm.

It would be nice to know that the modular symbols of the form P {∞, γ(∞)}, for P ∈ V_{k−2} and γ ∈ Γ_{0}(N) generate a large subspace of 𝕄_{k}(Γ_{1}(N), ε) ⊗ ℚ. When k = 2 and ε = 1, Manin proved in [Man72], that the map Γ_{0}(N) → H_{1}(X_{0}(N), ℤ) sending γ to {0, γ(0)} is a surjective group homomorphism. When k > 2, I have not found any similar group-theoretic statement. However, we have the following theorem.

Theorem 10.3.5. Any element of 𝕊_{k}(Γ_{1}(N), ε) can be written in the form

∑_{i=1}^{n} P_{i}{∞, γ_{i}(∞)}

for some P_{i} ∈ V_{k−2} and γ_{i} ∈ Γ_{0}(N). Moreover, P_{i} and γ_{i} can be chosen so that ∑ P_{i} = ∑ ε(γ_{i})γ_{i}^{−1}(P_{i}), so the error term in (10.3.6) vanishes.

The author and Helena Verrill prove this theorem in [SV01]. See also [[what that Edixhoven student is writing up...]] The condition that the error term vanishes, means that one can replace ∞ by any α in the expression for the modular symbol and obtain an equivalent modular symbol. For this reason, we call such modular symbols transportable, as illustrated in Figure 10.3.1.

Note that in general not every element of the form P {∞, γ(∞)} must lie in 𝕊_{k}(N, ε). However, if γP = P then P {∞, γ(∞)} does lie in 𝕊_{k}(N, ε). It would be interesting to know under what circumstances 𝕊_{k}(N, ε) is generated by symbols of the form P {∞, γ(∞)} with γP = P. This sometimes fails for k odd; for example, when k = 3 the condition γP = P implies that γ ∈ Γ_{0}(N) has an eigenvector with eigenvalue 1, hence is of finite order. When k is even the author can see no obstruction to generating 𝕊_{k}(N, ε) using such symbols.

[figure: ∞; P; γ∞; Q; β∞; α; P; γα; Q; βα]

Figure 10.3.1: “Transporting” a transportable modular symbol.

10.4 Speeding Convergence Using the Atkin-Lehner Operator

Let w_{N} = ( \begin{matrix}0 & −1 \\ N & 0 \end{matrix} ) ∈ M_{2}(ℤ). Consider the Atkin-Lehner involution W_{N} on M_{k}(Γ_{1}(N)), which is defined by

W_{N}(f) = N^{(2−k)/2} · f|_{[w_{N}]_{k}}

= N^{(2−k)/2} · f (−\frac{1}{Nz} ) · N^{k−1} · (Nz)^{−k}

= N^{−k/2} · z^{−k} · f (−\frac{1}{Nz} ) .

Here we take the positive square root if k is odd. Then W_{N}^{2} = (−1)^{k} is an involution when k is even.

There is an operator on modular symbols, which we also denote W_{N}, which is given by

W_{N}(P {α, β}) = N^{(2−k)/2} · w_{N}(P){w_{N}(α), w_{N}(β)}

= N^{(2−k)/2} · P (−Y, NX) \{−\frac{1}{αN} , −\frac{1}{βN} \} ,

and one has that if f ∈ S_{k}(Γ_{1}(N)) and x ∈ 𝕄_{k}(Γ_{1}(N)), then

⟨W_{N}(f), x⟩ = ⟨f, W_{N}(x)⟩.

If ε is a Dirichlet character mod N, then the operator W_{N} sends S_{k}(Γ_{1}(N), ε) to S_{k}(Γ_{1}(N), \overline{ε}). Thus if ε^{2} = 1, then W_{N} preserves S_{k}(Γ_{1}(N), ε). In particular, W_{N} acts on S_{k}(Γ_{0}(N)).

10.4. SPEEDING CONVERGENCE USING THE ATKIN-LEHNER OPERATOR155

The follow proposition shows how to compute the pairing ⟨f, P {∞, γ(∞)}⟩ under certain restrictive assumptions. It generalizes a result of [Cre97b] to higher weight.

Proposition 10.4.1. Let f ∈ S_{k}(Γ_{1}(N), ε) be a cusp form which is an eigenform for the Atkin-Lehner operator W_{N} having eigenvalue w ∈ {±1} (thus ε^{2} = 1 and k is even). Then for any γ ∈ Γ_{0}(N) and any P ∈ V_{k−2}, with the property that γP = ε(γ)P, we have the following formula, valid for any α ∈ 𝔥:

⟨g, P \{∞, γ(∞)\}⟩ = ⟨g, w \frac{P (Y, −NX)}{N^{k/2−1}}\{w_{N}(α), ∞\}

+ (P − w \frac{P (Y, −NX)}{N^{k/2−1}}) \{i/\sqrt{N}, ∞\} − P \{γ(α), ∞\}⟩.

Here w_{N}(α) = −\frac{1}{Nα}.

Proof. By Proposition 10.3.2 our condition on P implies that P {∞, γ(∞)} = P {α, γ(α)}. The steps of the following computation are described below.

⟨f, P {α, γ(α)}⟩

= ⟨f, P \{α, i/\sqrt{N}\} + P \{i/\sqrt{N}, W (α)\} + P \{W (α), γ(α)\}⟩

= ⟨f, w \frac{W (P)}{N^{k/2−1}} \{W (α), i/\sqrt{N}\} + P \{i/\sqrt{N}, W (α)\} + P \{W (α), γ(α)\}⟩

= ⟨f, (w \frac{W (P)}{N^{k/2−1}} − P ) \{W (α), i/\sqrt{N}\} + P \{W (α), ∞\} − P \{γ(α), ∞\}⟩

= ⟨f, w \frac{W (P)}{N^{k/2−1}} \{W (α), ∞\} + (P − w \frac{W (P)}{N^{k/2−1}} ) \{i/\sqrt{N}, ∞\} − P \{γ(α), ∞\}⟩ .

For the first step, we break the path into three paths. In the second step, we apply the W -involution to the first term, and use that the action of W is compatible with the pairing ⟨ , ⟩ and that f is an eigenvector with eigenvalue w. The third step involves combining the first two terms and breaking up the third. In the final step, we replace \{W (α), i/\sqrt{N}\} by \{W (α), ∞\} + \{∞, i/\sqrt{N}\} and regroup.

A good choice for α is α = γ^{−1} (\frac{b}{d} + \frac{i}{d\sqrt{N}} ), so that W (α) = \frac{c}{d} + \frac{i}{d\sqrt{N}}. This maximizes the minimum of the imaginary parts of α and W (α), which results in series that converge more quickly.

Let γ = ( \begin{matrix}a & b \\ c & d \end{matrix} ) ∈ Γ_{0}(N). The polynomial

P (X, Y) = (cX^{2} + (d − a)XY − bY^{2})^{\frac{k−2}{2}}

satisfies γ(P) = P. We obtained this formula by viewing V_{k−2} as the (k − 2)th symmetric product of the two-dimensional space on which Γ_{0}(N) acts naturally. For example, observe that since det(γ) = 1 the symmetric product of two eigenvectors for γ is an eigenvector in V_{2} having eigenvalue 1. For the same reason, if ε(γ) ≠ 1, there need not be a polynomial P (X, Y) such that γ(P) = ε(γ)P. One remedy is to choose another γ so that ε(γ) = 1.

Since the imaginary parts of the terms i/\sqrt{N}, α and W (α) in the proposition are all relatively large, the sums appearing at the beginning of Section 10.3 converge quickly if d is small. It is extremely important to choose γ in Proposition 10.4.1 with d small, otherwise the series will converge very slowly.

Remark 10.4.2. There should be a generalization of Proposition 10.4.1 without the restrictions that ε^{2} = 1 and k is even. I would love to include something like this in the final version of this book. Student project?

10.4.1 Another Atkin-Lehner Trick

Suppose E is an elliptic curve and let L(E, s) be the corresponding L-function. Let ε ∈ {±1} be the root number of E, i.e., the sign of the functional equation for L(E, s), so Λ(E, s) = εΛ(E, 2 − s), where Λ(E, s) = N^{s/2}(2π)^{−s}Γ(s)L(E, s). Let f = f_{E} be the modular form associated to E. If W_{N}(f) = wf, then ε = −w (see Exercise 10.2). We have

L(E, 1) = −2π ∫_{0}^{i∞} f(z) dz
= −2πi ⟨f, {0, ∞}⟩
= −2πi ⟨f, \{0, i/\sqrt{N}\} + \{i/\sqrt{N}, ∞\}⟩
= −2πi ⟨wf, \{w_{N}(0), w_{N}(i/\sqrt{N})\} + \{i/\sqrt{N}, ∞\}⟩
= −2πi ⟨wf, \{∞, i/\sqrt{N}\} + \{i/\sqrt{N}, ∞\}⟩
= −2πi (w − 1) ⟨f, \{∞, i/\sqrt{N}\}⟩

If w = 1, then L(E, 1) = 0. If w = −1, then

L(E, 1) = 4πi ⟨f, \{∞, i/\sqrt{N}\}⟩ = 2 ∑_{n=1}^{∞} \frac{a_{n}}{n} e^{−2πn/\sqrt{N}}.  (10.4.1)

For much more about computing with L-functions of elliptic curves, including a trick for computing ε quickly without directly computing W_{N}, see [Coh93, §7.5] and [Cre97a, §2.11]. One can also find higher derivatives L^{(r)}(E, 1) by a formula similar to (10.4.1) (see [Cre97a, §2.13]).

10.5 Computing the Period Mapping

Fix a newform f = ∑ a_{n}q^{n} ∈ S_{k}(Γ), where Γ_{1}(N) ⊂ Γ for some N. Let I = I_{f} ⊂ 𝕋 be the kernel of the ring homomorphism 𝕋 → K_{f} = ℚ(a_{2}, …) that sends T_{n} to a_{n}. Let Θ_{f} be the rational period mapping associated to f and Φ_{f} the period mapping associated to the Gal(\overline{ℚ}/ℚ)-conjugates of f, so we have a commutative diagram

\xymatrix{𝕄_{k}(Γ)_{ℚ} \ar[dr]_{Θ_{f}} \ar[rr]^{Φ_{f}} &  & Hom_{ℂ}(S_{k}(Γ)[I], ℂ) \\  & \frac{𝕄_{k}(Γ)_{ℚ}}{Ker(Φ_{f})} \ar@{^{(}->}[ur]^{i_{f}}}

Recall that the cokernel of Φ_{f} is the complex torus A_{f}(ℂ).

The Hecke algebra 𝕋 acts on the linear dual

𝕄_{k}(Γ)^{∗} = Hom(𝕄_{k}(Γ), ℚ)

by (t.φ)(x) = φ(tx). Since f is a newform, if θ_{1}, …, θ_{d} is a basis for 𝕄_{k}(Γ)_{ℚ}^{∗}[I], then

Ker(Φ_{f}) = Ker(θ_{1}) ⊕ ⋯ ⊕ Ker(θ_{d}).

Thus we can compute Ker(Φ_{f}), hence Θ_{f}, so to compute Φ_{f} we only need to compute i_{f}.

Let g_{1}, …, g_{d} be a basis for the ℚ-vector space

S_{k}(Γ; ℚ)[I] = S_{k}(Γ) ∩ ℚ[[q]],

i.e., the space of cusp forms with rational Fourier expansion. We will compute Φ_{f} with respect to the basis of Hom_{ℚ}(S_{k}(Γ; ℚ)[I], ℂ) dual to this basis. Choose elements x_{1}, …, x_{d} ∈ 𝕄_{k}(Γ) with the following properties:

1. Using Proposition 10.3.2 or Proposition 10.4.1 it is possible to compute the period integrals ⟨g_{i}, x_{j}⟩, i, j ∈ {1, … d} efficiently.

2. The 2d elements v + η(v) and v − η(v) for v = Θ_{f}(x_{1}), …, Θ_{f}(x_{d}) span a space of dimension 2d (i.e., they span 𝕄_{k}(Γ)/ Ker(Φ_{f})).

Given this data, we can compute

i_{f}(v + η(v)) = 2Re(⟨g_{1}, x_{i}⟩, …, ⟨g_{d}, x_{i}⟩)

and

i_{f}(v − η(v)) = 2iIm(⟨g_{1}, x_{i}⟩, …, ⟨g_{d}, x_{i}⟩).

We break the integrals into real and imaginary parts because this increases the precision of our answers. Since the vectors v_{n}+η(v_{n}) and v_{n}−η(v_{n}), n = 1, …, d span 𝕄_{k}(N, ε)_{ℚ}/ Ker(Φ_{f}), we have computed i_{f}.

Remark 10.5.1. We want to find symbols x_{i} satisfying the conditions of Proposition 10.4.1. This is usually possible when d is very small, but in practice I have had problems doing this when d is large.

Remark 10.5.2. The above strategy was motivated by [Cre97a, §2.10].

Remark 10.5.3. The following idea just occured to me. We could use that ⟨T_{n}(g), x⟩ = ⟨g, T_{n}(x)⟩ for any Hecke operator T_{n}, so that we only need to compute the period integrals ⟨g, x_{i}⟩. Then we obtain all pairings ⟨T_{n}(g), x_{i}⟩ = ⟨g, T_{n}(x_{i})⟩. Since the T_{n}(g) span the simple 𝕋-module S_{k}(Γ; ℚ)[I], this must give all pairings. However, it requires computing only 2d pairings instead of 2d^{2} pairings, which is potentially a huge savings when d is large.

10.6 Computing Elliptic Curves of Given Conductor

10.6.1 Using Modular Symbols

Using modular symbols and the period map, we can compute all elliptic curves over ℚ of conductor N, up to isogeny. The algorithm in this section gives all modular elliptic curves, i.e., elliptic curves attached to modular forms, of conductor N. Fortunately, it is now known by [Wil95, BCDT01, TW95] that every elliptic curve over ℚ is modular, so the procedure described in this section gives all elliptic curves, up to isogeny, of given conductor. I think this algorithm was first introduced by Tingly (??), and later refined by Cremona [Cre97a].

Algorithm 10.6.1 (Elliptic Curves of Conductor N). INPUT: A positive integer N. OUTPUT: A list of Weierstrass equations for the elliptic curves of conductor N, up to isogeny.

1. [Compute Modular Symbols] Compute 𝕄_{2}(Γ_{0}(N)) using Section 8.6.

2. [Find Rational Eigenspaces] Find the two-dimensional eigenspaces V in 𝕄_{2}(Γ_{0}(N))_{new} that correspond to elliptic curves. Do not use the decomposition algorithms from Section 7.4, which are too complicated, and give way more information than we need. Instead, for the first few primes p ∤ N, compute all eigenspaces Ker(T_{p} − a), where a runs through integers with −2\sqrt{p} < a < 2\sqrt{p}. Intersect these eigenspaces to find the eigenspaces that correspond to elliptic curves. To find just the new ones, either compute the degeneracy maps to lower level, or find all the rational eigenspaces of all levels that strictly divide N and exclude them.

3. [Find Rational Newforms] Using Algorithm 9.4.2, find each rational newform f = ∑_{n=1}^{∞} a_{n}q^{n} ∈ ℤ[[q]] associated to each eigenspace V found in Step 2.

4. [Find Each Curve] For each rational eigenvector f found in Step 3, do the following:

10.6. COMPUTING ELLIPTIC CURVES OF GIVEN CONDUCTOR 159

(a) [Period Lattice] Compute the corresponding period lattice Λ = ℤω_{1}+ ℤω_{2} by computing the image of Φ_{f}, as described in Section 10.5.

(b) [Compute τ] Let τ = ω_{1}/ω_{2}. If Im(τ) < 0, swap ω_{1} and ω_{2}, so Im(τ) > 0. By successively applying generators of SL_{2}(ℤ), we find an SL_{2}(ℤ) equivalent element τ′ in the standard fundamental domain, so |Re(τ′)| ≤ 1/2 and |τ| ≥ 1.

(c) [c-invariants] Compute the invariants c_{4} and c_{6} of the lattice Λ using the following rapidly convergent series:

c_{4} = (\frac{2π}{ω_{2}} )^{4} · (1 + 240 ∑_{n=1}^{∞} \frac{n^{3}q^{n}}{1 − q^{n}} )

c_{6} = (\frac{2π}{ω_{2}} )^{6} · (1 − 504 ∑_{n=1}^{∞} \frac{n^{5}q^{n}}{1 − q^{n}} ) ,

where q = e^{2πiτ′}, where τ′ is as in Step 4b. A theorem of Edixhoven (that the Manin constant is an integer) implies that the invariants c_{4} and c_{6} of Λ are integers, so it is only necessary to compute Λ to large precision to determine them.

(d) [Elliptic Curve] An elliptic curve with invariants c_{4} and c_{6} is

E : y^{2} = x^{3} − \frac{c_{4}}{48}x − \frac{c_{6}}{864}.

(e) [Prove Correctness] Compute the conductor of E. If the conductor of E is not N, then recompute c_{4} and c_{6} using a larger precision everywhere (e.g., more terms of f, reals to larger precision, etc.) If the conductor is N, compute the coefficients b_{p} of the modular form g = g_{E} attached to the elliptic curve E, for p ≤ #ℙ^{1}(ℤ/Nℤ)/6. Verify that a_{p} = b_{p}, where a_{p} are the coefficients of f. If this equality holds, then E must be isogenous to the elliptic curve attached to f, by the Sturm bound (Theorem 11.1.2) and Faltings’s isogeny theorem. If the equality fails for some p, recompute c_{4} and c_{6} to larger precision.

There are a couple of tricks to optimize the above algorithm. For example, one can work separately with 𝕄_{k}(Γ_{0}(N))_{new}^{+} and 𝕄_{k}(Γ_{0}(N))_{new}^{−} and get enough information to find E, up to isogeny (see [Cre97b]).

Once we have one curve from each isogeny class of curves of conductor N, we can find each curve in each isogeny class, hence all curves of conductor N. If E/ℚ is an elliptic curve, then any curve isogenous to E is isogenous via a chain of isogenous of prime degree. There is an a priori bound on the degrees of these isogenous due to Mazur. Also, there are various methods for finding all isogenous from E of a given fixed degree. See [Cre97a, §3.8] for more details.

10.6.2 Finding Curves by Finding S-Integral Points

Cremona and others have recently been systematically developing an alternative complementary approach to the problem of computing all elliptic curves of given conductor (see [CL04]). Instead of computing all curves of given conductor, we instead consider the seemingly more difficult problem of find all curves with good reduction outside a finite set S of primes. Since one can compute the conductor of a curve using Tate’s algorithm [Tat75, Cre97a, §3.2], if we know all curves with good reduction outside S, we can find all curves of conductor N by letting S be the set of prime divisors of N.

There is a strategy for finding all curves with good reduction outside S. It is not a provably-correct algorithm, in the sense that it is always guarenteed to terminate (the modular symbols method above is an algorithm), but in practice it often works, and I think one conjectures that it always does. Also, this strategy makes sense over any number field, whereas the modular symbols method does not, though there are generalizations of modular symbols to other number fields.

Fix a finite set S of primes of a number field K. It is a theorem of Shafarevich that there are only finitely many elliptic curves with good reduction outside S (see [Sil92, §IX.6]). His proof uses that the group of S-units in K is finite, and Siegel’s theorem that there are only finitely many S-integral points on an elliptic curve. One can make all this explicit, and sometimes in practice one can compute all these S-integral points.

The problem of finding all elliptic curves with good reduction outside of S can be broken into several subproblems, the main ones being:

1. Determine the following finite subgroup of K^{∗}/(K^{∗})^{m}:

K(S, m) = {x ∈ K^{∗}/(K^{∗})^{m} : m | ord_{𝔭}(x) all 𝔭 ∉ S}.

2. Find all S-integral points on certain elliptic curves y^{2} = x^{3} + k.

In [CL04], there is one example, where he finds all curves of conductor N = 2^{8} · 17^{2} = 73984 by finding all curves with good reduction outside {2, 17}. He finds 32 curves of conductor 73984 that divide into 16 isogeny classes. He remarks that dim S_{2}(Γ_{0}(N)) = 9577, and his modular symbols program was not able to find these curves at this high of level (presumably due to memory constraints?).

10.7 Examples

10.7.1 Jacobians of genus-two curves

The author is among the the six authors of [FpS^{+}01], who gather empirical evidence for the BSD conjecture for Jacobian of genus two curves. Of the 32 Jacobians considered, all but four are optimal quotients of J_{0}(N) for some N. The methods of this section can be used to compute Ω_{f}^{+} for the Jacobians of these 28 curves. Using explicit models for the genus two curves, the authors of [FpS^{+}01] computed the measure of A with respect to a basis for the Néron differentials of A. In all 28 cases our answers agreed to the precision computed. Thus in these cases we have numerically verified that the Manin constant equals 1.

The first example considered in [FpS^{+}01] is the Jacobian A = J_{0}(23) of the modular curve X_{0}(23). This curve has as a model

y^{2} + (x^{3} + x + 1)y = −2x^{5} − 3x^{2} + 2x − 2

from which one can compute the BSD Ω_{A} = 2.7328.... The following is an integral basis of cusp forms for S_{2}(23).

g_{1} = q − q^{3} − q^{4} − 2q^{6} + 2q^{7} + ⋯
g_{2} = q^{2} − 2q^{3} − q^{4} + 2q^{5} + q^{6} + 2q^{7} + ⋯

The space 𝕄_{2}(23; ℚ) of modular symbols has dimension five and is spanned by {−1/19, 0}, {−1/17, 0}, {−1/15, 0}, {−1/11, 0} and {∞, 0}. The submodule 𝕊_{2}(23; ℤ) has rank four and has as basis the first four of the above five symbols. Choose γ_{1} = ( \begin{matrix}8 & 1 \\ 23 & 3 \end{matrix} ) and γ_{2} = ( \begin{matrix}6 & 1 \\ 23 & 4 \end{matrix} ) and let x_{i} = \{∞, γ_{i}(∞)\}. Using the W_{N}- trick (see Section 10.4) we compute the period integrals ⟨g_{i}, x_{j}⟩ using 97 terms of the q-expansions of g_{1} and g_{2}, and obtain

\begin{matrix}⟨g_{1}, x_{1}⟩ ∼ −1.3543 + 1.0838i, & ⟨g_{1}, x_{2}⟩ ∼ −0.5915 + 1.6875i \\ ⟨g_{2}, x_{1}⟩ ∼ −0.5915 − 0.4801i, & ⟨g_{2}, x_{2}⟩ ∼ −0.7628 + 0.6037i \end{matrix}

Using 97 terms we already obtain about 14 decimal digits of accuracy, but we do not reproduce them all here. We next find that

⟨g_{1}, x_{1} + x_{1}^{∗}⟩ ∼ 2Re(−1.3543 + 1.0838i) = 2.7086,

and so on. Upon writing each generator of 𝕊_{2}(23) in terms of x_{1} + x_{1}^{∗}, x_{1} − x_{1}^{∗}, x_{2} + x_{2}^{∗} and x_{2} − x_{2}^{∗} we discover that the period mapping with respect to the basis dual to g_{1} and g_{2} is (approximately)

\begin{matrix}\{−1/19, 0\} & ↦ & ( 0.5915 − 1.6875i, & 0.7628 − 0.6037i) \\ \{−1/17, 0\} & ↦ & (−0.5915 − 1.6875i, & −0.7628 − 0.6037i) \\ \{−1/15, 0\} & ↦ & (−1.3543 − 1.0838i, & −0.5915 + 0.4801i) \\ \{−1/11, 0\} & ↦ & (−1.5256, & 0.3425) \end{matrix}

Working in 𝕊_{2}(23) we find 𝕊_{2}(23)^{+} is spanned by {−1/19, 0} − {−1/17, 0} and {−1/11, 0}. There is only one real component so

Ω_{I}^{+} ∼ | \begin{matrix}1.1831 & 1.5256 \\ −1.5256 & 0.3425 \end{matrix} | = 2.7327...

To greater precision we find that Ω_{f}^{+} ∼ 2.7327505324965. This agrees with the value in [FpS^{+}01]; since the Manin constant is an integer, it must equal 1.

10.7.2 Level one cusp forms

In the following two sections we consider several specific examples of tori attached to modular forms of weight greater than two.

Table 10.7.1: Volumes associated to level one cusp forms.

\begin{matrix}k & Ω^{+} & Ω^{−} \\ 12 & 0.002281474899 & 0.000971088287i \\ 16 & 0.003927981492 & 0.000566379403i \\ 18 & 0.000286607497 & 0.023020042428i \\ 20 & 0.008297636952 & 0.0005609325015i \\ 22 & 0.002589288079 & 0.0020245743816i \\ 24 & 0.000000002968 & 0.0000000054322i \\ 26 & 0.003377464512 & 0.3910726132671i \\ 28 & 0.000000015627 & 0.0000000029272i \end{matrix}

Let k ≥ 12 be an even integer. Associated to each Galois conjugacy class of normalized eigenforms f, there is a torus A_{f} over ℝ. The real and minus volume of the first few of these tori are displayed in Table 10.7.1. For weights 24 and 28 we give Ω^{−}/i so that the columns will line up nicely. In each case, 97 terms of the q-expansion were used.

The volumes appear to be much smaller than the volumes of weight two abelian varieties. The dimension of each A_{f} is 1, except for weights 24 and 28 when the dimension is 2.

10.7.3 CM elliptic curves of weight greater than two

Let f be a rational newform with “complex multiplication”, in the sense that “half” of the Fourier coefficients of f are zero. For our purposes, it is not necessary to define complex multiplication any more precisely. Experimentally, it appears that the associated elliptic A_{f} has rational j-invariant. As evidence for this we present Table 10.7.2, which includes the analytic data about every rational CM form of weight four and level ≤ 197. The computations of Table 10.7.2 were done using at least 97 terms of the q-expansion of f. The rationality of j could probably be proved by observing that the CM forces A_{f} to have extra automorphisms.

In these examples, the invariants c_{4} and c_{6} are mysterious (to me); in contrast, in weight 2 the invariants of an elliptic curve are known to be integers (see [Cre97a, 2.14]).

10.8 Exercises

10.1 Let f ∈ S_{k}(Γ_{1}(N)) be a newform, and let V_{f} be the subspace spanned by the Gal(\overline{ℚ}/ℚ) conjugates of f. Let V_{f}^{⊥} be the Petersson complement of V_{f} in S_{k}(Γ_{1}(N)).

(a) Show that Atkin-Lehner-Li theory and properties of the Petersson innner product imply that V_{f}^{⊥} is stable under the full Hecke algebra

Table 10.7.2: CM elliptic curves of weight > 2.

E  j  Ω^{+}  Ω^{−}  c_{4}  c_{6}
9k4A  0 0.2095 0.1210i  0.0000  −56626421686.2951
32k4A 1728 0.2283 0.2283i  −3339814.8874  0.0000
64k4D 1728 0.1614 0.1614i  53437038.1988  0.0000
108k4A 0 0.0440 0.0762i  −14699.2655  24463608892439.7456
108k4C 0 0.0554 0.0960i  1608.7743  6115643810955.1724
121k4A −2^{15} 0.0116 0.0385i 85659519816.8841 25723073306989527.1216
144k4E 0 0.0454 0.0262i  81.1130 −549788016394046.1396
27k6A 0 0.0110 0.0191i 0.0000 97856189971744203.7795
32k6A 1728 0.0199 0.0199i −58095643136.7658  8.0094

𝕋 ⊂ S_{k}(Γ_{1}(N)).

(b) (*) Give an example of f ∈ S_{2}(Γ_{1}(N)) that shows that V_{f}^{⊥} need not be 𝕋-stable if f is not a newform. [Hint: Argue that if V_{f}^{⊥} is 𝕋-stable for any f, then every element of 𝕋 is diagonalizable. An example of a space where T_{3} is not diagonalizable is S_{2}(Γ_{1}(81)) (you may assume this).]

10.2 Suppose f ∈ S_{2}(Γ_{0}(N)) is a newform and that W_{N}(f) = wf. Let Λ(E, s) = N^{s/2}(2π)^{−s}Γ(s)L(E, s). Prove that

Λ(E, s) = −wΛ(E, 2 − s).

[Hint: Show that Λ(f, s) = ∫_{0,∞} f(iy/\sqrt{N})y^{s−1} dy, then substitute 1/y for y. If you get completely stuck, see any of many standard references, e.g., [Cre97a, §2.8].] 164 CHAPTER 10. SPECIAL VALUES OF L-FUNCTIONS AND PERIODS

Congruences

11.1 Congruences Between Modular Forms

In this section we develop theory for determining when modular forms are congruent, which is extremely import for computing with modular forms.

Let Γ be an arbitrary congruence subgroup of SL_{2}(ℤ), and suppose f ∈ M_{k}(Γ) is a modular form of integer weight k for Γ. Since ( \begin{matrix}1 & N \\ 0 & 1 \end{matrix} ) ∈ Γ for some integer N, the form f has a Fourier expansion in nonnegative powers of q^{1/N}. For a rational number n, let a_{n}(f) be the coefficient of q^{n} in the Fourier expansion of f. Put

ord_{q}(f) = min{n ∈ ℚ : a_{n} ≠ 0},

where by convention we take min ∅ = +∞, so ord_{q}(0) = +∞.

11.1.1 The j-invariant

Let

j = \frac{1}{q} + 744 + 196884q + ⋯

be the j-function, which is a weight 0 modular function that is holomorphic except for a simple pole at ∞ and has integer Fourier coefficients (see, e.g., [Ser73, §VIII.3.3]).

Lemma 11.1.1. Suppose g is a weight 0 level 1 modular function that is holomorphic except possibly with a pole of order n at ∞. Then g is a polynomial in j of degree at most n. Moreover, the coefficients of this polynomial lie in the ideal I generated by the coefficients a_{m}(g) with m ≤ 0.

Proof. If n = 0, then g ∈ M_{0}(SL_{2}(ℤ)) = ℂ, so g is constant with constant term in I, so the statement is true. Next suppose n > 0 and the lemma has been proved for all functions with smaller order poles. Let α = a_{n}(g), and note that

ord_{q}(g − αj^{n}) = ord_{q} (g − α · (\frac{1}{q} + 744 + 196884q + ⋯)^{n}) > −n.

Thus by induction h = g−αj^{n} is a polynomial in j of degree < n with coefficients in the ideal generated by the coefficients a_{m}(g) with m < 0. It follows that g = α · j^{n} − h satisfies the conclusion of the lemma.

11.1.2 Congruences for Modular Forms

If O is the ring of integers of a number field, 𝔪 is a maximal ideal of O, and f = ∑ a_{n}q^{n} ∈ O[[q^{1/N}]] for some integer N, let

ord_{𝔪}(f) = ord_{q}(f mod 𝔪) = min{n ∈ ℚ : a_{n} ∉ 𝔪}.

Note that ord_{𝔪}(fg) = ord_{𝔪}(f) + ord_{𝔪}(g). The following theorem was first proved in [Stu87], and our proof is an expanded version of the one in [Stu87].

Theorem 11.1.2 (Sturm). Let 𝔪 be a prime ideal in the ring of integers O of a number field K, and let Γ be a congruence subgroup of SL_{2}(ℤ) of index m and level N. Suppose f ∈ M_{k}(Γ, O) is a modular form and

ord_{𝔪}(f) > \frac{km}{12}

or f ∈ S_{k}(Γ, O) is a cusp form and

ord_{𝔪}(f) > \frac{km}{12} − \frac{m − 1}{N}.

Then f ≡ 0 (mod 𝔪).

Proof. Case 1: First we assume Γ = SL_{2}(ℤ). Let

Δ = q + 24q^{2} + ⋯ ∈ S_{12}(SL_{2}(ℤ), ℤ)

be the Δ function. Since ord_{𝔪}(f) > k/12, we have ord_{𝔪}(f^{12}) > k. We have

ord_{q}(f^{12} · Δ^{−k}) = 12 · ord_{q}(f) − k · ord_{q}(Δ) ≥ −k,  (11.1.1)

since f is holomorphic at infinity and Δ has a zero of order 1. Also

ord_{𝔪}(f^{12} · Δ^{−k}) = ord_{𝔪}(f^{12}) − k · ord_{𝔪}(Δ) > k − k = 0.  (11.1.2)

Combining (11.1.1) and (11.1.2), we see that

f^{12} · Δ^{−k} = ∑_{n≥−k} b_{n}q^{n},

with b_{n} ∈ O and b_{n} ∈ 𝔪 if n ≤ 0.

By Lemma 11.1.1,

f^{12} · Δ^{−k} ∈ 𝔪[j]

is a polynomial in j of degree at most k with coefficients in 𝔪. Thus

f^{12} ∈ 𝔪[j] · Δ^{k},

so since the coefficients of Δ are integers, every coefficient of f^{12} is in 𝔪. Thus ord_{𝔪}(f^{12}) = +∞, hence ord_{𝔪}(f) = +∞, so f = 0, as claimed.

Case 2: Γ Arbitrary

Let N be such that Γ(N) ⊂ Γ, so also f ∈ M_{k}(Γ(N)). If g ∈ M_{k}(Γ(N)) is arbitrary, then because Γ(N) is a normal subgroup of SL_{2}(ℤ), we have that for any γ ∈ Γ(N) and δ ∈ SL_{2}(ℤ), that

(g|[δ]_{k})|[γ]_{k} = g|[δγ]_{k} = g|[γ′δ]_{k} = g|[γ′]_{k}|[δ]_{k} = g|[δ]_{k},

where δ′ ∈ SL_{2}(ℤ). Thus for any δ ∈ SL_{2}(ℤ), we have that g|[δ]_{k} ∈ M_{k}(Γ(N)), so SL_{2}(ℤ) acts on M_{k}(Γ(N)).

It is a standard (but nontrivial) fact about modular forms, which comes from the geometry of the modular curve X(N) over ℚ(ζ_{N}) and ℤ[ζ_{N}], that M_{k}(Γ(N)) has a basis with Fourier expansions in ℤ[ζ_{N}][[q^{1/N}]], and that the action of SL_{2}(ℤ) on M_{k}(Γ(N)) preserves

M_{k}(Γ(N), ℚ(ζ_{N})) = M_{k}(Γ(N)) ∩ (ℚ(ζ_{N})[[q^{1/N}]]),

and the cuspidal subspace S_{k}(Γ(N), ℚ(ζ_{N})). In particular, for any γ ∈ SL_{2}(ℤ),

f|[γ]_{k} ∈ M_{k}(Γ(N), K(ζ_{N})),

Moreover, the denominators of f|[γ]_{k} are bounded, since f is an O[ζ_{N}]-linear combination of a basis for M_{k}(Γ(N), ℤ[ζ_{N}]), and the denominators of f|[γ]_{k} divide the product of the denominators of the images of each of these basis vectors under [γ]_{k}.

Let L = K(ζ_{N}). Let 𝔐 be a prime of O_{L} that divides 𝔪O_{L}. We will now show that for each γ ∈ SL_{2}(ℤ), the Chinese remainder theorem implies that there is an element A_{γ} ∈ L^{∗} such that

A_{γ} · f|[γ]_{k} ∈ M_{k}(Γ(N), O_{L})  and  ord_{𝔐}(A_{γ} · f|[γ]_{k}) < ∞. (11.1.3)

First find A ∈ L^{∗} such that A·f|[γ]_{k} has coefficients in O_{L}. Choose α ∈ 𝔐 with α ∉ 𝔐^{2}, and find a negative power α^{t} such that α^{t} · A · f|[γ]_{k} has 𝔐-integral coefficients and finite valuation. This is possible because we assumed that f is nonzero. Use the Chinese remainder theorem to find β ∈ O_{L} such that β ≡ 1 (mod 𝔐) and β ≡ 0 (mod ℘) for each prime ℘ ≠ 𝔐 that divides (α). Then for some s we have

β^{s} · α^{t} · A · f|[γ]_{k} = A_{γ} · f|[γ]_{k} ∈ M_{k}(Γ(N), O_{L}),

and ord_{𝔐}(A_{γ} · f|[γ]_{k}) < ∞.

Write

SL_{2}(ℤ) = ⋃_{i=1}^{m} Γγ_{i}

with γ_{1} = ( \begin{matrix}1 & 0 \\ 0 & 1 \end{matrix} ), and let

F = f · ∏_{i=2}^{m} A_{γ_{i}} · f|[γ_{i}]_{k}.

Then F ∈ M_{km}(SL_{2}(ℤ)) and since 𝔐 ∩ O_{K} = 𝔪, we have ord_{𝔐}(f) = ord_{𝔪}(f), so

ord_{𝔐}(F) ≥ ord_{𝔐}(f) = ord_{𝔪}(f) > \frac{km}{12}.

Thus we can apply case 1 to conclude that

ord_{𝔐}(F) = +∞.

Thus

∞ = ord_{𝔐}(F) = ord_{𝔪}(f) + ∑_{i=2}^{m} ord_{𝔐}(A_{γ_{i}}f|[γ]_{k}),  (11.1.4)

so ord_{𝔪}(f) = +∞, because of (11.1.3).

We next obtain a better bound when f is a cusp form. Since |[γ]_{k} preserves cusp forms, ord_{𝔐}(A_{γ_{i}}f|[γ]_{k}) ≥ \frac{1}{N} for each i. Thus

ord_{𝔐}(F) ≥ ord_{𝔐}(f) + \frac{m − 1}{N} = ord_{𝔪}(f) + \frac{m − 1}{N} > \frac{km}{12},

since now we are merely assuming that

ord_{𝔪}(f) > \frac{km}{12} − \frac{m − 1}{N}.

Thus we again apply case 1 to conclude that ord_{𝔐}(F) = +∞, and using (11.1.4) conclude that ord_{𝔪}(f) = +∞.

Corollary 11.1.3. Let 𝔪 be a prime ideal in the ring of integers O of a number field. Suppose f, g ∈ M_{k}(Γ, O) are modular forms and

a_{n}(f) ≡ a_{n}(g) (mod 𝔪)

for all

n ≤ \begin{cases}\frac{km}{12} − \frac{m − 1}{N} & if f − g ∈ S_{k}(Γ, O), \\ \frac{km}{12} & otherwise, \end{cases}

where m = [SL_{2}(ℤ) : Γ]. Then f ≡ g (mod 𝔪).

Buzzard proved the following corollary, which is extremely useful in practical computations. It asserts that the Sturm bound for modular forms with character is the same as the Sturm bound for Γ_{0}(N).

Corollary 11.1.4 (Buzzard). Let 𝔪 be a prime ideal in the ring of integers O of a number field. Suppose f, g ∈ M_{k}(Γ_{1}(N), ε, O) are modular forms with Dirichlet character ε : (ℤ/Nℤ)^{∗} → ℂ^{∗} and assume that

a_{n}(f) ≡ a_{n}(g) (mod 𝔪)  for all  n ≤ \frac{km}{12},

where

m = [SL_{2}(ℤ) : Γ_{0}(N)] = #ℙ^{1}(ℤ/Nℤ) = N · ∏_{p|N} (1 + \frac{1}{p}) .

Then f ≡ g (mod 𝔪).

Proof. Let h = f − g and let r = km/12, so ord_{𝔪}(h) > r. Let s be the order of the Dirichlet character ε. Then h^{s} ∈ M_{ks}(Γ_{0}(N)) and

ord_{𝔪}(h^{s}) > sr = \frac{ksm}{12}.

By Theorem 11.1.2, we have ord_{𝔪}(h^{s}) = ∞, so ord_{𝔪}(h) = ∞. It follows that f ≡ g (mod 𝔪).

11.1.3 Congruence for Newforms

Sturm’s paper [Stu87] also applies some results of Asai on q-expansions at various cusps to obtain a more refined result for newforms.

Theorem 11.1.5 (Sturm). Let N be a square-free positive integer, and suppose f and g are two newforms in S_{k}(Γ_{1}(N), ε, O), where O is the ring of integers of a number field, and suppose that 𝔪 is a maximal ideal of O. Let I be an arbitrary subset of the prime divisors of N. If a_{p}(f) = a_{p}(g) for all p ∈ I, and

a_{p}(f) ≡ a_{p}(g) (mod 𝔪)

for all primes

p ≤ \frac{k · [SL_{2}(ℤ) : Γ_{0}(N)]}{12 · 2^{#I}},

then f ≡ g (mod 𝔪).

[BS02] also contains a result about congruences between newforms, which does not require that the level be square free. Recall (see Definition 4.5.5) that the conductor of a Dirichlet character ε is the largest divisor c of N such that ε factors through (ℤ/cℤ)^{×}.

Theorem 11.1.6. Let N > 4 be any integer, and suppose f and g are two normalized eigenforms in S_{k}(Γ_{1}(N), ε, O), where O is the ring of integers of a number field, and suppose that 𝔪 is a maximal ideal of O. Let I be the set of prime divisors of N that do not divide \frac{N}{cond(ε)}. If

a_{p}(f) ≡ a_{p}(g) (mod 𝔪)

for all primes p ∈ I and for all primes

p ≤ \frac{k · [SL_{2}(ℤ) : Γ_{0}(N)]}{12 · 2^{#I}},

then f ≡ g (mod 𝔪).

For the proof, see Lemma 1.4 and Corollary 1.7 in [BS02, §1.3].

11.2 Generating the Hecke Algebra as a ℤ-module

The following theorem appeared in [LS02, Appendix], except that we give a better bound here.

Theorem 11.2.1. Suppose Γ is a congruence subgroup that contains Γ_{1}(N) and let

r = \frac{km}{12} − \frac{m − 1}{N},  (11.2.1)

where m = [SL_{2}(ℤ) : Γ]. Then the Hecke algebra 𝕋 = ℤ[…, T_{n}, …] ⊂ End(S_{k}(Γ)) is generated as a ℤ-module by the Hecke operators T_{n} for n ≤ r.

Proof. For any ring R, let S_{k}(N, R) = S_{k}(N, ℤ) ⊗ R, where S_{k}(N, ℤ) ⊂ ℤ[[q]] is the submodule of cusp forms with integer Fourier expansion at the cusp ∞, and let 𝕋_{R} = 𝕋 ⊗_{ℤ} R. For any ring R, there is a perfect pairing

S_{k}(N, R) ⊗_{R} 𝕋_{R} → R

given by ⟨f, T ⟩ ↦ a_{1}(T (f)) (this is true for R = ℤ, hence for any R).

Let M be the submodule of 𝕋 generated by T_{1}, T_{2}, …, T_{r}, where r is the largest integer ≤ \frac{kN}{12} · [SL_{2}(ℤ) : Γ]. Consider the exact sequence of additive abelian groups

0 → M →^{i} 𝕋 → 𝕋/M → 0.

Let p be a prime and use that tensor product is right exact to obtain an exact sequence

M ⊗ 𝔽_{p} →^{\overline{i}} 𝕋 ⊗ 𝔽_{p} → (𝕋/M) ⊗ 𝔽_{p} → 0.

Suppose that f ∈ S_{k}(N, 𝔽_{p}) pairs to 0 with each of T_{1}, …, T_{r}. Then

a_{m}(f) = a_{1}(T_{m}f) = ⟨f, T_{m}⟩ = 0

in 𝔽_{p} for each m ≤ r. By Theorem 11.1.2, it follows that f = 0. Thus the pairing restricted to the image of M ⊗ 𝔽_{p} in 𝕋_{𝔽_{p}} is nondegenerate, so because (11.2.1) is perfect, it follows that

dim_{𝔽_{p}} \overline{i}(M ⊗ 𝔽_{p}) = dim_{𝔽_{p}} S_{k}(N, 𝔽_{p}).

Thus (𝕋/M) ⊗ 𝔽_{p} = 0. Repeating the argument for all primes p shows that 𝕋/M = 0, as claimed.

Remark 11.2.2. In general, the conclusion of Theorem 11.2.1 is not true if one considers only T_{n} where n runs over the primes less than the bound. Consider, for example, S_{2}(11), where the bound is 1 and there are no primes ≤ 1. However, the Hecke algebra is generated as an algebra by operators T_{p} with p ≤ r.

Miscellaneous

12.1 Computing Widths of Cusps

Let Γ be a congruence subgroup of level N. Suppose α ∈ C(Γ) is a cusp, and choose γ ∈ SL_{2}(ℤ) such that γ(∞) = α. The minimal h such that ( \begin{matrix}1 & h \\ 0 & 1 \end{matrix} ) ∈ γ^{−1}Γγ is called the width of the cusp α for the group Γ. In this section we discuss how to compute h.

Algorithm 12.1.1 (Width of Cusp). Given a congruence subgroup Γ of level N and a cusp α for Γ, this algorithm computes the width h of α. We assume that Γ is given by congruence conditions, e.g., Γ = Γ_{0}(N) or Γ_{1}(N).

1. [Find γ] Use the extended Euclidean algorithm to find γ ∈ SL_{2}(ℤ) such that γ(∞) = α, as follows. If α = ∞ set γ = 1; otherwise, write α = a/b, find c, d such that ad − bc = 1, and set γ = ( \begin{matrix}a & b \\ c & d \end{matrix} ).

2. [compute Conjugate Matrix] Compute the following matrix in M_{2}(ℤ[x]):

δ(x) = γ (\begin{matrix}1 & x \\ 0 & 1 \end{matrix}) γ^{−1}.

Note that the entries of δ(x) are constant or linear in x.

3. [Solve] The congruence conditions that define Γ give rise to four linear congruence conditions on x. Use techniques from elementary number theory (or enumeration) to find the smallest simultaneous positive solution h to these four equations.

Example 12.1.2. 1. Suppose α = 0 and Γ = Γ_{0}(N) or Γ_{1}(N). Then γ = ( \begin{matrix}0 & 1 \\ 1 & 0 \end{matrix} ) has the property that γ(∞) = α. Next, the congruence condition is

δ(x) = γ (\begin{matrix}1 & x \\ 0 & 1 \end{matrix}) γ^{−1} = (\begin{matrix}1 & 0 \\ x & 1 \end{matrix}) ≡ (\begin{matrix}1 & ∗ \\ 0 & 1 \end{matrix}) (mod N).

Thus the smallest positive solution is h = N, so the width of 0 is N.

2. Suppose N = pq where p, q are distinct primes, and let α = 1/p. Then γ = ( \begin{matrix}1 & 0 \\ p & 1 \end{matrix} ) sends ∞ to α. The congruence condition for Γ_{0}(pq) is

δ(x) = γ (\begin{matrix}1 & x \\ 0 & 1 \end{matrix}) γ^{−1} = (\begin{matrix}1 − px & x \\ −p^{2}x & px + 1 \end{matrix}) ≡ (\begin{matrix}∗ & ∗ \\ 0 & ∗ \end{matrix}) (mod pq).

Since p^{2}x ≡ 0 (mod pq), we see that x = q is the smallest solution. Thus 1/p has width q, and symmetrically 1/q has width p.

Remark 12.1.3. For Γ_{0}(N), once we enforce that the bottom left entry is 0 (mod N), and use that the determinant is 1, the coprimality from the other two congruences is automatic. So there is one congruence to solve in the Γ_{0}(N) case. There are 2 congruences in the Γ_{1}(N) case.

Bibliography

[Aga00] A. Agashe, The Birch and Swinnerton-Dyer formula for modular abelian varieties of analytic rank 0, Ph.D. thesis, University of California, Berkeley (2000).

[AL70] A. O. L. Atkin and J. Lehner, Hecke operators on Γ_{0}(m), Math. Ann. 185 (1970), 134–160.

[Bas96] Jacques Basmaji, Ein algorithmus zur berechnung von hecke-operatoren und anwendungen auf modulare kurven,

http://modular.fas.harvard.edu/scans/papers/basmaji/

(1996).

[BCDT01] C. Breuil, B. Conrad, F. Diamond, and R. Taylor, On the modularity of elliptic curves over Q: wild 3-adic exercises, J. Amer. Math. Soc. 14 (2001), no. 4, 843–939 (electronic). MR 2002d:11058

[BCP97] W. Bosma, J. Cannon, and C. Playoust, The Magma algebra system. I. The user language, J. Symbolic Comput. 24 (1997), no. 3–4, 235– 265, Computational algebra and number theory (London, 1993). MR 1 484 478

[Bir71] B. J. Birch, Elliptic curves over Q: A progress report, 1969 Number Theory Institute (Proc. Sympos. Pure Math., Vol. XX, State Univ. New York, Stony Brook, N.Y., 1969), Amer. Math. Soc., Providence, R.I., 1971, pp. 396–400.

[BS02] K. Buzzard and W. A. Stein, A mod five approach to modularity of icosahedral Galois representations, Pacific J. Math. 203 (2002), no. 2, 265–282. MR 2003c:11052

[Buz96] Kevin Buzzard, On the eigenvalues of the Hecke operator T_{2}, J. Number Theory 57 (1996), no. 1, 130–132. MR 96m:11033

[CL04] J. Cremona and M. P. Lingham, Finding all elliptic curves with good reduction outside a given set of primes, In Progress (2004).

[CO77] H. Cohen and J. Oesterlé, Dimensions des espaces de formes modulaires, 69–78. Lecture Notes in Math., Vol. 627. MR 57 #12396 [Coh93] H. Cohen, A course in computational algebraic number theory,

Springer-Verlag, Berlin, 1993. MR 94i:11105

[Cre92] J. E. Cremona, Modular symbols for Γ_{1}(N) and elliptic curves with everywhere good reduction, Math. Proc. Cambridge Philos. Soc. 111 (1992), no. 2, 199–218.

[Cre97a] , Algorithms for modular elliptic curves, second ed., Cambridge University Press, Cambridge, 1997,

http://www.maths.nott.ac.uk/personal/jec/book/.

[Cre97b] , Computing periods of cusp forms and modular elliptic curves, Experiment. Math. 6 (1997), no. 2, 97–107.

[CWZ01] Janos A. Csirik, Joseph L. Wetherell, and Michael E. Zieve, On

the genera of X_{0}(N), See http://www.csirik.net/papers.html

(2001).

[Dem04] Lassina Dembele, Quaternionic modular symbols and computing Hilbert modular forms,

http://modular.fas.harvard.edu/mcs/archive/spring2004/dembele.html.

[DI95] F. Diamond and J. Im, Modular forms and modular curves, Seminar on Fermat’s Last Theorem, Providence, RI, 1995, pp. 39–133.

[DP04] H. Darmon and R. Pollack, The efficient calculation of Stark-Heegner points via overconvergent modular symbols.

[FJ02] D. W. Farmer and K. James, The irreducibility of some level 1 Hecke polynomials, Math. Comp. 71 (2002), no. 239, 1263–1270 (electronic). MR 2003e:11046

[FM99] G. Frey and M. Müller, Arithmetic of modular curves and applications, Algorithmic algebra and number theory (Heidelberg, 1997), Springer, Berlin, 1999, pp. 11–48.

[FpS^{+}01] E. V. Flynn, F. Leprévost, E. F. Schaefer, W. A. Stein, M. Stoll, and J. L. Wetherell, Empirical evidence for the Birch and Swinnerton-Dyer conjectures for modular Jacobians of genus 2 curves, Math. Comp. 70 (2001), no. 236, 1675–1697 (electronic). MR 1 836 926

[GH81] M. J. Greenberg and J. R. Harper, Algebraic topology, Benjamin/Cummings Publishing Co. Inc. Advanced Book Program, Reading, Mass., 1981, A first course. MR 83b:55001

[Gor93] Daniel M. Gordon, Discrete logarithms in GF(p) using the number field sieve, SIAM J. Discrete Math. 6 (1993), no. 1, 124–138. MR 94d:11104

[Gor04] D. Gordon, Discrete logarithm problem,

http://www.win.tue.nl/~henkvt/content.html.

[Hij74] H. Hijikata, Explicit formula of the traces of Hecke operators for Γ_{0}(N), J. Math. Soc. Japan 26 (1974), no. 1, 56–82.

[Kna92] A. W. Knapp, Elliptic curves, Princeton University Press, Princeton, NJ, 1992.

[Knu] Donald E. Knuth, The art of computer programming. Vol. 2, third ed., Addison-Wesley Publishing Co., Reading, Mass., Seminumerical algorithms, Addison-Wesley Series in Computer Science and Information Processing.

[Lan95] S. Lang, Introduction to modular forms, Springer-Verlag, Berlin, 1995, With appendixes by D. Zagier and W. Feit, Corrected reprint of the 1976 original.

[Lem01] Dominic Lemelin, Mazur-tate type conjectures for elliptic curves defined over quadratic imaginary fields.

[Li75] W-C. Li, Newforms and functional equations, Math. Ann. 212 (1975), 285–315.

[LS02] Joan-C. Lario and René Schoof, Some computations with Hecke rings and deformation rings, Experiment. Math. 11 (2002), no. 2, 303– 311, With an appendix by Amod Agashe and William Stein. MR MR1959271 (2004b:11072)

[Man72] J. I. Manin, Parabolic points and zeta functions of modular curves, Izv. Akad. Nauk SSSR Ser. Mat. 36 (1972), 19–66. MR 47 #3396

[Mar01] Franois Martin, Périodes de formes modulaires de poids 1,

http://modular.fas.harvard.edu/scans/papers/diderot/

(2001).

[Maz73] B. Mazur, Courbes elliptiques et symboles modulaires, Séminaire Bourbaki, 24ème année (1971/1972), Exp. No. 414, Springer, Berlin, 1973, pp. 277–294. Lecture Notes in Math., Vol. 317. MR 55 #2930

[Mer94] L. Merel, Universal Fourier expansions of modular forms, On Artin’s conjecture for odd 2-dimensional representations, Springer, 1994, pp. 59–94.

[Miy89] T. Miyake, Modular forms, Springer-Verlag, Berlin, 1989, Translated from the Japanese by Yoshitaka Maeda.

[MTT86] B. Mazur, J. Tate, and J. Teitelbaum, On p-adic analogues of the conjectures of Birch and Swinnerton-Dyer, Invent. Math. 84 (1986), no. 1, 1–48. MR MR830037 (87e:11076)

[Nec94] V. I. Nechaev, On the complexity of a deterministic algorithm for a discrete logarithm, Mat. Zametki 55 (1994), no. 2, 91–101, 189. MR 96a:11145 [Sch95] R. Schoof, Counting points on elliptic curves over finite fields,

J. Théor. Nombres Bordeaux 7 (1995), no. 1, 219–254, Les Dix-huitièmes Journées Arithmétiques (Bordeaux, 1993). MR MR1413578 (97i:11070)

[Ser73] J-P. Serre, A Course in Arithmetic, Springer-Verlag, New York, 1973, Translated from the French, Graduate Texts in Mathematics, No. 7.

[Shi59] G. Shimura, Sur les intégrales attachées aux formes automorphes, J. Math. Soc. Japan 11 (1959), 291–311.

[Shi94] , Introduction to the arithmetic theory of automorphic functions, Princeton University Press, Princeton, NJ, 1994, Reprint of the 1971 original, Kan Memorial Lectures, 1.

[Sho97] Victor Shoup, Lower bounds for discrete logarithms and related problems, Advances in cryptology—EUROCRYPT ’97 (Konstanz), Lecture Notes in Comput. Sci., vol. 1233, Springer, Berlin, 1997, pp. 256–266. MR 98j:94023

[Sil92] J. H. Silverman, The arithmetic of elliptic curves, Springer-Verlag, New York, 1992, Corrected reprint of the 1986 original.

[SJ05] William Stein and David Joyner, Sage: System for algebra and geometry experimentation, Communications in Computer Algebra

(SIGSAM Bulletin) (July 2005), http://sage.sourceforge.net/.

[Šok80] V. V. Šokurov, Shimura integrals of cusp forms, Izv. Akad. Nauk SSSR Ser. Mat. 44 (1980), no. 3, 670–718, 720. MR MR582162 (82b:10029)

[Ste99] W. A. Stein, HECKE: The modular symbols calculator, Software (available online) (1999).

[Ste00] , Explicit approaches to modular abelian varieties, Ph.D. thesis, University of California, Berkeley (2000).

[Ste03] William Stein, Modular abelian varieties,

http://modular.fas.harvard.edu/edu/fall2003/252/.

[Ste04] W. A. Stein, The Modular Forms Database,

http://modular.fas.harvard.edu/Tables (2004).

[Stu87] J. Sturm, On the congruence of modular forms, Number theory (New York, 1984–1985), Springer, Berlin, 1987, pp. 275–280.

[SV01] W. A. Stein and H. A. Verrill, Cuspidal modular symbols are transportable, LMS J. Comput. Math. 4 (2001), 170–181 (electronic). MR 1 901 355 [Tat75] J. Tate, Algorithm for determining the type of a singular fiber in an

elliptic pencil, Modular functions of one variable, IV (Proc. Internat. Summer School, Univ. Antwerp, Antwerp, 1972), Springer, Berlin, 1975, pp. 33–52. Lecture Notes in Math., Vol. 476. MR 52 #13850

[TW95] R. Taylor and A. J. Wiles, Ring-theoretic properties of certain Hecke algebras, Ann. of Math. (2) 141 (1995), no. 3, 553–572.

[Wil95] A. J. Wiles, Modular elliptic curves and Fermat’s last theorem, Ann. of Math. (2) 141 (1995), no. 3, 443–551.