We saw in Chapter *Modular Forms of Level 1* (especially
Section *Structure Theorem for Level 1 Modular Forms*) that we can compute each space
explicitly. This involves computing Eisenstein
series and to some precision, then forming the basis
for .
In this chapter we consider the more general problem of computing
, for any positive integer . Again we have a
decomposition

where is spanned by generalized
Eisenstein
series and is the space of cusp forms,
i.e., elements of that vanish at *all* cusps.

In Chapter *Eisenstein Series and Bernoulli Numbers* we compute the space
in a similar way to how we computed . On the other
hand, elements of often cannot be written as sums
or products of generalized Eisenstein series. In fact, the structure
of is, in general, much more complicated than that
of . For example, when is a prime,
has dimension , whereas
has dimension about .

Fortunately an idea of Birch, which he called modular symbols, provides a
method for computing and indeed for much more
that is relevant to understanding special values of -functions.
Modular symbols are also a powerful theoretical tool. In this
chapter, we explain how is related to modular
symbols and how to use this relationship to explicitly compute a
basis for . In Chapter *General Modular Symbols* we will
introduce more general modular symbols and explain how to use them to
compute , and for
any integers and and character .

Section *Hecke Operators* contains a very brief summary of basic facts
about modular forms of weight , modular curves, Hecke operators,
and integral homology. Section *Modular Symbols* introduces modular
symbols and describes how to compute with them. In
Section *Computing the Boundary Map* we talk about how to cut out the
subspace of modular symbols corresponding to cusp forms using the
boundary map. Section *Computing a Basis for * is about a straightforward
method to compute a basis for using modular
symbols, and Section *Computing Using Eigenvectors* outlines a more
sophisticated algorithm for computing newforms that uses
Atkin-Lehner theory.

Before reading this chapter, you should have read
Chapter *Modular Forms* and Chapter *Modular Forms of Level 1*.
We also assume familiarity with algebraic curves, Riemann surfaces,
and homology groups of compact Riemann surfaces.

Recall from Chapter *Modular Forms* that the group
acts on by linear fractional transformations.
The quotient is a Riemann surface, which
we denote by . See [**DS05**, Ch. 2] for a
detailed description of the topology on . The Rieman surface
also has a canonical structure of algebraic curve over ,
as is explained in [**DS05**, Ch. 7] (see also
[**Shi94**, Section 6.7]).

Recall from Section *Modular Forms of Any Level* that a cusp form of weight
for is a function on such that defines
a holomorphic differential on .
Equivalently, a cusp form is a holomorphic function on such
that

- the expression is invariant under replacing by for each and
- vanishes at every cusp for .

The space of weight cusp forms on
is a finite-dimensional complex vector space, of dimension equal to
the genus of . The space is a compact
oriented Riemann surface, so it is a -dimensional oriented real
manifold, i.e., is a -holed torus (see
*Figure 3.1*).

Condition (b) in the definition of means that has a Fourier expansion about each element of . Thus, at we have

where, for brevity, we write .

Example 3.1

Let be the elliptic curve defined by the equation
.
Let , where
is the reduction of mod (note that for the
primes that divide the conductor of we have , ).2
For composite, define using the relations at the
end of Section *Computing Using Eigenvectors*.

Then the Shimura-Taniyama conjecture asserts that

is the -expansion of an element of . This
conjecture, which is now a theorem (see
[**BCDT01**]), asserts that any
-expansion constructed as above from an elliptic curve over
is a modular form. This conjecture was mostly proved first by
Wiles [**Wil95**] as a key step in the proof of Fermat’s
last theorem.

Just as is the case for level modular forms (see
Section *Hecke Operators*) there are commuting Hecke operators that act on . To define them
conceptually, we introduce an interpretation of the modular curve
as an object whose points *parameterize* elliptic curves
with extra structure.

Proposition 3.2

The complex points of are in natural bijection with isomorphism classes of pairs , where is an elliptic curve over and is a cyclic subgroup of of order . The class of the point corresponds to the pair

Proof

See *Exercise 3.1*.

Suppose and are coprime positive integers. There are two natural maps and from to ; the first, , sends to , where is the unique cyclic subgroup of of order , and the second, , sends to , where is the unique cyclic subgroup of of order . These maps extend in a unique way to algebraic maps from to :

(1)

The *Hecke operator* is ,
where and denote pullback and pushforward
of differentials, respectively. (There is a similar definition
of when .)
Using our interpretation of as differentials
on , this gives an action of Hecke operators on .
One can show that these induce the maps of *Proposition 2.31*
on -expansions.

Example 3.3

There is a basis of so that

Notice that these matrices commute. Also, the characteristic polynomial of is .

The first homology group is the group of closed
-cycles modulo boundaries of -cycles (formal sums of images of
-simplexes). Topologically is a -holed torus,
where is the genus of . Thus is a free
abelian group of rank (see, e.g.,
[**Gre81**, Ex. 19.30] and [**DS05**, Section 6.1]),
with two generators corresponding to each hole, as illustrated in the
case in *Figure 3.1*.

Figure 3.1

The homology of

The homology of is closely related to modular forms, since the Hecke operators also act on . The action is by pullback of homology classes by followed by taking the image under , where and are as in (1).

Integration defines a pairing

(2)

Explicitly, for a path ,

Theorem 3.4

The pairing (2) is nondegenerate and Hecke equivariant in the sense that for every Hecke operator , we have . Moreover, it induces a perfect pairing

This is a special case of the results in Section *Pairing Modular Symbols and Modular Forms*.

As we will see, modular symbols allow us to make explicit the action of the Hecke operators on ; the above pairing then translates this into a wealth of information about cusp forms.

We will also consider the relative homology group
of
*relative to the cusps*; it is the same as usual homology, but i
n addition we allow paths with endpoints in the cusps instead of
restricting to closed loops. Modular symbols provide a
“combinatorial” presentation of in terms of paths
between elements of .

Let be the free abelian group with basis the set of symbols with modulo the 3-term relations

above and modulo any torsion. Since is torsion-free, we have

Warning

The symbols satisfy the relations , so order matters. The notation looks like the set containing two elements, which strongly (and incorrectly) suggests that the order does not matter. This is the standard notation in the literature.

Figure 3.2

The modular symbols and

As illustrated in *Figure 3.2*, we “think of” this
modular symbol as the homology class, relative to the cusps, of a path
from to in .

Define a *left action of * on by letting
act by

and acts on and via the corresponding linear
fractional transformation. The space of
*modular symbols for `\Gamma_0(N)`* is the quotient of
by the submodule generated by the infinitely many elements of the form
, for in and in , and modulo
any torsion. A modular symbol for is an element of this
space. We frequently denote the equivalence class of a modular symbol
by giving a representative element.

Example 3.6

Some modular symbols are no matter what the level is! For example, since , we have

so

See *Exercise 3.2* for a generalization of this
observation.

There is a natural homomorphism

(3)

that sends a formal linear combination of geodesic paths in the upper
half plane to their image as paths on . In
[**Man72**] Manin proved that (3) is an
isomorphism (this is a fairly involved topological argument).

Manin identified the subspace of that is
sent isomorphically onto . Let
denote the free abelian group whose basis is the finite set
of cusps for
. The *boundary map*

sends to , where
denotes the basis element of corresponding to
. The kernel of is
the subspace of *cuspidal modular symbols*. Thus an element of
can be thought of as a linear combination of
paths in whose endpoints are cusps and whose images in
are homologous to a -linear combination of closed paths.

Theorem 3.7

The map above induces a canonical isomorphism

Proof

This is [**Man72**, Thm. 1.9].

For any (commutative) ring let

and

Proposition 3.8

We have

Proof

We have

Example 3.9

We illustrate modular symbols in the case when . Using Sage (below), which implements the algorithm that we describe below over , we find that has basis , , . A basis for the integral homology is the subgroup generated by and .

```
sage: set_modsym_print_mode ('modular')
sage: M = ModularSymbols(11, 2)
sage: M.basis()
({Infinity,0}, {-1/8,0}, {-1/9,0})
sage: S = M.cuspidal_submodule()
sage: S.integral_basis() # basis over ZZ.
({-1/8,0}, {-1/9,0})
sage: set_modsym_print_mode ('manin') # set it back
```

In this section, we describe a trick of Manin that we will use to prove that spaces of modular symbols are computable.

By *Exercise 1.6* the group has finite index in
. Fix right coset representatives
for in , so that

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

Let

(4)

where if there is such that .

Proposition 3.10

There is a bijection between and the right cosets of in , which sends a coset representative to the class of in .

Proof

See *Exercise 3.3*.

See *Proposition 1.27* for the analogous statement for
.

We now describe an observation of Manin (see
[**Man72**, Section 1.5]) that is crucial to making
computable. It allows us to write any modular
symbol as a -linear combination of symbols of
the form , where the are coset
representatives as above. In particular, the finitely many symbols
generate
.

Proposition 3.11

[Manin] Let be a positive integer and a set of right coset representatives for in . Every is a -linear combination of .

We give two proofs of the proposition. The first is useful for
computation (see [**Cre97a**, Section 2.1.6]); the second (see
[**MTT86**, Section 2]) is easier to understand conceptually since it does
not require any knowledge of continued fractions.

Proof

Since

it suffices to consider modular symbols of the form , where the rational number is in lowest terms. Expand as a continued fraction and consider the successive convergents in lowest terms:

where the first two are included formally. Then

so that

Hence

for some , is of the required special form. Since

this completes the proof.

Proof

As in the first proof it suffices to prove the proposition for any symbol , where is in lowest terms. We will induct on . If , then the symbol is , which corresponds to the identity coset, so assume that . Find such that

then so the matrix

is an element of . Thus for some right coset representative and . Then

as elements of . By induction, is a linear combination of symbols of the form , which completes the proof.

Example 3.12

Let , and consider the modular symbol . We have

so the partial convergents are

Thus, noting as in *Example 3.6* that , we have

We compute the convergents of in Sage as follows (note that and are excluded):

```
sage: convergents(4/7)
[0, 1, 1/2, 4/7]
```

As above, fix coset representatives for
in . Consider formal symbols for .
Let be the modular symbol
.
We equip the symbols with a
*right action of *, which is given by
, where .
We extend the notation by writing
, where
. Then the right action of
is simply .

*Theorem 1.2* implies that
is generated by the two matrices
and
.
Note that from *Theorem 1.2* and
, so

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

Theorem 3.13

Consider the quotient of the free abelian group on Manin symbols by the subgroup generated by the elements (for all ):

and modulo any torsion. Then there is an isomorphism

given by .

Proof

We will only prove that is surjective; the proof that is injective requires much more work and will be omitted from this book (see [

Man72, Section 1.7] for a complete proof).

Proposition 3.11implies that is surjective, assuming that is well defined. We next verify that is well defined, i.e., that the listed 2-term and 3-term relations hold in the image. To see that the first relation holds, note that

For the second relation we have

Example 3.14

By default Sage computes modular symbols spaces over , i.e.,
.
Sage represents (weight ) Manin symbols as pairs .
Here are integers that satisfy ; they define a point
, hence a right coset of
in (see *Proposition 3.10*).

Create in Sage by typing
`ModularSymbols(N, 2)`.
We then use the Sage command `manin_generators` to enumerate a list
of generators as in
*Theorem 3.13* for several spaces of modular symbols.

```
sage: M = ModularSymbols(2,2)
sage: M
Modular Symbols space of dimension 1 for Gamma_0(2)
of weight 2 with sign 0 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)`
computes an element of whose lower two entries are
congruent to modulo .

```
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 -term and -term relations of
*Theorem 3.13*.

```
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 is a -linear
combination of the three symbols , , and .
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]
[ 0]
```

Since the basis is , this means that in , we have and . (Since no denominators are involved, we have in fact computed a presentation of .)

To convert a Manin symbol to an element of a modular
symbols space , use `M(x)`:

```
sage: M = ModularSymbols(2,2)
sage: x = (1,0); M(x)
(1,0)
```

Next consider :

```
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]
```

Recall that our choice of basis for is . Thus, e.g., the first row of this matrix says that , and the fourth row asserts that .

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

When is a prime not dividing , define

The Hecke operators are compatible with
the integration pairing
of Section *Hecke Operators*, in the
sense that .
When , the definition is the same, except that the matrix
is not included in the sum (see *Theorem 1.44*).
There is a similar definition of for composite
(see Section *General Definition of Hecke Operators*).

In [**Mer94**], L. Merel gives a description of the action of
directly on Manin symbols (see
Section *Hecke Operators on Manin Symbols* for details). For example, when
and is odd, we have

(5)

For any prime, let be the set of matrices
constructed using the following algorithm (see [**Cre97a**, Section 2.4]):

Algorithm 3.16

Given a prime , this algorithm outputs a list of matrices of determinant that can be used to compute the Hecke operator .

- Output .
- For :
- Let , , , , , .
- Output .
- As long as , do the following:
- Let be the integer closest to (if is a half integer, round away from ).
- Let , , .
- Set , and\ .
- Output .

Proposition 3.17

Let be as above. Then for and a Manin symbol, we have

Proof

See Proposition~2.4.1 of [**Cre97a**].

There are other lists of matrices, due to Merel, that work even when
(see Section *Hecke Operators on Manin Symbols*).

The command `HeilbronnCremonaList(p)`, for prime,
outputs the list of matrices from *Algorithm 3.16*.

```
sage: HeilbronnCremonaList(2)
[[1, 0, 0, 2], [2, 0, 0, 1], [2, 1, 0, 1], [1, 0, 1, 2]]
sage: HeilbronnCremonaList(3)
[[1, 0, 0, 3], [3, 1, 0, 1], [1, 0, 1, 3], [3, 0, 0, 1],
[3, -1, 0, 1], [-1, 0, 1, -3]]
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(37))
128
sage: len(HeilbronnCremonaList(389))
1892
sage: len(HeilbronnCremonaList(2003))
11662
.. index::
pair: Sage; Hecke operator `T_2`
```

Example 3.18

We compute the matrix of on :

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

Example 3.19

We compute some Hecke operators on :

```
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(3).fcp() # factored characteristic polynomial
(x - 3) * (x - 1)^2
```

For we have , since is
spanned by generalized Eisenstein series (see Chapter *Eisenstein Series and Bernoulli Numbers*).

Example 3.20

We compute the Hecke operators on :

```
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.fcp() # factored characteristic polynomial
(x - 3)^3 * (x - 1)^2 * (x^2 + 2*x - 1)^2
```

The Hecke operators commute, so their eigenspace structures are related.

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

The decomposition of is a list of the kernels of , where runs through the irreducible factors of the characteristic polynomial of and exactly divides this characteristic polynomial. Using Sage, we find them:

```
sage: M = ModularSymbols(39, 2)
sage: M.T(2).decomposition()
[
Modular Symbols subspace of dimension 3 of Modular
Symbols space of dimension 9 for Gamma_0(39) of weight
2 with sign 0 over Rational Field,
Modular Symbols subspace of dimension 2 of Modular
Symbols space of dimension 9 for Gamma_0(39) of weight
2 with sign 0 over Rational Field,
Modular Symbols subspace of dimension 4 of Modular
Symbols space of dimension 9 for Gamma_0(39) of weight
2 with sign 0 over Rational Field
]
```

In Section *Modular Symbols* we defined a map . The kernel of this map is the space
of cuspidal modular symbols. This kernel will be
important in computing cusp forms in Section *Computing Using Eigenvectors*
below.

To compute the boundary map on , note that , so if , then

Computing this boundary map would appear to first require an algorithm
to compute the set
of cusps for . In fact, there is a trick that computes the
set of cusps in the course of running the algorithm. First, give an
algorithm for deciding whether or not two elements of are
equivalent modulo the action of . Then simply construct
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.21

Let , , be pairs of integers with and possibly . There is such that in if and only if

where satisfies .

In Sage the command `boundary_map()` computes the boundary map from
to , and the
`cuspidal_submodule`
command computes its kernel. For example, for level the boundary
map is given by the matrix , and its kernel is the
space:

```
sage: M = ModularSymbols(2, 2)
sage: M.boundary_map()
Hecke module morphism boundary map defined by the matrix
[ 1 -1]
Domain: Modular Symbols space of dimension 1 for
Gamma_0(2) of weight ...
Codomain: Space of Boundary Modular Symbols for
Congruence Subgroup Gamma0(2) ...
sage: M.cuspidal_submodule()
Modular Symbols subspace of dimension 0 of Modular
Symbols space of dimension 1 for Gamma_0(2) of weight
2 with sign 0 over Rational Field
```

The smallest level for which the boundary map has nontrivial kernel, i.e., for which , is .

```
sage: M = ModularSymbols(11, 2)
sage: M.boundary_map().matrix()
[ 1 -1]
[ 0 0]
[ 0 0]
sage: M.cuspidal_submodule()
Modular Symbols subspace of dimension 2 of Modular
Symbols space of dimension 3 for Gamma_0(11) of weight
2 with sign 0 over Rational Field
sage: S = M.cuspidal_submodule(); S
Modular Symbols subspace of dimension 2 of Modular
Symbols space of dimension 3 for Gamma_0(11) of weight
2 with sign 0 over Rational Field
sage: S.basis()
((1,8), (1,9))
```

The following illustrates that the Hecke operators preserve :

```
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 is that for prime the eigenvalue of each of these matrices is , where is the elliptic curve defined by the (affine) equation For example, we have

```
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: 7 + 1 - E.Np(7)
-2
```

The same numbers appear as the eigenvalues of Hecke operators:

```
sage: [S.T(p).matrix()[0,0] for p in [2,3,5,7]]
[-2, -1, 1, -2]
```

In fact, something similar happens for every elliptic curve over .
The book [**DS05**] (especially Chapter~8) is about this
striking numerical relationship between the number of
points on elliptic curves
modulo and coefficients of modular forms.

This section is about a method for using modular symbols to compute a
basis for . It is not the most efficient for
certain applications, but it is easy to explain and understand.
See Section *Computing Using Eigenvectors* for a method that takes
advantage of additional structure of .

Let and be the spaces of modular symbols and cuspidal modular symbols over . Before we begin, we describe a simple but crucial fact about the relation between cusp forms and Hecke operators.

If is a power series, let be the coefficient of . Notice that is a -linear map .

As explained in [**DS05**, Prop. 5.3.1] and
[**Lan95**, Section VII.3] (recall also *Proposition 2.31*), the
Hecke operators act on elements of
as follows (where below):

(6)

where if and if . (Note: More generally, if is a modular form with Dirichlet character , then the above formula holds; above we are considering this formula in the special case when is the trivial character and .)

Lemma 3.22

Suppose and is a positive integer. Let be the operator on -expansions (formal power series) defined by (6). Then

Proof

The coefficient of in (6) is .

The *Hecke algebra* is the ring generated by all
Hecke operators acting on .
Let denote the image of the Hecke algebra in
, and let be the
-span of the Hecke operators. Let denote the subring of
generated over by all Hecke operators acting on
formal power series via definition (6).

Proposition 3.23

There is a bilinear pairing of complex vector spaces

given by

If is such that for all , then .

Proof

The pairing is bilinear since both and are linear.

Suppose is such that
for all .
Then
for each positive integer .
But by *Lemma 3.22* we have

for all ; thus .

Proposition 3.24

There is a perfect bilinear pairing of complex vector spaces

given by

Proof

The pairing has kernel on the left by
*Proposition 3.23*.
Suppose that is such that
for all .
Then for all . For any , the image
is also a cusp form, so
for all and . Finally the fact that is commutative
and *Lemma 3.22* together imply that for all
and ,

so for all . Thus is the operator.

Since has finite dimension and the
kernel on each side of the pairing is , it follows
that the pairing is perfect, i.e., defines an *isomorphism*

By *Proposition 3.24* there is an isomorphism of vector spaces

(7)

that sends to the homomorphism

For any -linear map , let

Lemma 3.25

The series is the -expansion of .

Proof

Note that it is not even *a priori* obvious that
is the -expansion of a modular form.
Let , which is by definition the unique element of
such that
for all .
By *Lemma 3.22*, we have

so for all .
*Proposition 3.23* implies that
, so ,
as claimed.

**Conclusion:**
The cusp forms , as varies through a
basis of , form a basis
for .
In particular, we can compute
by computing , where we compute in any way we want,
e.g., using a space that contains an isomorphic copy of .

Algorithm 3.26

Given positive integers and , this algorithm computes a basis for to precision .

Compute via the presentation of Section

*Manin Symbols*.Compute the subspace of cuspidal modular symbols as in Section

*Computing the Boundary Map*.Let . By

*Proposition 3.8*, is the dimension of .Let denote the matrix of acting on a basis of . For a matrix , let denote the . For various integers with , compute formal -expansions

until we find enough to span a space of dimension (or exhaust all of them). These are a basis for to precision .

We use Sage to demonstrate *Algorithm 3.26*.

Example 3.27

The smallest with is .

```
sage: M = ModularSymbols(11); M.basis()
((1,0), (1,8), (1,9))
sage: S = M.cuspidal_submodule(); S
Modular Symbols subspace of dimension 2 of Modular
Symbols space of dimension 3 for Gamma_0(11) of weight
2 with sign 0 over Rational Field
```

We compute a few Hecke operators, and then read off a nonzero cusp form, which forms a basis for :

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

Thus

forms a basis for .

Example 3.28

We compute a basis for to precision .

```
sage: M = ModularSymbols(33)
sage: S = M.cuspidal_submodule(); S
Modular Symbols subspace of dimension 6 of Modular
Symbols space of dimension 9 for Gamma_0(33) of weight
2 with sign 0 over Rational Field
```

Example 3.29

Next consider , where we have

The command `q_expansion_cuspforms` computes
matrices and returns a function
such that is the -expansion of
to some precision.
(For efficiency reasons, in Sage actually
computes matrices of acting
on a basis for the linear dual of .)

```
sage: M = ModularSymbols(23)
sage: S = M.cuspidal_submodule()
sage: S
Modular Symbols subspace of dimension 4 of Modular
Symbols space of dimension 5 for Gamma_0(23) of weight
2 with sign 0 over Rational Field
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)
```

Thus a basis for is

Or, in echelon form,

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)
]
```

In this section we describe how to use modular symbols to construct a
basis of consisting of modular forms that are
eigenvectors for every element of the ring generated by the
Hecke operator , with . Such eigenvectors are called
*eigenforms*.

Suppose is a positive integer that divides . As explained in
[**Lan95**, VIII.1–2], for each divisor of there is
a natural *degeneracy map* given by . The
*new subspace* of , denoted
, is the complementary -submodule of the
-module generated by the images of all maps ,
with and as above. It is a nontrivial fact that this
complement is well defined; one possible proof uses the Petersson
inner product (see [**Lan95**, Section VII.5]).

The theory of Atkin and Lehner [**AL70**] (see
*Theorem 9.4* below) asserts that, as a -module,
decomposes as follows:

To compute it suffices to compute for each .

We now turn to the problem of computing .
Atkin and Lehner [**AL70**] proved that
is spanned by eigenforms for all with
and that the common eigenspaces of all the with
each have dimension . Moreover, if is an eigenform then the coefficient of
in the -expansion of is nonzero, so it is possible to
normalize so the coefficient of is (such a
*normalized* eigenform in the new subspace is called a
*newform*). With so normalized, if , then
the Fourier coefficient of is . If
is a normalized eigenvector for all
, then the , with composite, are determined by the
, with prime, by the following formulas:
when and are relatively prime and for prime. When ,
. We conclude that in order to compute
, it suffices to compute all systems of
eigenvalues of the prime-indexed Hecke
operators acting on .
Given a system of eigenvalues, the corresponding eigenform is
, where the , for composite,
are determined by the recurrence given above.

In light of the pairing introduced in
Section *Hecke Operators*,
computing the above systems of eigenvalues
amounts to computing the systems of eigenvalues of the Hecke operators
on the subspace of that corresponds
to the new subspace of
For each proper divisor of and each divisor of
, let be the map
sending to .
Then is the intersection of the kernels of all
maps .

Computing the systems of eigenvalues of a collection of
commuting diagonalizable endomorphisms is a problem in
linear algebra (see Chapter *Linear Algebra*).

Example 3.30

All forms in are new. Up to Galois conjugacy, the eigenvalues of the Hecke operators , , , and on are and , where . Each of these eigenvalues occur in with multiplicity two; for example, the characteristic polynomial of on is . Thus is spanned by

where is the other -conjugate of .

To compute the -expansion of a basis for , we use the degeneracy maps so that we only have to solve the problem for , for all integers . Using modular symbols, we compute all systems of eigenvalues , and then write down the corresponding eigenforms .

Exercise 3.1

Suppose that are in the same orbit for the action of , i.e., that there exists such that . Let and . Prove that the pairs and are isomorphic. (By an isomorphism of pairs, we mean an isomorphism of elliptic curves that sends to . You may use the fact that an isomorphism of elliptic curves over is a -linear map that sends the lattice corresponding to one curve onto the lattice corresponding to the other.)

Exercise 3.2

Let be integers and a positive integer. Prove that the
modular symbol is as an element of
. [Hint: See *Example 3.6*.]

Exercise 3.3

Let be a prime.

- List representative elements of .
- What is the cardinality of as a function of ?
- Prove that there is a bijection between the right cosets of
in and the elements of
that sends to . (As mentioned in
this chapter, the analogous statement is also true when the
level is composite; see [
**Cre97a**, Section 2.2] for complete details.) end{enumerate}

Exercise 3.4

Use the inductive proof of *Proposition 3.11* to write
in terms of Manin symbols for .

Exercise 3.5

Show that the Hecke operator acts as multiplication by on the space as follows:

- Write down right coset representatives for in .
- List all eight relations coming from
*Theorem 3.13*. - Find a single Manin symbols so that the three other Manin symbols are a nonzero multiple of modulo the relations found in the previous step.
- Use formula (5) to compute . You will obtain a sum of four symbols. Using the relations above, write this sum as a multiple of . (The multiple must be or you made a mistake.)