Four-descent on elliptic curves over Q

Elliptic curves are in some sense the second-simplest kind of algebraic variety, and the most complicated kind to have a simple arithmetic structure. The arithmetic of the simplest kind – conics – was pretty much known to Euclid; Fermat and Euler considered and solved problems which boil down to arithmetic on an elliptic curve, and Mordell and Weil worked out the essential theorems about their arithmetic structure at the end of the 19th and beginning of the 20th centuries. The structure is basically a vector space over the integers; an interesting problem is to find the dimension of this vector space, known as the rank of the elliptic curve, and to find a set of generators.

Birch and Swinnerton-Dyer proposed a relationship between their arithmetic and analytic structure, which is supported by all available evidence but not yet proven, and effectively lets you find the rank by counting how often a certain cubic polynomial takes on square values modulo a prime, for lots of fairly small primes. But it doesn't give you any idea about the generators of the vector space. Heegner has a theory which, if the vector space has precisely one generator and an invariant (the conductor) of the elliptic curve is fairly small (which it nearly always isn't) lets you calculate the generator by counting points.

Birch and Swinnerton-Dyer also proposed an algorithm, known as 2-descent, for computing the generators explicitly, and it was substantially improved by my supervisor John Cremona. But sometimes it can run for arbitrary lengths of time without finding generators, and sometimes it gets the rank of the elliptic curve wrong by some multiple of two.

My thesis work has mostly been in constructing and implementing the necessary algorithms to perform four-descent on elliptic curves; these algorithms can be called in when the two-descent works poorly, and find large generators as quickly as any other method known. Moreover, they can often correct the errors in the rank made by the two-descent.

When I wrote this page, I had 28,539 words of thesis written, and my implementation often worked reasonably well.