Frequently Asked Questions
Question 1:
Subject: modsym.gp
Date: Fri, 11 Feb 2000 13:48:35 0600 (CST)
From: Felipe Voloch
To: [email protected]
Hi, Can you tell me what the function modsym in modsym.gp outputs?
I can guess that the first few things are the Msymbols and
presumably you list relations among them and which are the basis
elements and so on, but I'd like to know what is what in the
output.
Thanks,
Felipe
Answer:
I'll describe the output for X_{0}(11). We have:
? modsym(11) // Modular symbols of weight 2 for Gamma_0(11):
%1 = [11,
[[0, 1, 1],
[1, 1, 1],
[1, 2, 1],
[1, 3, 1],
[1, 4, 1],
[1, 5, 1]],
[0, 1, 1, 1, 1, 1;
0, 2, 3, 4, 5, 6;
0, 0, 2, 5, 3, 4;
0, 0, 0, 2, 6, 3;
0, 0, 0, 0, 2, 5;
0, 0, 0, 0, 0, 2],
[[1, 4],
[1, 0, 0, 0, 0, 0;
0, 0, 2, 1, 1, 2]
],
[[0;
1],
Mat([0, 1])
]
]
I've formated the output so it is easier to read. What are all of
these lists and matrices?
 First, 11 is the level.
 The second entry
[[0, 1, 1],
[1, 1, 1],
[1, 2, 1],
[1, 3, 1],
[1, 4, 1],
[1, 5, 1]]
is a list of generating Manin symbols; see, e.g., Section 2.2
of Cremona's book Algorithms for Modular Elliptic Curves,
especially the section on Implementation. The Manin
symbol n*(c:d) is represented by [c,d,n]; the coefficient n is 1 in
the above output.
 The third entry
[0, 1, 1, 1, 1, 1;
0, 2, 3, 4, 5, 6;
0, 0, 2, 5, 3, 4;
0, 0, 0, 2, 6, 3;
0, 0, 0, 0, 2, 5;
0, 0, 0, 0, 0, 2],
is a hash matrix used to quickly go from an Msymbol to its
internal representation; this speeds up internal computations with Msymbols.

The fourth item
[[1, 4],
[1, 0, 0, 0, 0, 0;
0, 0, 2, 1, 1, 2]
],
give the relations that define the quotient space of modular symbols.
In this example, every Manin symbol can be written as a linear
combination of the 1st and 4th Manin symbols [0, 1, 1] and
[1, 3, 1]. The columns of the matrix
[1, 0, 0, 0, 0, 0;
0, 0, 2, 1, 1, 2]
encode this data. For example, the third Manin symbol [1, 2, 1]
is equivalent to 2 times [1,3,1].
 The first entry of the fifth item
[[0;
1],
Mat([0, 1])
]
encodes the kernel of the boundary map in terms of the free
generators. Thus the +1 part of the homology is the onedimensional
Qvector space generated by the second freelygenerating Manin
symbol [1, 3, 1]. The second matrix, which is dual to the first,
is used internally to speed up computations.