Contact
CoCalc Logo Icon
StoreFeaturesDocsShareSupport News AboutSign UpSign In
| Download
Project: Math 582b
Views: 2495

Lecture March 2, 2016: Modular Symbols

William Stein

Let's compute something, then understand how that computation actually works.

1. Motivation

Quick Exercise:

  1. Choose a composite integer NN between 100100 and 200200.

  2. Compute the space of modular forms of level NN: M = ModularForms(N)

  3. Compute the cuspidal_subpace of M.

  4. Compute the new subspace of the cuspidal subspace.

  5. Compute a list of the newforms, up to the action of GQG_\QQ in S2(Γ0(N))S_2(\Gamma_0(N)) using M.newforms(names='a'); verify that the sum of the degrees of the newforms equals the dimension of the new subspace.

︠9651e6ae-9c25-4a56-ba3d-cc08cd4f0f0f︠ ︠3dee82e1-bb6e-4cac-bc1d-a54a393518ce︠ ︠6674ced1-45ed-4908-8af4-df3cd073ee2c︠ ︠02a70c14-0120-4ef9-b100-eabaaf47b284︠ ︠ef84dbc4-29a1-4937-bd7b-56fa476c0f39︠ ︠e96e99e3-bc8d-41df-850c-60365df4988b︠ ︠0ba82835-04c7-430a-949f-5467703813a9︠ ︠6eaadbe4-f1f7-4627-87b2-f293003b51ea︠ ︠13cf2437-e700-4c53-b573-b2643e1be145i︠ %md **Goal for today:** give you a more detailed understanding of what happened in the above computation. - How to compute another module $M$ that $\mathbf{T}\subset \text{End}(S_2(\Gamma_0(N)))$ acts on. - How to find, inside $M$, a submodule $V \subset M_{\rm new}$ on which $\mathbf{T}$ acts in the same way it acts on $S_2(\Gamma_0(N))_{\rm new}$. - A little sense for how to do the linear algebra on $V$ to find the systems of eigenvalues.

Goal for today: give you a more detailed understanding of what happened in the above computation.

  • How to compute another module MM that TEnd(S2(Γ0(N)))\mathbf{T}\subset \text{End}(S_2(\Gamma_0(N))) acts on.

  • How to find, inside MM, a submodule VMnewV \subset M_{\rm new} on which T\mathbf{T} acts in the same way it acts on S2(Γ0(N))newS_2(\Gamma_0(N))_{\rm new}.

  • A little sense for how to do the linear algebra on VV to find the systems of eigenvalues.

︠1d26f864-cb8f-4452-b902-7099ba4df1eai︠ %md ## 2. Computing modular symbols

2. Computing modular symbols

Quick Exercise: For the integer NN you chose above, compute M=ModularSymbols(N). Compute also M.basis() and M.hecke_matrix(p) for some primes p. Also compute the factored characteristic polynomials of some of these Hecke operators.

How is the dimension of MM related to the dimensiona of Mk(Γ0(N))M_k(\Gamma_0(N)) in your example?

︠49d48829-acc1-4b65-9273-1d262423dc7c︠ ︠952d0e66-42e8-4b64-8652-86ebfc262b89︠ ︠1bd86e84-f718-4376-87bd-aeeef7667977︠ ︠fbee1263-8ad3-44fd-8c56-ec6767dfdd5ei︠ %md ## 3. How modular symbols work (See http://wstein.org/books/modform/modform/weight_two.html#modular-symbols) To compute `ModularSymbols(N)`: - Make a list $x_1, \ldots, x_m$ of representative elements of $\mathbf{P}^1(\ZZ/n\ZZ)$. Note that there is a bijection between $\mathbf{P}^1(\ZZ/N\ZZ)$ and right cosets of $\Gamma_0(N)$ in $\text{SL}_2(\ZZ)$. - Writes down the relations $x_i + x_i S = 0$ and $x_i + x_i T + x_i T^2$, where S=[0,-1;1,0] and T=[1,-1;1,0]. For example, if $x_i=(u:v)$, then $x_i S = (v:-u)$. Yep, very explicit and simple. - There is a natural isomorphism between $H_1(X_0(N),\QQ,cusps)$ and the vector space on the $x_i$'s modulo the above relations. The bijection sends $x_i = (c:d)$ to the class of the path from $\gamma(0)$ to $\gamma(\infty)$, where $\gamma\in\text{SL}_2(\ZZ)$ is a matrix with bottom row congruent mod $N$ to $(c,d)$. Computing the quotient of a vector space by (sparse) relations is a standard operation in (sparse) linear algebra. Put the relations as the rows of a matrix; put matrix in reduced row echelon form, and you get canonical minimal relations so that the quotient vector space is identical. Done.

3. How modular symbols work

(See http://wstein.org/books/modform/modform/weight_two.html#modular-symbols)

To compute ModularSymbols(N):

  • Make a list x1,,xmx_1, \ldots, x_m of representative elements of P1(Z/nZ)\mathbf{P}^1(\ZZ/n\ZZ). Note that there is a bijection between P1(Z/NZ)\mathbf{P}^1(\ZZ/N\ZZ) and right cosets of Γ0(N)\Gamma_0(N) in SL2(Z)\text{SL}_2(\ZZ).

  • Writes down the relations xi+xiS=0x_i + x_i S = 0 and xi+xiT+xiT2x_i + x_i T + x_i T^2, where S=[0,-1;1,0] and T=[1,-1;1,0]. For example, if xi=(u:v)x_i=(u:v), then xiS=(v:u)x_i S = (v:-u). Yep, very explicit and simple.

  • There is a natural isomorphism between H1(X0(N),Q,cusps)H_1(X_0(N),\QQ,cusps) and the vector space on the xix_i's modulo the above relations. The bijection sends xi=(c:d)x_i = (c:d) to the class of the path from γ(0)\gamma(0) to γ()\gamma(\infty), where γSL2(Z)\gamma\in\text{SL}_2(\ZZ) is a matrix with bottom row congruent mod NN to (c,d)(c,d).

Computing the quotient of a vector space by (sparse) relations is a standard operation in (sparse) linear algebra. Put the relations as the rows of a matrix; put matrix in reduced row echelon form, and you get canonical minimal relations so that the quotient vector space is identical. Done.

︠08bf7b4f-30ab-42f0-a5a6-aba5517ff29f︠ ︠5030bb76-56d9-4ce4-901c-94b2027b70b6︠ ︠ecd03e53-6d94-4b97-8aac-197b801ca62ai︠ %md There are many important tricks. For example, you should have noticed in the above exercise that most of the charpoly factors are squares, and the dimension of the space of modular symbols is roughly twice that of the space of modular forms. There's an involution * on $H_1(X_0(N),\QQ,cusps)$ induced by $z\mapsto -\overline{z}$. In terms of $(u:v) \in \mathbf{P}^1(\ZZ/n\ZZ)$, we have $*(u:v) = -(-u:v)$. `ModularSymbols(N,sign=1)` is just what you get by computing modulo the additional relations $x_i - *x_i = 0$, which has roughly have the dimension.

There are many important tricks. For example, you should have noticed in the above exercise that most of the charpoly factors are squares, and the dimension of the space of modular symbols is roughly twice that of the space of modular forms.

There's an involution * on H1(X0(N),Q,cusps)H_1(X_0(N),\QQ,cusps) induced by zzz\mapsto -\overline{z}. In terms of (u:v)P1(Z/nZ)(u:v) \in \mathbf{P}^1(\ZZ/n\ZZ), we have (u:v)=(u:v)*(u:v) = -(-u:v).

ModularSymbols(N,sign=1) is just what you get by computing modulo the additional relations xixi=0x_i - *x_i = 0, which has roughly have the dimension.

Quick exercise redo: Do everything above, but with M=ModularSymbols(N,sign=1) instead.

︠e8cb38c4-369b-41f8-a1d0-bc079dd8d125︠ ︠07b2a9e3-80f6-47e3-909b-1cdc2ef20e9e︠ ︠5e7efcf0-9292-4f9a-9e76-59aaf0ba552a︠ ︠5b15006d-f52d-4615-9bfe-1eb29128665b︠ ︠1f0565a4-528f-4b0e-9ce0-7cf6b0923e4a︠ ︠4c4d8158-95da-4866-a769-772453ef9abei︠ %md **Exercise:** Take one Hecke matrix $T$, compute the factored charpoly, take an irreducible factor $F(X)$ of it that appears with multiplicity 1, and compute $\ker(F(T))$. This is a vector subspace of the space on which the Hecke operator matrices are acting. Restrict each additional Hecke operator to that subspace, and compute its charpoly on it. That's how you get systems of eigenvalues.

Exercise: Take one Hecke matrix TT, compute the factored charpoly, take an irreducible factor F(X)F(X) of it that appears with multiplicity 1, and compute ker(F(T))\ker(F(T)). This is a vector subspace of the space on which the Hecke operator matrices are acting. Restrict each additional Hecke operator to that subspace, and compute its charpoly on it. That's how you get systems of eigenvalues.

︠00117439-87c8-408a-ad3a-c7da2b5216b6︠ ︠67d256f0-9fb2-4e60-9588-d97e4e3baf18i︠ %md Here's a **very depressing** aside from this morning: [[sage-support] Speed of new_subspace()...](https://groups.google.com/forum/#!topic/sage-support/baAs79rUvYA)

Here's a very depressing aside from this morning: [sage-support] Speed of new_subspace()...

︠b05139f5-5196-44ea-a1fe-38a5c694243f︠ ︠f385842e-c1e0-4cdd-989d-9d4332404074︠ ︠2fba745b-e46e-460e-a589-2fc0cc47610d︠