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