Modular Polynomial Databases

Magma contains several databases of standard defining polynomials for modular curves which are used throughout the system for the construction of isogenies of elliptic curves, and which are made available to the user. These define singular models for modular curves X0(N), in terms for standard functions on the curves.

The classical model for X0(N) is in terms of the polynomial ΦN(X, Y) such that ΦN(j(τ), j(Nτ)) = 0, where j(τ) is the j-function. The bivariate polynomial ΦN(X, Y) is defined to be the classical modular polynomial. The classical modular polynomial has the property of being symmetric in X and Y, and moreover, the canonical involution is defined by (X, Y) |-> (Y, X).

Suppose that N is a prime and set s = 12/(GCD)(N - 1, 12). Using the property that the Dedekind η-function is holomorphic with no zeros on the upper half plane Hh, the function

f(τ) = Ns ((η(Nτ) /η(τ)))2s,

is a holomorphic function whose reciprocal is also holomorphic on Hh. The transformation properties of the η-function imply that f(τ) is invariant under Γ0(N). Together j(τ) and f(τ) generate the function field for X0(N). The polynomial ΨN(X, Y) such that Ψp(f(τ), j(τ)) = 0 is called the canonical modular polynomial. The Atkin--Lehner involution sends f(τ) to Ns/f(τ), so that the relation ΨN(Ns/f(τ), j(Nτ)) = 0 also holds.

The third distinguished class of modular polynomials are the Atkin modular polynomials ΞN(X, Y), satisfying the property that ΞN(f(τ), j(τ)) = 0 for a modular function f(τ) on X0(N) invariant under the Atkin-Lehner involution. Since the function f(τ) is well-defined as a function on the Atkin-Lehner quotient curve X0^ + (N), sometimes denoted X0 * (N), these polynomials are also referred to as star modular polynomials in the literature. The construction of f(τ) and the modular polynomial ΞN(X, Y) is described in articles of Elkies [Elk98] and Morain [Mor95]. The database of Atkin modular polynomials were provided by A.O.L. Atkin.

AtkinModularPolynomial(N) : RngIntElt -> RngMPolElt
Given a prime number N, represented in the database of Atkin modular curves, this function returns the Atkin modular polynomial ΞN(X, Y).
CanonicalModularPolynomial(N) : RngIntElt -> RngMPolElt
Given a prime number N represented in the database of canonical modular curves, this function returns the canonical modular polynomial ΨN(X, Y).
ClassicalModularPolynomial(N) : RngIntElt -> RngMPolElt
Given an integer N represented in the database of classical modular curves, this function returns the defining classical modular polynomial ΦN(X, Y).
ModularCurveDatabase(t) : MonStgElt -> DB
ModularCurveDatabase(t,i) : MonStgElt, RngIntElt -> DB
Given an identifier string t, which must be one of "Atkin", "Canonical", or "Classical", this function returns the corresponding database object of modular curves X0(N).

Because of its size, the Atkin database is split into database objects of levels 200(i - 1) + 1 ≤N < 200i for i in (1, 2, 3, 4, 5), of which only the first two are provided by default. Additional datafiles are available from the Magma website. The canonical database contains a subset of the curves for prime levels below 200, and only curves for levels below 60 are present in the classical modular curve database.

N in D: RngIntElt, DB -> BoolElt
Returns true if and only if N is a level represented in the given modular curve database D.
ExistsModularCurveDatabase(t) : MonStgElt -> BoolElt
ExistsModularCurveDatabase(t,i) : MonStgElt, RngIntElt -> BoolElt
Returns true if and only if the data file given by the string t and integer i exists

Example CrvMod_Modular polynomials (H137E2)

Here we compare the defining polynomials for the Atkin, Canonical, and Classical models for the modular curves X0(N). For the modular curve X0(3) we list the corresponding polynomial.
> P2<x,j> := PolynomialRing(Integers(),2);
> P2!AtkinModularPolynomial(3);
x^4 - x^3*j + 744*x^3 + 193752*x^2 + 2348*x*j + 19712160*x + j^2
  + 24528*j + 538141968
> P2!CanonicalModularPolynomial(3);
x^4 + 36*x^3 + 270*x^2 - x*j + 756*x + 729
> P2!ClassicalModularPolynomial(3);
x^4 - x^3*j^3 + 2232*x^3*j^2 - 1069956*x^3*j + 36864000*x^3 +
    2232*x^2*j^3 + 2587918086*x^2*j^2 + 8900222976000*x^2*j +
    452984832000000*x^2 - 1069956*x*j^3 + 8900222976000*x*j^2 -
    770845966336000000*x*j + 1855425871872000000000*x + j^4 +
    36864000*j^3 + 452984832000000*j^2 + 1855425871872000000000*j
For larger values of N the Atkin modular polynomials tend to have smaller coefficients.
> P2!CanonicalModularPolynomial(11);
x^12 - 5940*x^11 + 14701434*x^10 - 139755*x^9*j - 19264518900*x^9 +
    723797800*x^8*j + 13849401061815*x^8 + 67496*x^7*j^2 -
    1327909897380*x^7*j - 4875351166521000*x^7 + 2291468355*x^6*j^2 +
    1036871615940600*x^6*j + 400050977713074380*x^6 - 5346*x^5*j^3 +
    4231762569540*x^5*j^2 - 310557763459301490*x^5*j +
    122471154456433615800*x^5 + 161201040*x^4*j^3 +
    755793774757450*x^4*j^2 + 17309546645642506200*x^4*j +
    6513391734069824031615*x^4 + 132*x^3*j^4 - 49836805205*x^3*j^3 +
    6941543075967060*x^3*j^2 - 64815179429761398660*x^3*j +
    104264884483130180036700*x^3 + 468754*x^2*j^4 + 51801406800*x^2*j^3
    + 214437541826475*x^2*j^2 + 77380735840203400*x^2*j +
    804140494949359194*x^2 - x*j^5 + 3732*x*j^4 - 4586706*x*j^3 +
    2059075976*x*j^2 - 253478654715*x*j + 2067305393340*x + 1771561
> P2!CanonicalModularPolynomial(13);
x^14 + 26*x^13 + 325*x^12 + 2548*x^11 + 13832*x^10 + 54340*x^9 +
    157118*x^8 + 333580*x^7 + 509366*x^6 + 534820*x^5 + 354536*x^4 +
    124852*x^3 + 15145*x^2 - x*j + 746*x + 13
> P2!AtkinModularPolynomial(11);
x^12 - x^11*j + 744*x^11 + 196680*x^10 + 187*x^9*j + 21354080*x^9 +
    506*x^8*j + 830467440*x^8 - 11440*x^7*j + 16875327744*x^7 -
    57442*x^6*j + 208564958976*x^6 + 184184*x^5*j + 1678582287360*x^5 +
    1675784*x^4*j + 9031525113600*x^4 + 1867712*x^3*j +
    32349979904000*x^3 - 8252640*x^2*j + 74246810880000*x^2 -
    19849600*x*j + 98997734400000*x + j^2 - 8720000*j + 58411072000000
> P2!AtkinModularPolynomial(13);
x^14 - x^13*j + 744*x^13 + 196716*x^12 + 156*x^11*j + 21377304*x^11 +
    364*x^10*j + 835688022*x^10 - 8502*x^9*j + 17348897592*x^9 -
    37596*x^8*j + 224269358092*x^8 + 149786*x^7*j + 1949972557416*x^7 +
    1161420*x^6*j + 11858099339697*x^6 + 700323*x^5*j +
    51262531538400*x^5 - 9614956*x^4*j + 157275877324800*x^4 -
    23669490*x^3*j + 335383326720000*x^3 - 5859360*x^2*j +
    473336381440000*x^2 + 32384000*x*j + 397934592000000*x + j^2 +
    24576000*j + 150994944000000
In general the Atkin modular polynomials have coefficients of a smaller size when N ≡ 11 mod 12 and are largest when N ≡ 1 mod 13, while the opposite is true for the canonical modular polynomials.
V2.28, 13 July 2023