Basics#

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 \(\bf P^1({\mathbb{Q}}) = {\mathbb{Q}}\cup \{\infty\}\) introduced above. The element \(\infty\) of \(\bf P^1({\mathbb{Q}})\) is entered using the expression Cusps()!Infinity().

Example: Creation (ex-dfabe0)#

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

Run in calculator

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);

Run in calculator

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}

Run in calculator

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

Run in calculator