[Next][Prev] [Right] [Left] [Up] [Index] [Root]

Basics

Subsections

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

Categories

Spaces of modular symbols belong to the category ModSym, and groups of Dirichlet characters form a category GrpDrch. The category SetCsp has exactly one object Cusps(), which is the set PP^1(Q) = Qunion {Infinity} introduced above. The element Infinity of PP^1(Q) is entered using the expression Cusps()!Infinity().


Example ModSym_Creation (H88E1)

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 of level 11, weight 2, and dimension 3
> 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 of level 11, weight 2, and dimension 3 
> BaseField(M);
Finite field of size 7
> 7*M!<1,[1/5,1]>;
0

 [Next][Prev] [Right] [Left] [Up] [Index] [Root]