The cuspidal subgroup of J_{0}(N) is the subgroup generated by
the degree-0 divisors on X_{0}(N) of the form (alpha)-(beta),
where alpha and beta are cusps.
This web page contains a table of cuspidal subgroups.
Using modular symbols we can compute
the cuspidal subgroup, as an abstract abelian group. Integration
of homology against cusp forms provides a natural map

HBy the Abel-Jacobi theorem, the cuspidal subgroup is isomorphic to the quotient of the image of H_{1}(X_{0}(N),Z;cusps) --> H_{1}(X_{0}(N),Z).

The modular symbols approach to computing the cuspidal subgroup has the advantage that it is theoretically no more complicated for N highly composite than for N prime; it does not rely on any special properties of N. However, it is really only applicable when the corresponding space of modular symbols can be computed, which in practice means that N should have less than 5 decimal digits. There are other methods which may be much more efficient in special cases. For example, when N is prime Andrew Ogg showed that the cuspidal subgroup is cyclic of order equal to the numerator of (N-1)/12. More generally, he computed the cuspidal subgroup when N=pq is the product of two primes. See also papers of Ligozat and others.

- Python/SAGE version: cuspidal_subgroup.py
- Magma version: cuspidal_subgroup.m

C[14] := [ 6 ]; C[20] := [ 6 ]; C[26] := [ 21 ];I think that this is sufficient evidence to conjecture that these are the only non-prime cases in which the cuspidal subgroup is cyclic. If so, is this already proven?

(Observation: Note that in each of the above cases N=pq with
X_{0}(p) and X_{0}(q) both of genus 0.)

> M:=ModularSymbols(20); > M; Full Modular symbols space of level 20, weight 2, and dimension 7 > e:=M ! <1, [Cusps()|0,Infinity()] >; // the path from 0 to infinity > e; -1*{oo, 0} > J0of20:=CuspidalSubspace(M); > SubgroupOfTorus(J0of20, e); Abelian Group isomorphic to Z/6 Defined on 1 generator Relations: 6*$.1 = 0 > SubgroupOfTorus(J0of20, IntegralBasis(M)); // generated by all cusps Abelian Group isomorphic to Z/6 Defined on 1 generator Relations: 6*$.1 = 0 > // Let's do another example. > M := ModularSymbols(100); > J0of100:=CuspidalSubspace(M); > SubgroupOfTorus(J0of100, IntegralBasis(M)); // generated by all cusps Abelian Group isomorphic to Z/6 + Z/30 + Z/30 + Z/30 + Z/30 Defined on 5 generators Relations: 6*$.1 = 0 30*$.2 = 0 30*$.3 = 0 30*$.4 = 0 30*$.5 = 0 > M:=ModularSymbols(77); > J0of77:=CuspidalSubspace(M); > SubgroupOfTorus(J0of77, IntegralBasis(M)); Abelian Group isomorphic to Z/10 + Z/60 Defined on 2 generators Relations: 10*$.1 = 0 60*$.2 = 0 > M:=ModularSymbols(97); > SubgroupOfTorus(CuspidalSubspace(M), IntegralBasis(M)); Abelian Group isomorphic to Z/8 Defined on 1 generator Relations: 8*$.1 = 0 > Numerator((97-1)/12); 8

The Modular Forms Database