Small Modular Curve Models#
The models are projective models of the complete curve \(X_0(N)\) over \({\bf Q}\). In the genus 0 case, we simple take the projective line \({\bf P}^1\) with the point at infinity corresponding to the cusp at infinity \(\infty\). In the genus 1 case, we take a CrvEll which is the standard minimal Weierstrass model of the elliptic curve \((X_0(N),\infty)\) with the cusp \(\infty\) as the 0 point for the group law. In the hyperelliptic cases (see [Ogg, 1974]), we take a minimal Weierstrass model with two rational points at infinity, the cusp \(\infty\) (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 \({\bf P}^2\)) or a non-singular model in \({\bf P}^3\). In fact, we have only used \({\bf 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 \(A_2\)) and simple cusps (type \(A_3\)) and often under cuspidal points, though there are some more complex ones of higher \(A_n\) type. All of the non-singular models that we have produced reduce mod \(p\) to non-singular models of the reduction of \(X_0(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 \(X_0(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 \(X_0(N)\) and all other cases with genus \(\le 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 [Ligozat, 1975] for the elliptic cases), though we found them again anyway as part of our general procedure of searching for small degree rational functions on \(X_0(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 \(\infty\) giving a \(y^2=f(x)\) type Weierstrass equation are determined from constructing weight two cusp forms \(G\) and \(F\) with \(q\)-expansions \(q^{g-1}+..\) and \(q^g+..\) 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 [Harrison, 2013] where the genus 5 case is also discussed.
Having determined a model as the image of the mapping \(X_0(N)\) into \({\bf P}^{r-1}\) by \(z \mapsto [f_1(z):\ldots:f_r(z)]\), \(r=3\) or 4, we then found expressions for the weight 2 forms \(f_i\) 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 \(X_0(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: Sm Mod Crvs Basic Ex (ex-3a10fa)#
> 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