# A SIMPLE PRACTICAL HIGHER DESCENT FOR LARGE HEIGHT RATIONAL POINTS ON CERTAIN ELLIPTIC CURVES

## 1 Introduction

Many Diophantine problems can be reduced to determining points on elliptic curves. A fascinating example is from Bremner et al , where finding possible representations of $`n`$ as

$$n=(x+y+z)\left(\frac{1}{x}+\frac{1}{y}+\frac{1}{z}\right)$$

is shown to be equivalent to finding points of infinite order on the elliptic curve

$$E_n:u^2=v^3+(n^26n3)v^2+16nv$$

The rank of $`E_n`$ can be estimated from the L-series of the curve, assuming the Birch & Swinnerton-Dyer conjecture, but this just provides evidence of existence. For an actual representation, we need to explicitly find a rational point. If the curve has rank greater than 1, it is usually fairly simple to find a point by a trivial search. For rank 1 curves, however, this is often not feasible. The L-series computations can be extended to give an estimate for the height of a rational point of the curve. If this is large, then a simple search will take far too long.

Recently, Silverman  produced a very nice and effective procedure to determine such points. Based on a preprint of this paper, the author coded the method in UBASIC, and used it on several families of elliptic curves from Diophantine problems. This usage has shown that the method starts to become time-consuming for heights greater than about 10 in the Silverman normalisation - 20 in the alternative (from now on all heights will be in the Silverman normalisation).

If the curve has a rational point of order 2, we can use a 4-descent procedure to calculate the point, which we have found to be effective up to heights of about 15. By effective we mean that a point can usually be found in a matter of minutes on a 200MHz PC with a program written in UBASIC. If one is willing to wait several hours, the height barrier can obviously be increased. It should be noted that Silverman’s method works just as well on curves with no rational points of order 2, and so is more general.

## 2 Four-descent

The following set of formulae describe the algebra necessary to perform a general four-descent procedure for the elliptic curve

$$y^2=x^3+ax^2+bx$$
(1)   
so the curve is assumed to have at least one point of order 2. This discussion is purely concerned with computing a rational point, and not with determining the rank, and so is not as general as Cremona’s mwrank program, described in .

We can assume without loss of generality that $`x=du^2/v^2`$ and $`y=duw/v^3`$, with $`d`$ squarefree and $`(d,v)=1`$, giving

$$d^2w^2=d^3u^4+d^2au^2v^2+dbv^4$$
(2)   
which implies that $`d|b`$, so that $`b=de`$. There are thus a finite set of possible values for d, which we can work out easily from the factors of $`b`$, unless $`b`$ is very large and difficult to factor. Remember that $`d`$ can be negative.

Consider first the simpler quadratic

$$h^2=df^2+afg+eg^2$$
(3)   
and look for a solution $`(h_0,f_0,g_0)`$ either by searching or by more advanced methods, and assume $`g_00`$.

If we find a solution, we can parameterise as follows. Define $`x=f/g`$ and $`y=h/g`$, so that the equation is

$$y^2=dx^2+ax+e$$

then the line through $`(x_0,y_0)=(f_0/g_0,h_0/g_0)`$, with gradient $`m`$, meets the curve again where

$$x=\frac{a+dx_0+m(mx_02y_0)}{m^2d}$$
(4)   
Assuming $`m=p/q`$ is rational, we simplify this to

$$\frac{ag_0q^2+df_0q^2+p(f_0p2h_0q)}{g_0(p^2dq^2)}$$
(5)   
To solve our original problem we look for values of the parameters giving $`f/g=u^2/v^2`$, which leads to the two quadratics

$$ku^2=g_0p^2g_0dq^2$$
(6)   
and

$$kv^2=f_0p^22h_0pq+(ag_0+df_0)q^2$$
(7)   
with $`k`$ squarefree.

The possible values of $`k`$ are those which divide the resultant of the two quadratics, which means that $`k`$ must divide the determinant

$`\begin{array}{cccc}g_0& 0& dg_0& 0\\ 0& g_0& 0& dg_0\\ f_0& 2h_0& ag_0+df_0& 0\\ 0& f_0& 2h_0& ag_0+df_0\end{array}`$

which reduces to $`g_0^4(a^24b)`$. Let $`k_0`$ be a squarefree divisor (again possibly negative).

We search the first of these quadratics to find a solution $`(u_0,p_0,q_0)`$. If we find one, another simple line-quadratic intersection analysis characterises the solutions to the first quadratic as

$$p=2u_0k_0rsp_0(g_0s^2+k_0r^2)$$
(8)   
and

$$q=q_0(g_0s^2k_0r^2)$$
(9)   
Substitute these into $`k_0(7)`$, giving the quartic

$$z^2=z_1r^4+z_2r^3s+z_3r^2s^2+z_4rs^3+z_5s^4$$
(10)   
with

$$z_1=k_0^3(ag_0q_0^2+df_0q_0^2+f_0p_0^22h_0p_0q_0)$$
(11)   
$$z_2=4u_0k_0^3(h_0q_0f_0p_0)$$
(12)   
$$z_3=2k_0^2(f_0(2u_0^2k_0dg_0q_0^2+g_0p_0^2)ag_0^2q_0^2)$$
(13)   
$$z_4=4u_0g_0k_0^2(f_0p_0+h_0q_0)$$
(14)   
$$z_5=g_0^2k_0(ag_0q_0^2+df_0q_0^2+f_0p_0^2+2h_0p_0q_0)$$
(15)   
This quartic can then be searched for possible solutions. Having found one, the various transformations eventually lead back to a point on the curve.

## 3 COMPUTING

The above formulae form the basis of a simple code written by the author in UBASIC. This system is fast, simple, free, and runs on a multitude of PC’s, old and new. The major advantage, however, is that large numbers can be dealt with by one single statement at the start of the program - the rest of the code is standard Basic. Constructing a UBASIC code also leads to a structure which can easily be translated into Fortran, C, C++, etc using the many multiple-precision packages available in these languages.

The basic structure of the algorithm is

find divisors d of b

for s1 = s1a to s1b

test if $`h^2=df^2+afg+eg^2`$ soluble with $`|f|+|g|=s1`$

if $`(d,h_0,f_0,g_0)`$ a solution then

find divisors k of $`g_0(a^24b)`$

for s2 =2 to s2b

test if $`ku^2=g_0p^2g_0dq^2`$ with $`|p|+|q|=s2`$

if $`(k_0,u_0,p_0,q_0)`$ a solution, then

form quartic equation from equations (10) to (15)

test if quartic is soluble, and if it is

for s3=2 to s3b

test if quartic is square for $`|r|+|s|=s3`$

if it is, determine point on curve, and stop

next s3

next s2

next s1

If the curve has a rational point of moderate height, the above search-based procedure works very well. We have found the method to be effective for points with height of up to about 15, if we select s2b=99 and s3b=199. It is impossible to predict in advance the best choice of s1a and s1b.

For larger heights, the quartic search needs a larger value of s3b and can take a considerable time. In many cases, the quartic is insoluble so searching is futile. Cremona describes how to test this, based on ideas from Birch and Swinnerton-Dyer , and we have implemented this test as a precursor to searching. This method is probably the most advanced mathematically in the whole procedure. It is also a vital time-saving procedure since the majority of quartics are not soluble.

Cremona also describes various methods for searching the quartic which reduce the time taken. We have chosen NOT to implement these, partly to keep the code reasonably understandable by amateurs, and partly because UBASIC has restrictions on the number of variables. These methods are only effective time-savers if s3b is large.

For investigating families of curves where $`a`$ and $`b`$ are functions of $`n`$, we found the simple search for $`(h_0,f_0,g_0)`$ could fail to find any solutions in the specified range. In such a case we can adapt the search as follows. If

$$h^2=df^2+afg+bg^2/d$$

then

$$d(2h)^2=(2df+ag)^2(a^24b)g^2$$

and if we factor $`a^24b=\alpha \beta ^2`$ with $`\alpha `$ squarefree,

$$dH^2=F^2\alpha G^2$$
(16)   
with $`F=2df+ag,G=\beta g,H=2h`$. From a $`(F_0,G_0,H_0)`$ solution, we can recover integer solutions to the original equation as $`f_0=\beta F_0aG_0,g_0=2dG_0,h_0=d\beta H_0`$.

In equation (6), it is clear that $`(\pm u_0,\pm p_0,\pm q_0)`$ satisfy the equation. We do not, however, need to consider all 8 possible combinations of sign. From (11) to (15), the sign of $`u_0`$ is irrelevant if we allow negative values of r or s. Similarly, $`p_0`$ and $`q_0`$ lead to the same quartic as $`p_0`$ and $`q_0`$, and the other two possible combinations give the same quartic. Thus there are only two essentially different quartics, and it is easy to show the relationship between them implies that they are both soluble or both insoluble. It is worthwhile to search both (if soluble), as the coefficients are different so the fixed search range might give a solution for one but not the other.

At several points in our code, we need to factor numbers to find divisors. This is done by an extremely simple-minded search procedure, without recourse to any modern factorisation techniques. So far, this has not had a severe effect on the performance of the code, but one could easily devise an elliptic curve where the factorisation time was dominant. The current code has the advantage that is is short.

Finally, it should be noted that the method could easily find a torsion point of the curve, and not a point of infinite order. Since the latter is usually wanted, the code checks that the point found is not a torsion point from a list of x-values provided by the user.

## 4 Further Descent

As stated, the above method begins to become time-consuming at certain heights. In such cases, several workers have resorted to impressive further descents to determine rational points. A classic example is the work of Bremner and Cassels on the curve $`y^2=x^3+px`$, see . These methods seem to be very problem-dependent and to involve manipulations in algebraic number fields.

The author was interested in a general method of higher descent which does not involve anything more than rational arithmetic - especially for use by the many amateurs interested in Diophantine equations. The following method is based on a remarkably simple idea. The author cannot believe this has not been thought of before, but can find no direct reference to the idea.

The problem in the 4-descent for large heights is the determination of $`(r,s)`$ values giving a square quartic. Suppose

$$z_1r^4+z_2r^3s+z_3r^2s^2+z^4rs^3+z_5s^4=(u_1r^2+u_2rs+u_3s^2)(v_1r^2+v_2rs+v_3s^2)$$
(17)   
with $`u_1,u_2,u_3,v_1,v_2,v_3`$ integers, then we can consider the following two quadratics

$$u_1r^2+u_2rs+u_3s^2=k_1m^2$$
(18)   
$$v_1r^2+v_2rs+v_3s^2=k_1t^2$$
(19)   
with $`k_1`$ squarefree. As before $`k_1`$ divides the resultant, which is

$$u_1^2v_3^2u_1u_2v_2v_32u_1u_3v_1v_3+u_1u_3v_2^2+u_2^2v_1v_3u_2u_3v_1v_2+u_3^2v_1^2$$
(20)   
Suppose we find a solution $`(k_1,t_1,r_1,s_1)`$ to the second quadratic, then we can parameterise as

$$r=i^2k_1r_12ijk_1t_1+j^2(r_1v_1+s_1v_2)$$
(21)   
$$s=s_1(i^2k_1j^2v_1)$$
(22)   
which, when substituted into $`k_1(18)`$, requires the following quartic to be square

$$c_1i^4+c_2i^3j+c_3i^2j^2+c_4ij^3+c_5j^4$$
(23)   
with

$$c_1=k_1^3(r_1^2u_1+r_1s_1u_2+s_1^2u_3)$$
(24)   
$$c_2=2k_1^3t_1(2r_1u_1+s_1u_2)$$
(25)   
$$c_3=k_1^2(4k_1t_1^2u_1+2r_1^2u_1v_1+2r_1s_1u_1v_2+s_1^2(u_2v_22u_3v_1))$$
(26)   
$$c_4=2k_1^2t_1(2r_1u_1v_1+s_1(2u_1v_2u_2v_1))$$
(27)   
$$c_5=k_1(r_1^2u_1v_1^2+r_1s_1v_1(2u_1v_2u_2v_1)+s_1^2(u_1v_2^2v_1(u_2v_2u_3v_1)))$$
(28)   
This quartic can be tested for solubility and then searched.

## 5 Computing the 8-descent

The basic structure of the algorithm is obviously very similar to the 4-descent structure.

find divisors d of b

for s1 = s1a to s1b

test if $`h^2=df^2+afg+eg^2`$ soluble with $`|f|+|g|=s1`$

if $`(d,h_0,f_0,g_0)`$ a solution then

find divisors k of $`g_0(a^24b)`$

for s2 = 2 to s2b

test if $`ku^2=g_0p^2g_0dq^2`$ with $`|p|+|q|=s2`$

if $`(k_0,u_0,p_0,q_0)`$ a solution, then

form quartic equation from equations (10) to (15)

test if quartic soluble, and if so

test if quartic can be factored into 2 integer quadratics

if so, find possible values of $`k_1`$

for s3=2 to s3b

test if $`k_1t^2=v_1r^2+v_2rs+v_3s^2`$ with $`|r|+|s|s3`$

if $`(k_1,t_1,r_1,s_1)`$ a solution, form quartic (20)

test if quartic soluble, and if it is

for s4=2 to s4b

test if $`c_1i^4+c_2i^3j+c_3i^2j^2+c_4ij^3+c_5j^4`$ square

if it is, use various transformations to find point and stop

next s4

next s3

next s2

next s1

The factorisation of the quartic is accomplished by considering the equations:

$`\begin{array}{ccc}z_1& =& u_1v_1\hfill \\ z_5& =& u_3v_3\hfill \\ z_2& =& u_1v_2+v_1u_2\hfill \\ z_4& =& u_3v_2+v_3u_2\hfill \\ z_3& =& u_1v_3+u_2v_2+u_3v_1\hfill \end{array}`$

We thus have to factorise $`z_1`$ and $`z_5`$. For each possible splitting, we solve the third and fourth equations for $`u_2`$ and $`v_2`$. If the solutions are integers we test whether the 6 values satisfy the last equation. We found that quadratics which themselves split into 2 linear factors lead to torsion points, so we test whether the quadratics have rational roots, and reject those which do.

## 6 Numerical Examples

In this section we give some examples of the use of the 8-descent method, with some specimen timings on either a 200MHz or 300MHz PC. It is clear that timings are dependant on the search parameters, so we specify the values of (s2b,s3b,s4b). s1a is set to 2 and we search until a solution is found.

(a) Congruent numbers N are integers which can be the area of a rational right-angled triangle. Finding the sides of such a triangle is equivalent to finding a point of infinite order on the elliptic curve $`y^2=x^3N^2x`$.

One of the most famous of these numbers is $`N=157`$, since it forms the basis of an impressive diagram in Chapter 1 of Koblitz’s book , where the sides involve numbers with 20-30 digits. An L-series calculation gives the height of a point as $`27.3`$. Running the program with s2b=s3b=99 and s4b=199 finds the point with x-coord

$$\frac{\mathrm{1661\hspace{0.17em}3623\hspace{0.17em}1668\hspace{0.17em}1852\hspace{0.17em}6754\hspace{0.17em}0804}}{\mathrm{28\hspace{0.17em}2563\hspace{0.17em}0694\hspace{0.17em}2511\hspace{0.17em}4585\hspace{0.17em}8025}}$$

in 18.8 secs (200MHz). With s4b=99 it takes only 7.0 secs, while for s4b=499 it takes 31.5 secs. But, with s4b=599 the time goes down to 28.3 secs, and if s4b=699 the time is only 9.0 secs. The variation is due to the number of quartics which need to be searched. Up to 499 it takes 22 quartics, but 599 needs only 4, while 699 finds a point on the first. The important point is that it takes less than 1 minute to find such a large point. Even an ancient 80387 machine finds this point in less than 5 minutes.

The author has used this technique in a search for actual solutions to the congruent number problem for $`1N1999`$. The current method has led to the completion of a table of solutions for $`[1,499]`$. The largest height encountered was $`51.15`$ for $`N=367`$. Searching with s2b=s3b=99 and s4b=9999, the following solution was found on a 300MHz machine in 17595 secs.

$$x=\frac{367(\mathrm{4\hspace{0.17em}9695\hspace{0.17em}3629\hspace{0.17em}6085\hspace{0.17em}1360\hspace{0.17em}8777})^2}{(\mathrm{163\hspace{0.17em}8216\hspace{0.17em}8821\hspace{0.17em}6485\hspace{0.17em}0643\hspace{0.17em}1464})^2}$$

It is perfectly possible that the modular form Heegner-point method of Elkies  could find this point much faster, but this method is much more difficult for the non-expert to understand. Elkies method also does not generalise to other families of curves.

Since $`x^3N^2x=x(xN)(x+N)`$, we can change the origin to produce the two equivalent elliptic curves $`y^2=x^3\pm 3Nx^2+2N^2x`$. They may be equivalent mathematically, but their performance computationally is not the same. The author has found several solutions to the congruent number problem from these curves having been unsuccessful with the original curve. This also happens in other families of elliptic curves with 3 rational points of order 2.

(b) The paper of Bremner et al mentioned in the introduction has a representation of $`N=564`$ in its abstract. The L-series computation predicts a point with height $`38.01`$. A 300MHz PC found a solution in 4497 secs. with s2b=s3b=99 and s4b=9999. This solution leads to a representation with

x = 32736 87951 95203 44322 22320 98479 60433 77911 47254 01060

y = 53 58267 18225 66098 96868 10234 90522 46809 90105 26717

z = - 1158 25525 22781 02629 66659 36639 59067 36616 11576 01937

(c) The paper of Bremner and Cassels describes the finding of a point on $`y^2=x^3+877x`$. The L-series predicts a height of $`48.0`$. A 300MHz PC finds the following x-coordinate in 51874 seconds with s2b=s3b=99 and s4b=12999.

$$x=\frac{877(\mathrm{7884\hspace{0.17em}1535\hspace{0.17em}8606\hspace{0.17em}8390\hspace{0.17em}0210})^2}{(\mathrm{6\hspace{0.17em}1277\hspace{0.17em}6083\hspace{0.17em}1879\hspace{0.17em}4736\hspace{0.17em}8101})^2}$$

(4) The final example is included for historical reasons, since it was the first time that the author tried the idea of factorising the quartic. Since this was the start of the current research, clearly the computer programs used in the previous examples were not available. The computations were done by simple searches and algebraic manipulation with Derive.

The problem comes from the diophantine problem of finding an integer triangle with base/altitude = n. For $`n=79`$, we consider the equation $`y^2=x^3+6243x^2+x`$. The L-series computations suggested rank 1, but with a height of over 40 for a rational point. The 2-isogenous curve is $`y^2=x^312486x^2+38975045x`$, which was indicated to have a point with height about 20.

The author selected to try $`d=5`$, which meant looking first for solutions of $`h^2=5f^212486fg+7795009g^2`$. A very simple search program quickly finds $`f=93,g=1,h=2584`$, which means (6) and (7), are

$$ku^2=p^25q^2$$

$$kv^2=93p^25168pq12021q^2$$

where $`k=\pm 1`$. We selected $`k=1`$.

It is possible to parameterise the first as $`p=r^2+5s^2`$,$`q=2rs`$, which gives

$$v^2=93r^410336r^3s47154r^2s^251680rs^3+2325s^4$$

which Derive fairly easily factors as

$$v^2=(3r^2340rs775s^2)(31r^2+68rs3s^2)$$

The two quadratic factors form the basis of (18) and (19), and we find that $`k_1|158`$. Picking $`k_1=1`$, we found several $`(r,s)`$ solutions to $`3r^2340rs775s^2=t^2`$, which lead to parameterisations for r and s, but which lead to insoluble quartics. We then tried $`k_1=158`$, and found the solution $`r=9,s=1,t=4`$, which gives the parameterisation

$$\frac{r}{s}=\frac{(1422i^2+1264ij+367j^2)}{158i^23j^2}$$

and hence to the quartic

$$316^2(74892i^4+154840i^3j+123789i^2j^2+45916ij^3+6725j^4)$$

which has to be square.

Thus quartic was everwhere soluble, so a search was started which quickly found the solution $`i=151,j=158`$, which lead back to a point on the 2-isogenous curve with

$$x=\frac{283684993467631951390020}{46898490944992340041}$$

and thus to a point on the original curve with

$$x=\frac{265479261289194419968505186711433025}{170541875947725676769862564358062336}$$

For interested readers, this point leads to the triangle with sides

$`\begin{array}{ccc}& & \\ A=& \hfill 146586997184778231835321& \hfill 9719440069878865747485658\\ & & \hfill 6410826213286741631164960\\ & & \\ B=& \hfill 89276765348874858876033& \hfill 6294270957750737827730811\\ & & \hfill 8665999941086255389471249\\ & & \\ C=& \hfill 57359536918230561955378& \hfill 6626779319292615973876797\\ & & \hfill 1279754707312477117108209\end{array}`$

## 7 Further Work

The reasonable level of success of this method for several families of elliptic curves provided the impetus to write this report, but there is still much work to be done.

1. Translate the UBASIC code into a compiled high-level language so that the method can be run on non PC’s, especially UNIX workstations.
2. Try further descents on the last quartic produced. The author has experimented with this idea, but initial results are disappointing in that the method seems to be finding multiples of a generator rather than the generator itself. Since the multiples have much larger height it is currently no benefit to try these extra descents.
3. Try to underpin the method with some theory. The method was developed by trying an idea, seeing it work, and improving it. The method does not always work, but does provide another tool in the investigator’s toolbox.