.. _ch:modform: Modular Forms ============= .. chapter:: 1 This chapter introduces modular forms and congruence subgroups, which are central objects in this book. We first introduce the upper half plane and the group `\SL_2(\Z)` then recall some definitions from complex analysis. Next we define modular forms of level `1` followed by modular forms of general level. In Section :ref:`sec:congsgalg` we discuss congruence subgroups and explain a simple way to compute generators for them and determine element membership. Section :ref:`sec:apps` lists applications of modular forms. We assume familiarity with basic number theory, group theory, and complex analysis. For a deeper understanding of modular forms, the reader is urged to consult the standard books in the field, e.g., :cite:`{lang:modular,serre:arithmetic,diamond-im,miyake,shimura:intro,koblitz:cong}`. See also :cite:`diamond-shurman`, which is an excellent first introduction to the theoretical foundations of modular forms. Basic Definitions ----------------- The group .. math:: \SL_2(\R) = \left\{ \mtwo{a}{b}{c}{d} : ad-bc=1\text{ and } a,b,c,d\in\R\right\} acts on the :defn:`complex upper half plane` .. index:: `\h` .. math:: \h = \{z \in \C : \Im(z) > 0\} by :defn:`linear fractional transformations`, as follows. .. index:: `\SL_2(\Z)` If `\gamma = \abcd{a}{b}{c}{d} \in \SL_2(\R)`, then for any `z \in \h` we let .. math:: :label: eqn:lft \gamma(z) = \frac{az + b}{cz + d} \in \h. .. definition:: Modular Group The :defn:`modular group` is the group of all matrices `\abcd{a}{b}{c}{d}` with `a,b,c,d\in\Z` and `ad-bc=1`. For example, the matrices .. math:: :label: eqn:ST S=\mtwo{0}{-1}{1}{\hfill 0} \qquad\text{and} \qquad T=\mtwo{1}{1}{0}{1} are both elements of `\SL_2(\Z)`; the matrix `S` induces the function `z\mapsto -1/z` on `\h`, and `T` induces the function `z\mapsto z+1`. .. theorem:: :label: thm:sl2zgen The group `\SL_2(\Z)` is generated by `S` and `T`. .. proof:: See e.g. :cite:`[\S{}VII.1]{serre:arithmetic}`. In Sage we compute the group `\SL_2(\Z)` and its generators as follows:: sage: G = SL(2,ZZ); G Modular Group SL(2,Z) sage: S, T = G.gens() sage: S [ 0 -1] [ 1 0] sage: T [1 1] [0 1] .. definition:: Holomorphic and Meromorphic Let `R` be an open subset of `\C`. A function `f:R\to \C` is :defn:`holomorphic` if `f` is complex differentiable at every point `z\in R`, i.e., for each `z\in R` the limit .. math:: f'(z) = \lim_{h\to 0} \frac{f(z+h)-f(z)}{h} exists, where `h` may approach `0` along any path. A function `f: R\to\C\cup \{\infty\}` is :defn:`meromorphic` if it is holomorphic except (possibly) at a discrete set `S` of points in `R`, and at each `\alpha\in S` there is a positive integer `n` such that `(z-\alpha)^n f(z)` is holomorphic at `\alpha`. The function `f(z) = e^z` is a holomorphic function on `\C`; in contrast, `1/(z-i)` is meromorphic on `\C` but not holomorphic since it has a pole at `i`. The function `e^{-1/z}` is not even meromorphic on `\C`. Modular forms are holomorphic functions on `\h` that transform in a particular way under a certain subgroup of `\SL_2(\Z)`. Before defining general modular forms, we define modular forms of level `1`. .. _sec:modform1: Modular Forms of Level `1` -------------------------- .. definition:: Weakly Modular Function A :defn:`weakly modular function` of :defn:`weight` `k\in\Z` is a meromorphic function `f` on `\h` such that for all `\gamma=\abcd{a}{b}{c}{d}\in\SL_2(\Z)` and all `z\in\h` we have .. math:: :label: eqn:modfunc f(z) = (cz+d)^{-k} f(\gamma(z)). The constant functions are weakly modular of weight `0`. There are no nonzero weakly modular functions of odd weight (see :ref:`ex:nomodformodd`), and it is not obvious that there are any weakly modular functions of even weight `k\geq 2` (but there are, as we will see!). The product of two weakly modular functions of weights `k_1` and `k_2` is a weakly modular function of weight `k_1+k_2` (see :ref:`ex:wmfprod`). When `k` is even, :eq:`eqn:modfunc` has a possibly more conceptual interpretation; namely :eq:`eqn:modfunc` is the same as .. math:: f(\gamma(z))(d(\gamma(z)))^{k/2} = f(z)(dz)^{k/2}. Thus :eq:`eqn:modfunc` simply says that the weight `k` "differential form" `f(z)(dz)^{k/2}` is fixed under the action of every element of `\SL_2(\Z)`. By :ref:`thm:sl2zgen`, the group `\SL_2(\Z)` is generated by the matrices `S` and `T` of :eq:`eqn:ST`, so to show that a meromorphic function `f` on `\h` is a weakly modular function, all we have to do is show that for all `z\in\h` we have .. math:: :label: eqn:modfunc2 f(z+1) = f(z) \qquad\text{and}\qquad f(-1/z) = z^k f(z). Suppose `f` is a weakly modular function of weight `k`. A :defn:`Fourier expansion` of `f`, if it exists, is a representation of `f` as `f(z) = \sum_{n=m}^{\infty} a_n e^{2\pi i nz}`, for all `z\in\h`. Let `q=q(z)=e^{2\pi i z}`, which we view as a holomorphic function on `\C`. Let `D'` be the open unit disk with the origin removed, and note that `q` defines a map `\h \to D'`. By :eq:`eqn:modfunc2` we have `f(z+1)=f(z)`, so there is a function `F:D'\to \C` such that `F(q(z)) = f(z)`. This function `F` is a complex-valued function on `D'`, but it may or may not be well behaved at `0`. Suppose that `F` is well behaved at `0`, in the sense that for some `m\in\Z` and all `q` in a neighborhood of `0` we have the equality .. math:: :label: eqn:qexp F(q) = \sum_{n=m}^{\infty} a_n q^n. If this is the case, we say that `f` is :defn:`meromorphic at $\infty$`. If, moreover, `m\geq 0`, we say that `f` is :defn:`holomorphic at $\infty$`. We also call :eq:`eqn:qexp` the :defn:`$q$-expansion` of `f` about `\infty`. .. definition:: Modular Function A :defn:`modular function` of :defn:`weight` `k` is a weakly modular function of weight `k` that is meromorphic at `\infty`. .. definition:: Modular Form A :defn:`modular form` of :defn:`weight` `k` (and :defn:`level $1$`) is a modular function of weight `k` that is holomorphic on `\h` and at `\infty`. If `f` is a modular form, then there are numbers `a_n` such that for all `z\in \h`, .. math:: :label: eqn:qexp1 f(z) = \sum_{n=0}^{\infty} a_n q^n. .. proposition:: The above series converges for all `z\in\h`. .. proof:: The function `f(q)` is holomorphic on `D`, so its Taylor series converges absolutely in `D`. Since `e^{2\pi i z}\to 0` as `z\to i \infty`, we set `f(\infty)=a_0`. .. definition:: Cusp Form A :defn:`cusp form` of :defn:`weight` `k` (and :defn:`level $1$`) is a modular form of weight `k` such that `f(\infty)=0`, i.e., `a_0=0`. Let `\C[[q]]` be the ring of all :defn:`formal power series` in `q`. If `k=2`, then `dq = 2\pi i q dz`, so `dz = \frac{1}{2\pi i}\frac{dq}{q}`. If `f(q)` is a cusp form of weight `2`, then .. math:: 2\pi i f(z) dz = f(q) \frac{dq}{q} = \frac{f(q)}{q} dq \in \C[[q]] dq. Thus the differential `2\pi i f(z) dz` is holomorphic at `\infty`, since `q` is a local parameter at `\infty`. .. _sec:modformN: Modular Forms of Any Level -------------------------- In this section we define spaces of modular forms of arbitrary level. .. definition:: Congruence Subgroup A :defn:`congruence subgroup` of `\SL_2(\Z)` is any subgroup of `\SL_2(\Z)` that contains .. index:: `\Gamma(N)` .. math:: \Gamma(N) = \Ker(\SL_2(\Z)\to \SL_2(\Z/N\Z)) for some positive integer `N`. The smallest such `N` is the :defn:`level of $\Gamma$`. .. index:: `\Gamma_1(N)` The most important congruence subgroups in this book are `\Gamma_1(N)` .. math:: \Gamma_1(N) = \left\{ \mtwo{a}{b}{c}{d} \in \SL_2(\Z) : \mtwo{a}{b}{c}{d}\con \mtwo{1}{*}{0}{1}\pmod{N} \right\} and `\Gamma_0(N)` .. index:: `\Gamma_0(N)` .. math:: \Gamma_0(N) = \left\{ \mtwo{a}{b}{c}{d} \in \SL_2(\Z) : \mtwo{a}{b}{c}{d}\con \mtwo{*}{*}{0}{*}\pmod{N} \right\}, where `*` means any element. Both groups have level `N` (see :ref:`ex:conggamma1`). .. index:: right action of `\GL_2(\Q)` Let `k` be an integer. Define the :defn:`weight $k$ right action` of `\GL_2(\Q)` on the set of all functions `f:\h\to\C` as follows. If `\gamma=\abcd{a}{b}{c}{d}\in\GL_2(\Q)`, let .. math:: :label: eqn:bargamma (f^{[\gamma]_k})(z) = \det(\gamma)^{k-1} (cz+d)^{-k} f(\gamma(z)). .. proposition:: Formula :eq:`eqn:bargamma` defines a right action of `\GL_2(\Z)` on the set of all functions `f:\h\to\C`; in particular, .. index:: `f^{[\gamma]_k}` .. math:: f^{[\gamma_1\gamma_2]_k} = (f^{[\gamma_1]_k})^{[\gamma_2]_k}. .. proof:: See :ref:`ex:grpact`. .. definition:: Weakly Modular Function A :defn:`weakly modular function` of weight `k` for a congruence subgroup `\Gamma` is a meromorphic function `f :\h \to \C` such that `f^{[\gamma]_k} = f` for all `\gamma \in \Gamma`. A central object in the theory of modular forms is the :defn:`set of cusps` .. math:: \P^1(\Q) = \Q \union \{\infty\}. Also, note that if the denominator `c` or `cz+d` is `0` above, then .. math:: \gamma(z)=\infty \in \P^1(\Q). .. index:: pair: cusps; action of `\SL_2(\Z)` single: `\SL_2(\Z)` An element `\gamma=\abcd{a}{b}{c}{d} \in \SL_2(\Z)` acts on `\P^1(\Q)` by .. math:: \gamma(z) = \begin{cases} \frac{az+b}{cz+d} & \text{if $z\neq \infty$},\\ \frac{a}{c} & \text{if $z=\infty$.} \end{cases} Also, note that if the denominator `c` or `cz+d` is `0` above, then .. math:: \gamma(z)=\infty \in \P^1(\Q). The set of :defn:`cusps for a congruence subgroup `\Gamma`` is the set `C(\Gamma)` of `\Gamma`-orbits of `\P^1(\Q)`. (We will often identify elements of `C(\Gamma)` with a representative element from the orbit.) For example, the lemma below asserts that if `\Gamma=\SL_2(\Z)`, then there is exactly one orbit, so `C(\SL_2(\Z)) = \{[\infty]\}`. .. lemma:: :label: lem:sl2ztrans For any cusps `\alpha, \beta\in\P^1(\Q)` there exists `\gamma\in\SL_2(\Z)` such that `\gamma(\alpha) = \beta`. .. proof:: This is :ref:`ex:sl2ztrans`. .. proposition:: :label: prop:cuspfinite For any congruence subgroup `\Gamma`, the set `C(\Gamma)` of cusps is finite. .. proof:: This is :ref:`ex:cuspfinite`. See Section 3.8 of :cite:`diamond-shurman` and :ref:`alg:cusplist` below for more discussion of cusps and results relevant to their enumeration. In order to define modular forms for general congruence subgroups, we next explain what it means for a function to be holomorphic on the :defn:`extended upper half plane` .. index:: `\h^*` .. math:: \h^* = \h\union \P^1(\Q). See :cite:`[\S1.3--1.5]{shimura:intro}`, for a detailed description of the correct topology to consider on `\h^*`. In particular, a basis of neighborhoods for `\alpha\in\Q` is given by the sets `\{\alpha\}\union D`, where `D` is an open disc in `\h` that is tangent to the real line at `\alpha`. Recall from Section :ref:`sec:modform1` that a weakly modular function `f` on `\SL_2(\Z)` is holomorphic at `\infty` if its `q`-expansion is of the form `\sum_{n=0}^{\infty} a_n q^n`. In order to make sense of holomorphicity of a weakly modular function `f` for an arbitrary congruence subgroup `\Gamma` at any `\alpha\in\Q`, we first prove a lemma. .. lemma:: If `f :\h\to\C` is a weakly modular function of weight `k` for a congruence subgroup `\Gamma` and if `\delta \in \SL_2(\Z)`, then `f^{[\delta]_k}` is a weakly modular function for `\delta^{-1}\Gamma \delta`. .. proof:: If `s = \delta^{-1} \gamma\delta \in \delta^{-1}\Gamma \delta`, then .. math:: (f^{[\delta]_k})^{[s]_k} = f^{[\delta s]_k} = f^{[\delta \delta^{-1}\gamma\delta]_k} = f^{[\gamma\delta]_k} = f^{[\delta]_k}. Fix a weakly modular function `f` of weight `k` for a congruence subgroup `\Gamma`, and suppose `\alpha \in \Q`. In Section :ref:`sec:modform1` we constructed the `q`-expansion of `f` by using that `f(z) = f(z+1)`, which held since `T=\mtwo{1}{1}{0}{1}\in\SL_2(\Z)`. There are congruence subgroups `\Gamma` such that `T\not\in\Gamma`. Moreover, even if we are interested only in modular forms for `\Gamma_1(N)`, where we have `T\in\Gamma_1(N)` for all `N`, we will still have to consider `q`-expansions at infinity for modular forms on groups `\delta^{-1} \Gamma_1(N)\delta`, and these need not contain `T`. Fortunately, `T^N = \abcd{1}{N}{0}{1} \in \Gamma(N)`, so a congruence subgroup of level `N` contains `T^N`. Thus we have `f(z+H) = f(H)` for some positive integer `H`, e.g., `H=N` always works, but there may be a smaller choice of `H`. The minimal choice of `H>0` such that `\abcd{1}{H}{0}{1}\in \delta^{-1}\Gamma\delta`, where `\delta(\infty)=\alpha`, is called the \defn{width of the cusp} `\alpha` relative to the group `\Gamma` (see Section :ref:`sec:cuspwidth`). When `f` is meromorphic at infinity, we obtain a Fourier expansion .. math:: :label: eqn:qser f(z) = \sum_{n=m}^{\infty} a_n q^{n/H} in powers of the function `q^{1/H} = e^{2 \pi i z /H}`. We say that `f` is holomorphic at `\infty` if in :eq:`eqn:qser` we have `m\geq 0`. What about the other cusps `\alpha\in\P^1(\Q)`? By :ref:`lem:sl2ztrans` there is a `\gamma\in\SL_2(\Z)` such that `\gamma(\infty)=\alpha`. We declare `f` to be :defn:`holomorphic at the cusp $\alpha$` if the weakly modular function `f^{[\gamma]_k}` is holomorphic at `\infty`. .. definition:: Modular Form A :defn:`modular form` of integer :defn:`weight` `k` for a congruence subgroup `\Gamma` is a weakly modular function `f:\h\to \C` that is holomorphic on `\h^*`. We let `M_k(\Gamma)`\index{`M_k(\Gamma)`} denote the space of weight `k` modular forms of weight `k` for `\Gamma`. .. proposition:: If a weakly modular function `f` is holomorphic at a set of representative elements for `C(\Gamma)`, then it is holomorphic at every element of `\P^1(\Q)`. .. proof:: Let `c_1,\ldots, c_n \in \P^1(\Q)` be representatives for the set of cusps for `\Gamma`. If `\alpha \in \P^1(\Q)`, then there is `\gamma\in\Gamma` such that `\alpha = \gamma(c_i)` for some `i`. By hypothesis `f` is holomorphic at `c_i`, so if `\delta\in\SL_2(\Z)` is such that `\delta(\infty) = c_i`, then `f^{[\delta]_k}` is holomorphic at `\infty`. Since `f` is a weakly modular function for `\Gamma`, .. math:: :label: eqn:prop:holoall f^{[\delta]_k} = (f^{[\gamma]_k})^{[\delta]_k} = f^{[\gamma\delta]_k}. But `\gamma(\delta(\infty)) = \gamma(c_i) = \alpha`, so :eq:`eqn:prop:holoall` implies that `f` is holomorphic at `\alpha`. .. _sec:congsgalg: Remarks on Congruence Subgroups ------------------------------- Recall that a congruence subgroup is a subgroup of `\SL_2(\Z)` ,that contains `\Gamma(N)` for some `N`. Any congruence subgroup has finite index in `\SL_2(\Z)`, since `\Gamma(N)` does. What about the converse: is every finite index subgroup of `\SL_2(\Z)` a congruence subgroup? This is the :defn:`congruence subgroup problem`. One can ask about the congruence subgroup problem with `\SL_2(\Z)` replaced by many similar groups. If `p` is a prime, then one can prove that every finite index subgroup of `\SL_2(\Z[1/p])` is a congruence subgroup (i.e., contains the kernel of reduction modulo some integer coprime to `p`), and for any `n>2`, all finite index subgroups of `\SL_n(\Z)` are congruence subgroups (see :cite:`humphreys:cong`). However, there are numerous finite index subgroups of `\SL_2(\Z)` that are not congruence subgroups. The paper :cite:`hsu:congsub` contains an *algorithm* to decide if certain finite index subgroups are congruence subgroups and gives an example of a subgroup of index 12 that is not a congruence subgroup. One can consider modular forms even for noncongruence subgroups. See, e.g., :cite:`thompson:noncong` and the papers it references for work on this topic. We will not consider such modular forms further in this book. Note that modular symbols (which we define later in this book) *are* computable for noncongruence subgroups. Finding coset representatives for `\Gamma_0(N)`, `\Gamma_1(N)` and `\Gamma(N)` in `\SL_2(\Z)` is straightforward and will be discussed at length later in this book. To make the problem more explicit, note that you can quotient out by `\Gamma(N)` first. Then the question amounts to finding coset representatives for a subgroup of `\SL_2(\Z/N\Z)` (and lifting), which is reasonably straightforward. Given coset representatives for a finite index subgroup `G` of `\SL_2(\Z)`, we can compute generators for `G` as follows. Let `R` be a set of coset representatives for `G`. Let `\sigma, \tau \in \SL_2(\Z)` be the matrices denoted by `S` and `T` in :eq:`eqn:ST`. Define maps `s, t: R \to G` as follows. If `r \in R`, then there exists a unique `\alpha_r \in R` such that `Gr\sigma = G\alpha_r`. Let `s(r) = r\sigma \alpha_r^{-1}`. Likewise, there is a unique `\beta_r` such that `Gr\tau = G\beta_r` and we let `t(r) = r\tau \beta_r^{-1}`. Note that `s(r)` and `t(r)` are in `G` for all `r`. Then `G` is generated by `s(R)\cup t(R)`. .. proposition:: :label: prop:compgen The above procedure computes generators for `G`. .. proof:: Without loss of generality, assume that `I=\abcd{1}{0}{0}{1}` represents the coset of `G`. Let `g` be an element of `G`. Since `\sigma` and `\tau` generate `\SL_2(\Z)`, it is possible to write `g` as a product of powers of `\sigma` and `\tau`. There is a procedure, which we explain below with an example in order to avoid cumbersome notation, which writes `g` as a product of elements of `s(R) \union t(R)` times a right coset representative `r\in R`. For example, if .. math:: g = \sigma \tau^2 \sigma \tau, then `g=I\sigma \tau^2\sigma \tau = s(I)y\tau^2\sigma\tau` for some `y \in R`. Continuing, .. math:: s(I)y\tau^2\sigma\tau = s(I)(y\tau)\tau\sigma\tau = s(I)(t(y)z)\tau\sigma\tau for some `z \in R`. Again, .. math:: s(I)(t(y)z)\tau\sigma\tau = s(I)t(y)(z\tau)\sigma\tau = \cdots. The procedure illustrated above (with an example) makes sense for arbitrary `g` and, after carrying it out, writes `g` as a product of elements of `s(R) \union t(R)` times a right coset representative `r\in R`. But `g\in G` and `I` is the right coset representative for `G`, so this right coset representative must be `I`. .. remark:: We could also apply the proof of :ref:`prop:compgen` to write any element of `G` in terms of the given generators. Moreover, we could use it to write any element `\gamma \in \SL_2(\Z)` in the form `gr`, where `g\in G` and `r\in R`, so we can decide whether or not `\gamma \in G`. .. _sec:cuspwidth: Computing Widths of Cusps ------------------------- Let `\Gamma` be a congruence subgroup of level `N`. Suppose `\alpha\in C(\Gamma)` is a cusp, and choose `\gamma\in\SL_2(\Z)` such that `\gamma(\infty)=\alpha`. Recall that the minimal `h` such that `\abcd{1}{h}{0}{1} \in \gamma^{-1}\Gamma\gamma` is called the :defn:`width of the cusp` `\alpha` for the group `\Gamma`. In this section we discuss how to compute `h`. .. algorithm:: Witdth of Cusp :label: alg:cuspwidth Given a congruence subgroup `\Gamma` of level `N` and a cusp `\alpha` for `\Gamma`, this algorithm computes the width `h` of `\alpha`. We assume that `\Gamma` is given by congruence conditions, e.g., `\Gamma=\Gamma_0(N)` or `\Gamma_1(N)` #. [Find `\gamma`]: Use the extended Euclidean algorithm to find `\gamma\in\SL_2(\Z)` such that `\gamma(\infty)=\alpha`, as follows. If `\alpha=\infty`, set `\gamma\set 1`; otherwise, write `\alpha=a/b`, find `c,d` such that `ad-bc=1`, and set `\gamma \set \abcd{a}{b}{c}{d}`. #. [Compute Conjugate Matrix] Compute the following element of `\Mat_2(\Z[x])`: .. math:: \delta(x) \set \gamma \mtwo{1}{x}{0}{1} \gamma^{-1}. Note that the entries of `\delta(x)` are constant or linear in `x`. #. [Solve] The congruence conditions that define `\Gamma` give rise to four linear congruence conditions on `x`. Use techniques from elementary number theory (or enumeration) to find the smallest simultaneous positive solution `h` to these four equations. .. example:: #. Suppose `\alpha=0` and `\Gamma=\Gamma_0(N)` or `\Gamma_1(N)`. Then `\gamma=\abcd{0}{-1}{1}{\hfill 0}` has the property that `\gamma(\infty)=\alpha`. Next, the congruence condition is .. math:: \delta(x) = \gamma \mtwo{1}{x}{0}{1} \gamma^{-1} = \mtwo{1}{0}{-x}{1} \con \mtwo{1}{*}{0}{1}\pmod{N}. Thus the smallest positive solution is `h=N`, so the width of `0` is `N`. #. Suppose `N=pq` where `p,q` are distinct primes, and let `\alpha=1/p`. Then `\gamma=\abcd{1}{0}{p}{1}` sends `\infty` to `\alpha`. The congruence condition for `\Gamma_0(pq)` is .. math:: \qquad \qquad\delta(x) = \gamma \mtwo{1}{x}{0}{1} \gamma^{-1} = \mtwo{1-px}{x}{-p^2 x}{px+1} \con \mtwo{*}{*}{0}{*}\pmod{pq}. Since `p^2x \con 0\pmod{pq}`, we see that `x=q` is the smallest solution. Thus `1/p` has width `q`, and symmetrically `1/q` has width `p`. .. remark:: For `\Gamma_0(N)`, once we enforce that the bottom left entry is `0\pmod{N}` and use that the determinant is 1, the coprimality from the other two congruences is automatic. So there is one congruence to solve in the `\Gamma_0(N)` case. There are two congruences in the `\Gamma_1(N)` case. .. _sec:apps: Applications of Modular Forms ----------------------------- The above definition of modular forms might leave the impression that modular forms occupy an obscure corner of complex analysis. This is *not* the case! Modular forms are highly geometric, arithmetic, and topological objects that are of extreme interest all over mathematics: .. index:: Fermat's last theorem #. **Fermat's last theorem:** Wiles' proof :cite:`wiles:fermat` of Fermat's last theorem uses modular forms extensively. The work of Wiles et al. on modularity also massively extends computational methods for elliptic curves over `\Q`, because many elliptic curve algorithms, e.g., for computing `L`-functions, modular degrees, Heegner points, etc., require that the elliptic curve be modular. .. index:: Diophantine equations #. **Diophantine equations:** Wiles' proof of Fermat's last theorem has made available a wide array of new techniques for solving certain diophantine equations. Such work relies crucially on having access to tables or software for computing modular forms. See, e.g., :cite:`darmon:eps`, :cite:`merel:diophantine`, :cite:`chen:dio`, :cite:`siksekcremona`. (Wiles did not need a computer, because the relevant spaces of modular forms that arise in his proof have dimension `0`!) Also, according to Siksek (personal communication) the paper :cite:`siksek:dio` would "have been entirely impossible to write without [the algorithms described in this book]." .. index:: congruent number problem #. **Congruent number problem:** This ancient open problem is to determine which integers are the area of a right triangle with rational side lengths. There is a potential solution that uses modular forms (of weight `3/2`) extensively (the solution is conditional on truth of the Birch and Swinnerton-Dyer conjecture, which is not yet known). See :cite:`koblitz:cong`. #. **Topology:** Topological modular forms are a major area of current research. .. index:: Ramanujan graphs #. **Construction of Ramanujan graphs:** Modular forms can be used to construct almost optimal expander graphs, which play a role in communications network theory. #. **Cryptography and Coding Theory:** Point counting on elliptic curves over finite fields is crucial to the construction of elliptic curve cryptosystems, and modular forms are relevant to efficient algorithms for point counting (see :cite:`elkies:ffield`). Algebraic curves that are associated to modular forms are useful in constructing and studying certain error-correcting codes (see :cite:`ebeling`). .. index:: Birch and Swinnerton-Dyer conjecture #. **The Birch and Swinnerton-Dyer conjecture:** This central open problem in arithmetic geometry relates arithmetic properties of elliptic curves (and abelian varieties) to special values of `L`-functions. Most deep results toward this conjecture use modular forms extensively (e.g., work of Kolyvagin, Gross-Zagier, and Kato). Also, modular forms are used to compute and prove results about special values of these `L`-functions. See :cite:`wiles:cmi`. .. index:: Serre's conjecture #. **Serre's Conjecture on modularity of Galois representation:** Let `G_\Q=\Gal(\Qbar/\Q)` be the Galois group of an algebraic closure of `\Q`. Serre conjectured and many people have (nearly!) proved that every continuous homomorphism `\rho:G_\Q \to \GL_2(\F_q)`, where `\F_q` is a finite field and `\det(\rho(\text{complex conjugation}))=-1`, "arises" from a modular form. More precisely, for almost all primes `p` the coefficients `a_p` of a modular (eigen-)form `\sum a_n q^n` are congruent to the traces of elements `\rho(\Frob_p)`, where `\Frob_p` are certain special elements of `G_\Q` called Frobenius elements. See :cite:`ribet-stein:serre` and :cite:`[Ch.~9]{diamond-shurman}`. .. index:: partitions #. **Generating functions for partitions:** The generating functions for various kinds of partitions of an integer can often be related to modular forms. Deep theorems about modular forms then translate into results about partitions. See work of Ramanujan, Gordon, Andrews, and Ahlgren and Ono (e.g., :cite:`ahlgren-ono`). #. **Lattices:** If `L\subset \R^n` is an even unimodular lattice (the basis matrix has determinant `\pm 1` and `\lambda \cdot \lambda \in 2\Z` for all `\lambda \in L`), then the theta series .. math:: \theta_L(q) = \sum_{\lambda \in L} q^{\lambda \cdot \lambda} is a modular form of weight `n/2`. The coefficient of `q^m` is the number of lattice vectors with squared length `m`. Theorems and computational methods for modular forms translate into theorems and computational methods for lattices. For example, the 290 theorem of M. Bharghava and J. Hanke is a theorem about lattices, which asserts that an integer-valued quadratic form represents all positive integers if and only if it represents the integers up to `290`; it is proved by doing many calculations with modular forms (both theoretical and with a computer). .. index:: lattices Exercises --------- .. exercise:: :label: ex:upperhalfpres Suppose `\gamma = \abcd{a}{b}{c}{d}\in\GL_2(\R)` has positive determinant. Prove that if `z\in\C` is a complex number with positive imaginary part, then the imaginary part of `\gamma(z) = (az+b)/(cz+d)` is also positive. .. exercise:: :label: ex:meromorphic Prove that every rational function (quotient of two polynomials) is a meromorphic function on `\C`. .. exercise:: :label: ex:wmfprod Suppose `f` and `g` are weakly modular functions for a congruence subgroup `\Gamma` with `f\neq 0`. #. Prove that the product `fg` is a weakly modular function for `\Gamma`. #. Prove that `1/f` is a weakly modular function for `\Gamma`. #. If `f` and `g` are modular functions, show that `fg` is a modular function for `\Gamma`. #. If `f` and `g` are modular forms, show that `fg` is a modular form for `\Gamma`. .. exercise:: :label: ex:nomodformodd Suppose `f` is a weakly modular function of odd weight `k` and level `\Gamma_0(N)` for some `N`. Show that `f=0`. .. exercise:: :label: ex:allsame Prove that `\SL_2(\Z)=\Gamma_0(1)=\Gamma_1(1)=\Gamma(1)`. .. exercise:: :label: ex:conggamma1 #. Prove that `\Gamma_1(N)` is a group. #. Prove that `\Gamma_1(N)` has finite index in `\SL_2(\Z)` (Hint: It contains the kernel of the homomorphism `\SL_2(\Z) \to \SL_2(\Z/N\Z)`.) #. Prove that `\Gamma_0(N)` has finite index in `\SL_2(\Z)`. #. Prove that `\Gamma_0(N)` and `\Gamma_1(N)` have level `N`. .. exercise:: :label: ex:grpact Let `k` be an integer, and for any function `f:\h^*\to \C` and `\gamma=\abcd{a}{b}{c}{d}\in\GL_2(\Q)`, set `f^{[\gamma]_k}(z) = \det(\gamma)^{k-1} \cdot (cz+d)^{-k} \cdot f(\gamma(z))`. Prove that if `\gamma_1, \gamma_2 \in \GL_2(\Z)`, then for all `z\in \h^*` we have .. math:: f^{[\gamma_1 \gamma_2]_k}(z) = ((f^{[\gamma_1]_k})^{[\gamma_2]_k})(z). .. exercise:: :label: ex:sl2ztrans Prove that for any `\alpha, \beta\in\P^1(\Q)`, there exists `\gamma\in\SL_2(\Z)` such that `\gamma(\alpha)~=~\beta`. .. exercise:: :label: ex:cuspfinite Prove :ref:`prop:cuspfinite`, which asserts that the set of cusps `C(\Gamma)`, for any congruence subgroup `\Gamma`, is finite. .. exercise:: :label: ex:cuspwidth Use :ref:`alg:cuspwidth` to give an example of a group `\Gamma` and cusp `\alpha` with width `2`.