Small Modular Curve Models

The models are projective models of the complete curve X0(N) over (Q). In the genus 0 case, we simple take the projective line (P)1 with the point at infinity corresponding to the cusp at infinity ∞. In the genus 1 case, we take a CrvEll which is the standard minimal Weierstrass model of the elliptic curve (X0(N), ∞) with the cusp ∞ as the 0 point for the group law. In the hyperelliptic cases (see [Ogg74]), we take a minimal Weierstrass model with two rational points at infinity, the cusp ∞ (which is never a hyperelliptic Weierstrass point) and its image under the hyperelliptic involution.

In all other cases (non-subhyperelliptic), we have followed the rule of taking a plane model (in (P)2) or a non-singular model in (P)3. In fact, we have only used (P)3 models in the genus 4 cases. For genus 3 and 4, we take a canonical model (non-singular plane quartic and non-singular complete intersection of a quadric and a cubic respectively). For genus 5 and 6, we find a smallest degree singular birational plane model. These plane curves are of degree 6 in all cases. The singularities are mainly nodes (type A2) and simple cusps (type A3) and often under cuspidal points, though there are some more complex ones of higher An type. All of the non-singular models that we have produced reduce mod p to non-singular models of the reduction of X0(N) for p not dividing the level N. The singular plane models reduce mod p (p not dividing N again) to singular plane models of the reduction of X0(N) with singularities of the same type, except for a few cases with small p where nodes become cusps or two singularities coalesce into a more complex one.

The initial version of the database contains data for all subhyperelliptic X0(N) and all other cases with genus ≤6 (with a few genus 5 and 6 cases not yet added). This covers all N < 60 along with about half of the N between 60 and 80 and N=81, 121.

We briefly indicate how the models were arrived at. Equations in the genus 0 and elliptic cases and modular functions giving the coordinate generators are reasonably well-known (see [Lig75] for the elliptic cases), though we found them again anyway as part of our general procedure of searching for small degree rational functions on X0(N). We considered functions generated by Dedekind eta products and weight 2 integral forms coming from eta products, various types of theta series and Eisenstein series. For the hyperelliptic cases with genus g, functions x and y with poles at ∞ giving a y2=f(x) type Weierstrass equation are determined from constructing weight two cusp forms G and F with q-expansions qg - 1 + .. and qg + .. respectively. These were found in terms of eta products and theta forms and the results were checked against the output of Magma's modular forms package.

In the non-subhyperelliptic cases, we started from a canonical image simplified by applying LLL as output by ModularCurveQuotient, occasionally slightly adapting this to get good reduction at 2. In the genus 5 and 6 cases, we determined minimal degree (singular) plane models from these. Genus 5 is fairly straightforward. For the method to find degree 6 plane images in the genus 6 case, see [Har13] where the genus 5 case is also discussed.

Having determined a model as the image of the mapping X0(N) into (P)r - 1 by z |-> [f1(z): ... :fr(z)], r=3 or 4, we then found expressions for the weight 2 forms fi of the type described above (eta products etc.). For more information on this, see the subsection Modular Generators and q-Expansions where we also give intrinsics to return a symbolic description of the construction of the generating modular functions/forms and to return q-expansions up to a desired precision. We wished to have concrete expressions for these functions/forms in terms of certain basic types, independent of the generic modular symbol method of generating q-expansions for bases of forms. It also allows for slightly faster reconstruction of q-expansions.

SmallModularCurve(N) : RngIntElt -> Crv
SmallModularCurve(N,K) : RngIntElt, Rng -> Crv
The first intrinsic returns the model for X0(N) over the rationals from the small modular curve database. The second returns the base change of this to K, which should be a characteristic zero field.

If there is no database entry yet for level N, a runtime error results.

IsInSmallModularCurveDatabase(N) : RngIntElt -> Boolelt
Returns whether or not there is a data for level N in the small modular curves database.

Example SmallModCrv_sm_mod_crvs_basic_ex (H138E1)

> IsInSmallModularCurveDatabase(79);
false
> IsInSmallModularCurveDatabase(35);
true
> SmallModularCurve(35);
Hyperelliptic Curve defined by y^2 + (-x^4 - x^2 - 1)*y = -x^7 - 2*x^6 - x^5 -
    3*x^4 + x^3 - 2*x^2 + x over Rational Field
> C<x,y,z> := SmallModularCurve(63);
> C;
Curve over Rational Field defined by
x^5*y - 2*x^4*y^2 + 3*x^3*y^3 - 2*x^2*y^4 + x*y^5 - 2*x^3*z^3 + x^2*y*z^3 +
    x*y^2*z^3 - 2*y^3*z^3 + z^6
V2.28, 13 July 2023