Basics

Contents

Verbose Output

The verbosity level for modular symbols computations can be set using the command SetVerbose("ModularSymbols",n), where n is 0 (silent), 1 (verbose), or 2 (very verbose). (The verbose flag for modular symbols was called ModularForms in Magma version 2.7.)

Categories

Spaces of modular symbols belong to the category ModSym. The category SetCsp has exactly one object Cusps(), which is the set P1(Q) = Q∪{∞} introduced above. The element ∞ of P1(Q) is entered using the expression Cusps()!Infinity().

Example ModSym_Creation (H142E1)

We compute a basis for the space of modular symbols of weight 2, level 11 and trivial character.
> M := ModularSymbols(11,2); M;
Full modular symbols space for Gamma_0(11) of weight 2 and dimension 3
over Rational Field
> Type(M);
ModSym
> Basis(M);
[
    {-1/7, 0},
    {-1/5, 0},
    {oo, 0}
]
> M!<1,[1/5,1]>;
{-1/5, 0}
> // the modular symbols {1/5,1} and {-1/5,0} are equal.
> Type(M!<1,[1/5,1]>);
ModSymElt

Using SetVerbose, we can see how the computation progresses.

> SetVerbose("ModularSymbols",2);
> M := ModularSymbols(11,2);
Computing space of modular symbols of level 11 and weight 2....
I.      Manin symbols list.
                (0 s)
II.     2-term relations.
                (0.019 s)
III.    3-term relations.
         Computing quotient by 4 relations.
                (0.009 s)
                (total time to create space = 0.029 s)
> SetVerbose("ModularSymbols",0);

Modular symbols can be input using Cusps().

> M := ModularSymbols(11,2);
> P := Cusps(); P;
Set of all cusps
> Type(P);
SetCsp
> oo := P!Infinity();
> M!<1,[oo,P!0]>;       // note that 0 must be coerced into P.
{oo, 0}
> M!<1,[1/5,1]> + M!<1,[oo,P!0]>;
{-1/5, 0} + {oo, 0}

Modular symbols are also defined over finite fields.

> M := ModularSymbols(11,2,GF(7)); M;
Full modular symbols space for Gamma_0(11) of weight 2 and dimension 3
over Finite field of size 7
> BaseField(M);
Finite field of size 7
> 7*M!<1,[1/5,1]>;
0
V2.28, 13 July 2023