Creation Functions

Several different models for modular curves are available. The possible model types are "Atkin", "Canonical", and "Classical", each giving affine models defined by the modular polynomial databases of the same names. For more details on these polynomials see Section Modular Polynomial Databases on modular polynomials and databases.

Contents

Creation of a Modular Curve

ModularCurve(X,t,N) : Sch, MonStgElt, RngIntElt -> CrvMod
Returns a model of the modular curve X0(N), in an affine plane specified by X. The string t must be one of "Atkin", "Canonical", or "Classical", with N a level in the corresponding modular curve database.
ModularCurve(D, N) : DB, RngIntElt -> CrvMod
Returns an affine model of the modular curve X0(N) of level N from a database D of modular curves.

Creation of Points

Points on modular curves can be created in the same way as points on curves or schemes in general. In addition, there exist several specific constructors, defined in terms of the moduli structure, which take a parameterized elliptic curve as an argument.

ModuliPoints(X,E) : CrvMod, CrvEll -> SeqEnum
Given a modular curve X = X0(N) and an elliptic curve E, with compatible base rings, returns the sequence of points over the base field of E, corresponding to E with additional level structure.

Example CrvMod_Moduli points (H137E1)

Below we give an example of the use of the moduli interpretation of modular curves in order to construct the corresponding subgroup scheme structures defined over a finite field.
> FF := FiniteField(NextPrime(10^6));
> A2 := AffineSpace(FF,2);
> X0 := ModularCurve(A2,"Canonical",17);
> E := EllipticCurve([FF|1,23]);
> mp := ModuliPoints(X0,E); mp;
[ (259805, 350390), (380571, 350390) ]
We will see later that it is possible to construct the structure of an elliptic curve parameterized by the corresponding moduli points.
> P, Q := Explode(mp);
> SubgroupScheme(E,P);
Subgroup of E defined by x^8 + 377217*x^7 + 190510*x^6 + 872850*x^5
  + 816054*x^4 + 457629*x^3 + 64955*x^2 + 361795*x + 460146
> SubgroupScheme(E,Q);
Subgroup of E defined by x^8 + 796070*x^7 + 308587*x^6 + 62023*x^5
  + 976430*x^4 + 380273*x^3 + 200328*x^2 + 892738*x + 536749
In this example we see that the prime 17 splits in the endomorphism ring of E, so we have exactly two parameterized isogenies defined over the base field of E.
V2.28, 13 July 2023