[Next][Prev] [Right] [Left] [Up] [Index] [Root]

Modular Equation Databases

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

The classical model for X_0(N) is in terms of the equation Phi_N(X, Y) such that Phi_N(j(tau), j(Ntau)) = 0, where j(tau) is the j-function. The bivariate polynomial Phi_N(X, Y) is defined to be the classical modular equation. The classical modular equation 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 = (N - 1)/( GCD)(N - 1, 12). Using the property that the Dedekind eta-function is holomorphic with no zeros on the upper half plane HH, the function

f(tau) = N^s ((eta(Ntau) /eta(tau)))^(2s),

is a holomorphic function whose reciprocal is also holomorphic on HH. The transformation properties of the eta-function imply that f(tau) is invariant under Gamma_0(N). Together j(tau) and f(tau) generate the function field for X_0(N). The polynomial Psi_N(X, Y) such that Psi_p(f(tau), j(tau)) = 0 is called the canonical modular equation. The Atkin--Lehner involution sends f(tau) to N^s/f(tau), so that the relation Psi_N(N^s/f(tau), j(Ntau)) = 0 also holds.

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

AtkinModularEquation(N) : RngIntElt -> RngMPolElt
Given a prime number N, represented in the database of Atkin modular equations, returns the Atkin modular polynomial Xi_N(X, Y).

N.B. This returns the same bivariate polynomial as the function ModularEquation used in the SEA algorithm. The former name is deprecated in view of the multiple modular equations databases.

CanonicalModularEquation(N) : RngIntElt -> RngMPolElt
Given a prime number N represented in the database of canonical modular equations, returns the canonical modular equation Psi_N(X, Y).
ClassicalModularEquation(N) : RngIntElt -> RngMPolElt
Given an integer N represented in the database of classical modular equations, returns the classical modular equation Phi_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", returns the corresponding database object of modular curves X_0(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 can be obtained by request. The canonical database consists a subset of the prime levels below 200, and only 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_CrvMod:modular-equations (H87E2)

Here we compare the defining polynomials for the Atkin, Canonical, and Classical models for the modular curves X_0(N). For the modular curve X_0(3) we have the equations which follow.

> P2<x,j> := PolynomialRing(Integers(),2);
> P2!AtkinModularEquation(3);    
x^4 - x^3*j + 744*x^3 + 193752*x^2 + 2348*x*j + 19712160*x + j^2 
  + 24528*j + 538141968
> P2!CanonicalModularEquation(3);
x^4 + 36*x^3 + 270*x^2 - x*j + 756*x + 729
> P2!ClassicalModularEquation(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 equations tend to have smaller coefficients.

> P2!CanonicalModularEquation(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!CanonicalModularEquation(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!AtkinModularEquation(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!AtkinModularEquation(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
We note however that tn general the Atkin modular equations have coefficients of a smaller size when N = 11 mod 12 and are largest when N = 1 mod 13, while the converse is true for the canonical modular equations.
 [Next][Prev] [Right] [Left] [Up] [Index] [Root]