ModularFormsModuloTwo.jl Documentation
This module contains usual routines to do computation on modular forms modulo two.
Introduction Modular Forms Modulo 2
Here is a very quick introduction to modular forms modulo two.
Modular Forms
Modular forms are holomorphic complex functions on the upper half plane.
For a real introduction on modular forms, you can read "A Course in Arithmetic" by J-P. Serre (1973), or the wikipedia page.
$\ q$-series of Modular Forms
Now, as they are holomorphic, they have a series expansion. For a modular form $\ f$, there is an expansion
$\ f(z) = f(q) = \sum_{n \in \Z} a_n(f) q^n \qquad q = e^{2\pi i z}$
Now, Victor Saul Miller has proved in his thesis that there exists a basis for modular forms such that all $\ a_n$ are integers.
Reduction Modulo 2
Using this basis, we can reduce a modular form $\ f$ by taking it's $\ q$-series and reducing all coefficients $\ a_n$ modulo 2. It may be proved that the resulting $\ f$ is composed only of powers of $\ \Delta$ with
$\ \Delta = \sum_{m=0}^{\infty} q^{(2m+1)^2}.$
Therefore, the space of modular forms modulo 2 is:
$\ \mathcal{F} = \left\langle \Delta^k | k \text{ odd} \right\rangle = \left\langle \Delta, \Delta^3, \Delta^5, \Delta^7, \dots \right\rangle$
Duality $\ q$-series and $\ \Delta$ polynomial
What make the study of modular forms modulo 2 interesting is the fact that for a modular form $\ f$, there are two representations:
- one as un infinite $\ q$-series
- one as a finite polynomial in terms of $\ \Delta$
The fact that we can switch from one representation is very useful. With the $\ q$-series, calculations (such as Hecke operators) are made easy, but we have to deal with an infinite series. On the other hand, the $\ \Delta$-polynomial is a finite representation, but calculations are harder.
Specific use of this library
The way usual computer programs would deal with such object would be to represent $\ 10^6$ $\ q$-coefficients of modular forms, and suppose it is enough to take conclusions. In this library, we try to take advantage of the fact that we have a duality $\ q-\Delta$ and that all coefficients are over $\ \mathbb{F}_2$ (so either $\ 0$ or $\ 1$). There are functions to_q(df, precalculated)
and to_Δ(f, precalculated)
(in the advanced operations section) to switch from one representation to an other. There is also a very special drop_error(f, precalculated, LENGTH)
function which drops the numerical error from calculating a Hecke operator (in the advanced operations as well). (This is only possible by taking advantage of the fact that there is an equivalent finite representation in terms of $\ \Delta$.)