Parametrized Structures#
As with the other modular equation databases in Magma there is functionality to explicitly compute a cyclic \(N\)-isogeny or cyclic subgroup of order \(N\) on an elliptic curve that is represented by a non-cuspidal point or place on the \(X_0(N)\) models with the usual moduli space interpretation of the modular curves. The points represent equivalence classes of these structures (elliptic curve \(E\) with cyclic subgroup \(C\), \((E,C)\), or cyclic \(N\)-isogeny \(\phi:E\rightarrow F\)) up to isomorphism. In particular, if \((E,C)\) is an elliptic curve with cyclic subgroup with both \(E\) and \(C\) defined over a field \(K\), then any quadratic twist \(E_1\) of \(E\) with the twisted subgroup \(C_1\), which is the image of \(C\) under the isomorphism from \(E\) to \(E_1\) over a quadratic extension, is represented by the same point on \(X_0(N)\). If \(j \neq 0,1728\), any two elliptic curves over a field \(K\) with \(j\)-invariant \(j\) are quadratic twists of each other. Because of this, if \(j(p) \neq 0,1728\), any elliptic curve \(E\) over the field of definition \(K\) of the point \(p\) and \(j\)-invariant \(j(p)\) will have a cyclic subgroup \(C\) defined over \(K\) such that \((E,C)\) is represented by \(p\) or, equivalently, there is a cyclic \(N\)-isogeny defined over \(K\) and with domain \(E\) that is represented by \(p\). We allow the user to pass in his choice of \(E\) for the base elliptic curve.
If \(z\) is a non-real complex number, let \(\Lambda_z\) be the two dimensional complex lattice \({\bf Z}\oplus {\bf Z}z\). Under the identification of the complex points of our model of \(X_0(N)\) with \(H^*/\Gamma_0(N)\) which follows from the identification of coordinate functions with specific modular functions or forms (see the next section), if a non-cuspidal point \(p\) corresponds to a point \(z\) in the upper halfplane \(H\), the point \(p\) in the moduli interpretation is represented by \((E_z,C)\), where \(E_z={\bf C}/\Lambda_z\) and \(C\) is the cyclic subgroup generated by \((1/N)\) mod \(\Lambda_z\), or the cyclic \(N\)-isogeny \(\phi: E_z \rightarrow E_{Nz}\), \(t \mapsto Nt\).
The computation of structures uses well-known methods. If \(d\) is a suitable differential on \(X_0(N)\), we start with the data
\(p\) is represented by \((E,C)\) where \(E\) is given by \(y^2=x^3-(E_4/48)x-(E_6/864)\) and the monic polynomial in \(x\) that defines \(C\) is computed from \(p_1,E_4,E_6,\tilde{E_4},\tilde{E_6}\) by the same algorithm as used in the SEA Elkies variant of Schoof’s algorithm. The corresponding isogeny \(\phi:E\rightarrow F\) with kernel \(C\) can then be computed using Velu’s formulae.
- SubgroupScheme(p, N): Pt, RngIntElt -> SchGrpEll, CrvEll#
- SubgroupScheme(p, N): PlcCrvElt, RngIntElt -> SchGrpEll, CrvEll#
- SubgroupScheme(p, N, E): Pt, RngIntElt, CrvEll -> SchGrpEll#
- SubgroupScheme(p, N, E): PlcCrvElt, RngIntElt, CrvEll -> SchGrpEll#
Here \(p\) is a non-cuspidal point or place on \(C_N\), a base change of the curve from the small modular curve database of level N to a field of characteristic zero. When \(p\) is given as a point, it should be non-singular point on \(C_N\). The function returns an elliptic curve \(E_1\) and a subgroup scheme \(G\) of \(E_1\), both defined over the field of definition \(K\) of \(p\) (\(K\) if \(p\) is a point in \(C_N(K)\); the residue class field of \(p\) if \(p\) is a place) such that \(G\) gives a cyclic subgroup of order \(N\) on \(E_1\) and \((E_1,G)\) represents \(p\) in the moduli space interpretation.
In the second version, when \(j(p)\) should not be \(0\) or \(1728\), \(E\) should be an elliptic curve over a subfield of \(K\) with \(j\)-invariant \(j(p)\). In this case, \(E_1\) is taken as \(E\) or the base change of \(E\) to \(K\), and only \(G\) is returned.
- Isogeny(p, N): Pt, RngIntElt -> MapSch#
- Isogeny(p, N): PlcCrvElt, RngIntElt -> MapSch#
- Isogeny(p, N, E): Pt, RngIntElt, CrvEll -> MapSch#
- Isogeny(p, N, E): PlcCrvElt, RngIntElt, CrvEll -> MapSch#
Here \(p\) is a non-cuspidal point or place on \(C_N\), a base change of the curve from the small modular curve database of level N to a field of characteristic zero. When \(p\) is given as a point, it should be non-singular point on \(C_N\). The function returns a cyclic \(N\)-isogeny of elliptic curves \(\phi: E_1\rightarrow F_1\), all defined over the field of definition \(K\) of \(p\) (\(K\) if \(p\) is a point in \(C_N(K)\); the residue class field of \(p\) if \(p\) is a place), which represents \(p\) in the moduli space interpretation.
In the second version, when \(j(p)\) should not be \(0\) or \(1728\), \(E\) should be an elliptic curve over a subfield of \(K\) with \(j\)-invariant \(j(p)\). In this case, \(E_1\) is taken as \(E\) or the base change of \(E\) to \(K\).
- Example: Sm Mod Crvs Prms (ex-d8d05c)#
> C := SmallModularCurve(14); > rats := NonCuspidalQRationalPoints(C,14); > rats; [ (2 : 2 : 1), (9 : -33 : 1) ] > jInvariant(rats[1],14); 16581375 > jNInvariant(rats[1],14); -3375 > jInvariant(rats[2],14); -3375 > jNInvariant(rats[2],14); 16581375 > G,E := SubgroupScheme(rats[2],14); > E; Elliptic Curve defined by y^2 + x*y = x^3 - x^2 - 2*x - 1 over Rational Field > G; Subgroup scheme of E defined by x^7 + 7*x^6 - 7*x^5 - 35*x^4 + 7*x^3 + 35*x^2 + 7*x - 2 > jInvariant(E); -3375 > phi := Isogeny(rats[2],14); > phi; Elliptic curve isogeny from: Elliptic Curve defined by y^2 + x*y = x^3 - x^2 - 2*x - 1 over Rational Field to Elliptic Curve defined by y^2 + x*y = x^3 - x^2 - 1822*x + 30393 over Rational Field taking (x : y : 1) to ((x^14 + 16*x^13 + 431*x^12 + 1604*x^11 - 768*x^10 - 12344*x^9 - 7979*x^8 + 25044*x^7 + 29067*x^6 - 4796*x^5 - 12252*x^4 + 3244*x^3 + 6789*x^2 + 2504*x + 371) / (x^13 + 16*x^12 + 67*x^11 - 34*x^10 - 495*x^9 - 332*x^8 + 967*x^7 + 1048*x^6 - 431*x^5 - 834*x^4 - 205*x^3 + 52*x^2 + 13*x - 2) : (x^20*y + 23*x^19*y - 364*x^19 - 192*x^18*y - 2093*x^18 + 288*x^17*y - 2821*x^17 + 1248*x^16*y + 19201*x^16 - 5484*x^15*y + 73430*x^15 + 5293*x^14*y - 59871*x^14 - 10840*x^13*y - 398076*x^13 - 50135*x^12*y - 153384*x^12 - 107060*x^11*y + 723331*x^11 - 175648*x^10*y + 619619*x^10 - 15884*x^9*y - 395549*x^9 + 540867*x^8*y - 167643*x^8 + 1295892*x^7*y + 895937*x^7 + 1548467*x^6*y + 848974*x^6 + 947584*x^5*y + 19075*x^5 + 32804*x^4*y - 348579*x^4 - 407788*x^3*y - 218505*x^3 - 305738*x^2*y - 56084*x^2 - 95233*x*y - 3710*x - 9831*y + 371) / (x^20 + 23*x^19 + 172*x^18 + 288*x^17 - 1755*x^16 - 5757*x^15 + 4334*x^14 + 29683*x^13 + 7538*x^12 - 65053*x^11 - 47954*x^10 + 59387*x^9 + 72098*x^8 - 8621*x^7 - 37663*x^6 - 12228*x^5 + 2214*x^4 + 1215*x^3 - 83*x^2 - 40*x + 4) : 1) > F := Codomain($1); > jInvariant(F); 16581375