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

An Illustrative Overview

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.


Example ModForm_Overview (H90E2)

First, we compute the two-dimensional space of modular forms of weight 12 and level 1 over Z.

> 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 
Field
The parents of f and g are isomorphic (but distinct) abstract extensions of Q both isomorphic to Q(Sqrt( - 3)).

> Parent(f) eq Parent(g);
false
We 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);
6
This 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));
6112
Don't try to compute a basis of q-expansions for M!

> M := ModularForms(Gamma0(123456789),6);
> Dimension(CuspidalSubspace(M));
68624152
> Dimension(EisensteinSubspace(M));
16

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