In this section, we give a longer example that serves as an overview of the modular forms package. It illustrates computations of modular forms of level 1, and illustrates the exceptional case of Serre's conjecture with a level 13 example.
> M := ModularForms(Gamma0(1),12); M; Space of modular forms on Gamma_0(1) of weight 12 and dimension 2 over Integer Ring.The default output precision is 8:
> Basis(M);
[
1 + 196560*q^2 + 16773120*q^3 + 398034000*q^4 + 4629381120*q^5 +
34417656000*q^6 + 187489935360*q^7 + O(q^8),
q - 24*q^2 + 252*q^3 - 1472*q^4 + 4830*q^5 - 6048*q^6 - 16744*q^7
+ O(q^8)
]
> [PowerSeries(f,10) : f in Basis(M)];
[
1 + 196560*q^2 + 16773120*q^3 + 398034000*q^4 + 4629381120*q^5 +
34417656000*q^6 + 187489935360*q^7 + 814879774800*q^8 +
2975551488000*q^9 + O(q^10),
q - 24*q^2 + 252*q^3 - 1472*q^4 + 4830*q^5 - 6048*q^6 - 16744*q^7
+ 84480*q^8 - 113643*q^9 + O(q^10)
]
The Newforms command returns a list of the
Galois-orbits of newforms.
> NumberOfNewformClasses(M); 2 > f := Newform(M,1); f; q - 24*q^2 + 252*q^3 - 1472*q^4 + 4830*q^5 - 6048*q^6 - 16744*q^7 + O(q^8)We can call the "q" in the q-expansion anything we want and also compute forms to higher precision.
> Mf<w> := Parent(f); Mf;
Space of modular forms on Gamma_0(1) of weight 12 and dimension 1 over
Rational Field.
> f + O(w^12);
w - 24*w^2 + 252*w^3 - 1472*w^4 + 4830*w^5 - 6048*w^6 - 16744*w^7 +
84480*w^8 - 113643*w^9 - 115920*w^10 + 534612*w^11 + O(w^12)
Typing f + O(w^12) is equivalent to typing
PowerSeries(f,12).
The second newform orbit contains an Eisenstein series.
> E := Newform(M,2); PowerSeries(E,2); 691/65520 + q + O(q^2)Next we compute the two conjugate newforms in S_2(Gamma_1(13)):
> M := ModularForms(Gamma1(13),2); > S := CuspidalSubspace(M); S; Space of modular forms on Gamma_1(13) of weight 2 and dimension 2 over Integer Ring. > NumberOfNewformClasses(S); 1 > f := Newform(S,1); f; q + (-a - 1)*q^2 + (2*a - 2)*q^3 + a*q^4 + (-2*a + 1)*q^5 + (-2*a + 4)*q^6 + O(q^8)Here a is a root of the polynomial x^2 - x + 1.
> Parent(f); Space of modular forms on Gamma_1(13) of weight 2 and dimension 2 over Number Field with defining polynomial x^2 - x + 1 over the Rational Field.The Galois-conjugacy class of f has two newforms in it.
> Degree(f); 2 > g := Newform(S,1,2); g; q + (-b - 1)*q^2 + (2*b - 2)*q^3 + b*q^4 + (-2*b + 1)*q^5 + (-2*b + 4)*q^6 + O(q^8) > BaseRing(Parent(g)); Number Field with defining polynomial x^2 - x + 1 over the Rational FieldThe parents of f and g are isomorphic (but distinct) abstract extensions of Q both isomorphic to Q(Sqrt( - 3)).
> Parent(f) eq Parent(g); falseWe can also list all of the newforms at once, gathered into Galois orbits, using the Newforms command:
> N := Newforms(M); > #N; 8 > N[3]; [* 1/13*(-7*zeta_6 - 11) + q + (2*zeta_6 + 1)*q^2 + (-3*zeta_6 + 1)*q^3 + (6*zeta_6 - 3)*q^4 - 4*q^5 + (-7*zeta_6 + 7)*q^6 + (-7*zeta_6 + 8)*q^7 + O(q^8), 1/13*(7*zeta_6 - 18) + q + (-2*zeta_6 + 3)*q^2 + (3*zeta_6 - 2)*q^3 + (-6*zeta_6 + 3)*q^4 - 4*q^5 + 7*zeta_6*q^6 + (7*zeta_6 + 1)*q^7 + O(q^8) *]The "Nebentypus" or character of f has order 6.
> e := DirichletCharacter(f); Parent(e); Group of Dirichlet characters of modulus 13 over Cyclotomic Field of order 6 and degree 2 > Order(e); 6This shows that there are no cuspidal newforms with Dirichlet character of order 2. As we see below, the mod-3 reduction of f has character /line(eps) that takes values in F_3 and has order 2. The minimal lift of /line(eps) to characteristic 0 has order 2, while there are no newforms of level 13 with character of order 2. (This example illustrates the "exceptional case of Serre's conjecture".)
> f3 := Reductions(f,3); f3; [* [* q + 2*q^3 + 2*q^4 + O(q^8) *] *] > M3<q> := Parent(f3[1][1]); > f3[1][1]+O(q^15); q + 2*q^3 + 2*q^4 + q^9 + q^12 + 2*q^13 + O(q^15)The modular forms package can also be used to quickly compute dimensions of spaces of modular forms.
> M := ModularForms(Gamma0(1),2048); > Dimension(M); 171 > M := ModularForms(Gamma1(389),2); > Dimension(M); 6499 > Dimension(CuspidalSubspace(M)); 6112Don't try to compute a basis of q-expansions for M!
> M := ModularForms(Gamma0(123456789),6); > Dimension(CuspidalSubspace(M)); 68624152 > Dimension(EisensteinSubspace(M)); 16