# How to compute explicitly the covering map in the modularity theorem?

The modularity theorem (original Shimura-Taniyama-Weil conjecture) asserts the existence of a covering (uniformization) map $$\pi:X_0(N) \to E$$ for every $$E$$, an elliptic curve defined over $$\mathbb{Q}$$.

If $$y^2 = x^3 + a x + b$$ is the Weierstraß equation of $$E$$, this amounts to finding power-series $$x(q)$$, $$y(q)$$ in $$q = \exp(2 \pi i z)$$ where $$z$$ is the standard coordinate of $$\mathbb{C}$$. The $$x(q), y(q)$$ are from the function field of $$X_0(N)$$, so they are modular functions with respect to $$\Gamma_0(N)$$ (is this true?).

In the system Pari/GP there is the function elltaniyama to compute such $$x(q)$$, $$y(q)$$, and in Sage there is the function modular_parametrization. But all searching with Google did not find me a paper, where the algorithm involved is described. I found some articles describing how to compute the modularity conductor $$N$$, but not, how $$x(q)$$ and $$y(q)$$ can be calculated.

Could someone direct me to a paper (or book) where to find an explanation of the algorithm used?

• I don't think there exists a general algorithm to do this. In fact the proof of the fact that such a map exists is deeply non-effective, as it just shows that the $p$-adic Galois representation of $E$ is isomorphic to the $p$-adic Galois representation attached to a newform of level= the conductor of $E$. Probably for low genuses of $X_0(N)$ there are some special tricks. Apr 9, 2016 at 9:45
• have you read Cremona's book homepages.warwick.ac.uk/~masgaj/book/amec.html Apr 9, 2016 at 22:42

I don't know the inner workings of those computer algebra functions, but here's how you can explicitly compute the modular parametrization $$\newcommand{\C}{\mathbb C} \renewcommand{\H}{\mathfrak H} \varphi: X_0(N) \to E$$.

The unique (up to scaling) holomorphic differential $$\omega$$ on $$E$$ pulls back under $$\varphi$$ to a differential $$\varphi^*\omega$$ on $$X_0(N)$$. Thinking of $$X_0(N)$$ as $$\Gamma_0(N) \backslash \H^*$$, we can consider $$\varphi^*\omega$$ as a $$\Gamma_0(N)$$-invariant differential on $$\H^*$$. This can be written as $$\varphi^* \omega = 2\pi i f(\tau) \, d\tau$$ where $$f$$ is a weight $$2$$ cusp form. (Indeed, the one corresponding to $$E$$ in other equivalent statements of modularity.) Letting $$q = e^{2\pi i \tau}$$ and writing $$f(\tau) = \sum_{n=1}^\infty a_n(f) q^n$$ in its $$q$$-expansion, we can integrate the differential $$2\pi i f(\tau) \, d\tau = f(q) \frac{dq}{q}$$ to get a map \begin{align*} \H^* &\to \C/\Lambda\\ \tau_0 &\mapsto 2\pi i \int_{\tau_0}^\infty f(\tau) \, d\tau = \int_0^{q_0} f(q) \frac{dq}{q} \end{align*} where $$q_0 = e^{2\pi i \tau_0}$$ and $$\Lambda \leq \C$$ is the period lattice of $$E$$. To write the elliptic curve $$\C/\Lambda$$ in Weierstrass form, we apply the inverse Abel-Jacobi map (sometimes called the elliptic exponential) using the Weierstrass $$\wp$$-function. This is the map \begin{align*} \C/\Lambda &\to E: y^2 = x^3 + a x + b\\ z &\mapsto (x,y) = \left(\wp(z), \frac{1}{2} \wp'(z)\right) \, , \end{align*} and composing the two maps give the series $$x(q), y(q)$$.

A few notes on computational effectivity. The Fourier coefficients $$a_n(f)$$ can be computed by counting points. Assuming $$E$$ is in minimal Weierstrass form, then $$\#E(\mathbb{F}_p) = p + 1 - a_p(f)$$ for all primes $$p \nmid N$$. (Here we are again using modularity, in that $$a_p(f) = a_p(E)$$.) There are efficient methods for counting points, such as Schoof's algorithm and its variants. Using the formulas \begin{align*} a_{mn} &= a_m a_n \text{ if \gcd(m,n)=1}\\ a_{p^n} &= a_p a_{p^{n-1}} - p a_{p^{n-2}} \end{align*} we can recover all the Fourier coefficients $$a_n = a_n(f)$$.

The values of $$\wp(z)$$ can also be computed effectively. Write $$\wp(z) = \frac{1}{z^2} + \frac{c_{-1}}{z} + \sum_{n=0}^\infty c_n z^n$$ as a Laurent series. Similarly writing $$\frac{1}{2} \wp'(z)$$ as a Laurent series and substituting in to the equation for $$E$$ \begin{align*} \left(\frac{\wp'(z)}{2}\right)^2 = (\wp(z))^3 + a\wp(z) + b \end{align*} allows us to find a recursive formula for the coefficients $$c_n$$. (The actual formula is pretty hideous, but it can be done.)

For example, consider the elliptic curve $$E: y^2 = x^3 + 2x - 3$$, curve 440.b2 in the LMFDB. As shown on that page, the corresponding modular form $$f$$ has $$q$$-expansion $$f(q) = q - q^{5} - 2q^{7} - 3q^{9} + q^{11} - 4q^{13} - 4q^{17} + O(q^{20}) \,.$$ Then $$F(q) := \int f(q) \frac{dq}{q} = q - \frac{1}{5}q^{5} - \frac{2}{7}q^{7} - \frac{1}{3}q^{9} + \frac{1}{11}q^{11} - \frac{4}{13}q^{13} - \frac{4}{17}q^{17} + O(q^{20}) \, .$$ Using the recurrence described above, we find the Laurent series \begin{align*} \wp(z) &= \frac{1}{z^{2}} - \frac{2}{5}z^{2} + \frac{3}{7}z^{4} + \frac{4}{75}z^{6} - \frac{18}{385}z^{8} + \frac{2591}{238875}z^{10} + \frac{8}{1925}z^{12}\\ &\qquad - \frac{72376}{44669625}z^{14} + \frac{159}{6131125}z^{16} + O(z^{17}) \end{align*} Composing these series and letting $$x(q) = \wp(F(q))$$ and $$y(q) = \wp'(F(q))/2$$ we find \begin{align*} x(q) &= q^{-2} + q^{4} + q^{6} + q^{10} + 2q^{14} + q^{16} + O(q^{17})\\ y(q) &= q^{-3} - q - q^{5} - q^{7} - 3q^{9} - 2q^{11} - 2q^{13} - 2q^{15} + O(q^{16}) \end{align*} which agrees with Sage:

sage: E = EllipticCurve([0, 0, 0, 2, -3])
sage: x, y = E.modular_parametrization().power_series()
sage: x
q^-2 + q^4 + q^6 + q^10 + 2*q^14 + q^16 + O(q^18)
sage: y
-q^-3 - q - q^5 - q^7 - 3*q^9 - 2*q^11 - 2*q^13 - 2*q^15 + O(q^17)

• Thank you very much for this enlightening answer - when I find the time, I will do some example calculations along your lines with Maple. Aug 11, 2020 at 16:13