MathOverflow is a question and answer site for professional mathematicians. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I'm looking around for scripts to facilitate 12 descent on Mordell curves, preferably in Pari/gp.

I understand that Magma implements this feature, but unfortunately this software isn't available to me.

As background, I'm burning lots of CPU time on investigating rational points on curves of type $y^2=x^3+k^5$, a departure from my, more mainstream, searches of $y^2=x^3+k$.

I should add that my usual collection of tools, mwrank, findinf and ratpoints, aren't quite up to handling these type of curves.

Any pointers to tools or scripts that are better suited to this type of work would be very much appreciated.


share|cite|improve this question
I don't have magma too. There is a web based interface to magma: Calculations are restricted to 120 seconds and certain amount of RAM. – joro Sep 13 '12 at 5:03
@joro - Thanks for the info. Unfortunately I'm expecting to be using weeks of processing power per curve, so 120 seconds is a little short for me. – Kevin Acres Sep 13 '12 at 5:33
To my knowledge Tom Fisher's implementation is Magma is the only implementation of 12-descent available. A key ingredient to 12-descent is having 3-descent and 4-descent implemented. As far as I know, neither of these procedures is completely implemented in any open source environment. It has been declared my purpose in life to correct this by implementing higher descents in Sage. I will post an answer (hopefully later tonight) with a general overview of what I think needs to be done, and would welcome any suggestions or collaboration. – Jamie Weigandt Sep 13 '12 at 16:55
@Jamie - My strengths lay more with coding that the actual maths; but if I can understand the process then I can usually implement it. So I'm willing to give it a go. Meanwhile I'll ask around to see if I can get any pointers. There is someone that I can ask whose interests include sage, descent methods and skateboarding. Meanwhile I've updated my profile to include my email address. Just confirm that you have it and I'll remove it again. – Kevin Acres Sep 13 '12 at 22:08

Before looking under the hood at what needs to be done to get something like 12-descent in GP/PARI or Sage, let me briefly describe 12-descent calculations from the "User's eye".

There are 4 basic steps to 12-descent calculations.

  1. Compute small representatives of the 3-Selmer group as ternary cubic forms.
  2. Compute small representatives of the 4-Selmer group as pairs of quaternary quadratic forms.
  3. Given a 3-Selmer element C3 and a 4-Selmer element C4, find a small way to write the elements C3 + C4 and C3 - C4 in the 12-Selmer group as some kind of quadric intersections together with maps from these quadric intersections back to C4.
  4. Search for points on the quadric intersections obtained in Step #3.

Here small means "minimized" and "reduced" and pertains to extensive work of Cremona, Fisher, and Stoll, among others. (I apologize if I'm leaving you out!)

For Mordell curves, Steps 1 and 2 might not take too long, provided you are willing to assume GRH when computing class groups. This snippet of code:

E := EllipticCurve([0,-86069^5]);
Sel2 := TwoDescent(E);
Sel4 := [FourDescent(C) : C in Sel2];
Sel3 := ThreeDescentByIsogeny(E);

Will finish in a few seconds on the magma calculator.

While not very time intensive, this does involve a fair chunk of mathematics that's in magma and not in Sage. Especially some algebraic geometry.

Step 3 is computationally intensive, taking about an hour for the curve above, and definitely the most technical part of the calculation. Tom Fisher wrote a paper about what goes into it:

and he wrote the code that's in Magma.

I must admit that I've not read this paper aside from the examples. I only have a "user's" understanding of the process, but I get the impression that Step 3 might be hard to implement if you don't have a lot of the experience and tools you would gain from implementing Steps 1 and 2.

Step 4 uses a p-adic version due to Mark Watkins of Noam Elkies' ANTS IV Point Search Algorithm. As Noam has mentioned the ideas aren't that complicated, so an open implementation should be possible and would conceivably be quite useful. This is the most time consuming part of these calculations in practice as it can go on for weeks. I think an open implementation of this would be incredibly useful, especially if parallelized.

I think this is all I'll say for now, other than to point out that the series of papers:

by Cremona, Fisher, O'Neil, Simon, and Stoll describe much of the way higher descents are calculated in Magma. This is what I'll be reading this semester to get a handle on what needs to be done.

share|cite|improve this answer
@Jamie - I found a 3-Selmer Group pari/gp script on the wayback machine:… – Kevin Acres Sep 16 '12 at 9:05
@Kevin: It's now at – Charles Oct 24 '12 at 17:32

For 4-descent, a very good introduction, to both the mathematics and computation, is contained in Tom Womack's Nottingham Ph.D. thesis. A link is provided in John Cremona's (supervisor) website

share|cite|improve this answer
@Allan - Thanks for the link, I'll have a look through shortly. – Kevin Acres Sep 14 '12 at 8:37

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.