# 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_1=(N/12)(E_2^{(N)}/d)(p)\qquad E_4=(E_4/d^2)(p)\qquad E_6=(E_6/d^3)(p)
$$

$$
\tilde{E_4}=N^2((E_4/d^2)(w_N(p))(w_N^*(d)/d)(p)^2\qquad \tilde{E_6}=
  N^3((E_6/d^3)(w_N(p))(w_N^*(d)/d)(p)^3
$$

$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)`

```magma
> 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

```
