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.
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.
Returns an affine model of the modular curve X0(N) of level N from a database D of modular curves.
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.
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.
> 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 + 536749In 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.