Other ways to compute the torsion subgroup of elliptic curves

2.5k Views Asked by At

Suppose I have a family of elliptic curves $E_{n}/\mathbb{Q}$. I would like to determine the torsion subgroup of $E_{n}(\mathbb{Q})$ denoted by $E_{n}(\mathbb{Q})_{\textrm{tors}}$. Two ways to do this are using Nagell-Lutz and computing the number of points over $\mathbb{F}_{\ell}$ for various $\ell$. Are there other ways to determine the torsion subgroup of an elliptic curve?

2

There are 2 best solutions below

0
On BEST ANSWER

For a fixed curve over $\mathbb Q$, the easiest way is to check Cremona's tables (!), since it is pretty unlikely that your curve has conductor big enough not to be there.

Sorry for the cheeky answer; here is another slightly more serious one:

I think that using the methods you suggest is pretty standard; as Don Antonio mentions, Mazur's theorem also gives a pretty good absolute upper bound.

One alternative to actually working mod $\mathbb F_{\ell}$ for various $\ell$ is to compute that modular form attached to $E$ (or in practice, look it up in a table). Then it is pretty easy to look for congruences $a_{\ell} \equiv 1 + \ell mod p$ and hence at least determine the possible primes that divide the order of the torsion subgroup.

In the end, if you are using a table, as I said before this table will also likely just contain a precise description of the torsion subgroup. Still, the idea of relating the structure of the torsion to congruences between the modular form of $E$ an an Eisenstein series is important. (E.g. it is the basic mechanism in Mazur's proof of this theorem.)

One thing to remember though is that the modular form, or equivalently the number of $\mathbb F_{\ell}$ points, is an isogeny invariant, so that even if computing $\mathbb F_{\ell}$-points suggests a $p$-torsion point, there may not actually be such a point on your curve (but I guess there will be on some $p$-isogenous curve). (You can see an example in the isogeny class of $X_0(11)$, with $p = 5$.)

7
On

The two ways that you mention, plus looking your curve up in a database (as Matt E. suggests), are the most practical and efficient ways I can think of. Here are two other ways to do this, one practical (but not as efficient) and one which is by no means practical (I think):

  • Use division polynomials. If $E$ is defined over $\mathbb{Q}$, then $E(\mathbb{Q})$ can only have torsion points of order up to certain bounds. If $P$ is a point of prime order, then the order is $2$, $3$, $5$, or $7$ (by Mazur's theorem). You can find the division polynomials for each of these primes, and see if they have any roots in $\mathbb{Q}$. A root in $\mathbb{Q}$ would give you a rational $x$-coordinate of a torsion point of said order. You can also find the division polynomials of order $p^n$. If a point $P$ has order $p^n$, then the order is at most $8$, $9$, $5$, or $7$, so you only really need to find the $8$th, $9$th, $5$th and $7$th division polynomials, and factor those, to find all the torsion points on $E(\mathbb{Q})$.

  • Not practical, and conjectural: Use the Birch and Swinnerton-Dyer conjecture. BSD provides a conjectural formula for a certain Taylor coefficient of the $L$-series of the elliptic curve in question. The size of the torsion subgroup appears in the denominator of the coefficient... However, this coefficient is a real number. The real period $\Omega_E$ can always be calculated. If you could calculate the regulator $R_E$ of your elliptic curve (for instance, if you know the rank is $0$, then $R_E=1$), then you could calculate $\Omega_E\cdot R_E$, calculate the coefficient computationally, divide the result by $\Omega_E\cdot R_E$ and obtain a rational number, whose denominator is a divisor of the square of the size of the torsion subgroup of $E$ (notice that there may be some cancellation with the numerator!). This information would then allow you to find the torsion points on $E$ (see previous bullet point).

Example (with division polynomials): Let $E$ be the curve 53b3 in Cremona's database, with Weierstrass equation $$E: y^2 +xy+y= x^3-x^2-14x+29.$$ Let us first find division polynomials:

  • ($p=2$) The 2nd division polynomial, defining the $x$-coordinates of $2$-torsion points, is given by $4x^3 - 3x^2 - 54x + 117$. This is irreducible, so there are no $2$-torsion points defined over $\mathbb{Q}$.

  • ($p=3$) The 3rd division polynomial is $$3x^4 - 3x^3 - 81x^2 + 351x - 270,$$ and it factors as $3(x - 1)(x^3 - 27x + 90)$. Thus, there is a point of order $3$ with $x$-coordinate $1$. By plugging into the equation of $E$, we find that $(1,3)$ and $(1,-5)$ are points of order $3$ on $E$. Since we found a point of order $3$, we need to keep going and look for points modulo $9$, $27$ (can't happen over $\mathbb{Q}$), etc...

    • ($9$) The $9$ division polynomial has degree $40$ so we won't reproduce it here. However, it has a bunch of linear factors in its factorization: $$(x - 9)(x - 3)(x - 1)(x + 3)\cdot (\text{higher order factors}).$$ The points with $x=1$ are of no interest to us, since they are points of order $3$. The other coordinates $x=\pm 3$ and $x=9$ correspond to points of order exactly 9, so we need to check if their $y$-coordinates are in $\mathbb{Q}$. Indeed, they do correspond to points of order $9$, namely $$(3,1), (-3,7), (9,-29),(9,19),(-3,-5), (3,-5).$$ Notice, however, that $(3,1)$ generates all of them. We move on to order $27$, since we found points of order $9$.

      • ($27$) The 27th division polynomial is of degree $364$, but all the linear factors in its factorization already appeared in the 9th division polynomial, so there are no points of order $27$ (again, there are NO points of order $27$ on elliptic curves over $\mathbb{Q}$).
    • ($p=5$) The 5th division polynomial is of degree $12$ and irreducible. Thus, there are no points of order $5$.

    • ($p=7$) The 7th division polynomial is of degree $24$ and irreducible. Thus, there are no points of order $7$.

Hence, $E(\mathbb{Q})_\text{tors} \cong \mathbb{Z}/9\mathbb{Z}$.

Example (with BSD and L-functions): Let $E$ be the curve 53b3 in Cremona's database, with Weierstrass equation $$E: y^2 +xy+y= x^3-x^2-14x+29.$$ First, we perform a $2$-descent on $E$ to calculate the $2$-Selmer group. It turns out to be trivial. This means two things: the rank is $0$, and Sha is trivial. In particular, the regulator is $R_E=1$. Moreover:

  • The real period is $\Omega_E=3.09156554910300755665231500284\cdots$
  • The Tamagawa numbers are $c_2=9$ and $c_3=3$ for $p=2$ and $3$ respectively.
  • The value of the L-function at $1$ can be calculated to be $$L(E,1)\approx 1.03052184970100251888410500095\cdots$$ If we believe BSD in this case, then we must have: $$(\# E(\mathbb{Q})_\text{tors})^2 = \frac{\# \text{Sha} \cdot \Omega_E\cdot R_E\cdot \prod c_p}{L(E,1)} = \frac{1\cdot (3.09156554910300755665231500284\cdots)\cdot 1 \cdot 27}{1.03052184970100251888410500095\cdots} =81.000000000000000000000000000\cdots.$$

Thus, since $(\# E(\mathbb{Q})_\text{tors})^2$ must be an integer, it must be $81$, and $\# E(\mathbb{Q})_\text{tors} = 9$. Since $ E(\mathbb{Q})_\text{tors}$ is an abelian group, there are only two options: $\mathbb{Z}/3\mathbb{Z}\times \mathbb{Z}/3\mathbb{Z}$ or $\mathbb{Z}/9\mathbb{Z}$. However, the former is imposible because if $E[n]$ is defined over a field $F$, then $F$ must contain the $n$th roots of unity. But $\mathbb{Q}$ does not contain $\sqrt{-3}$. Hence, it must be $\mathbb{Z}/9\mathbb{Z}$.

Magma code Here is Magma code for all I did above:

E:=EllipticCurve("54b3");E;

DivisionPolynomial(E,2);

Factorization(DivisionPolynomial(E,2));

DivisionPolynomial(E,3);

Factorization(DivisionPolynomial(E,3));

IsPoint(E,1);

P:=E![1,3,1];

2*P; 3*P;

DivisionPolynomial(E,9);

Factorization(DivisionPolynomial(E,9));

IsPoint(E,3);

IsPoint(E,9);

P:=E![3,1,1];

P,2*P,3*P,4*P,5*P,6*P,7*P,8*P,9*P;

Degree(DivisionPolynomial(E,27));

// Factorization(DivisionPolynomial(E,27));

DivisionPolynomial(E,5);

Factorization(DivisionPolynomial(E,5));

DivisionPolynomial(E,7);

Factorization(DivisionPolynomial(E,7));

TwoSelmerGroup(E);

RealPeriod(E);

TamagawaNumbers(E);

L:=LSeries(E);

Evaluate(L,1);

27*RealPeriod(E)/Evaluate(L,1);