# How to find all integer points on an elliptic curve?

How can I determine the integer points of a given elliptic curve if I know its rank and its torsion group?

I read same basic books on elliptic curves but as a non-professional I didn't understand everything. Is it true that if rank is 0 and torsion group is isomorphic to a group of order $n$ then the number of integer points is $n-1$? And what is a good reference to learn to determine the integer points if the rank is positive?

I tried to read the book Rational Points on Elliptic Curves but I didn't found an explicit algorithm. I just heard something like take some point and use group law to find the rest. But how can I be sure that I have found every point?

The curve I had on my mind is $2x^3 + 385x^2 + 256x - 58195 = 3y^2$. I'm not even sure if this is an elliptic curve. I mean why it is projective and why it is isomorphic to a closed subvariety of $\mathbb{P}_{\mathbb{Q}}^2$? And why it contain the priviledged rational point $(0,1,0)$?

• Your question about curves of rank 0 has positive answer, more or less by definition. – Mariano Suárez-Álvarez Dec 5 '09 at 22:12
• Thanks! I have one curve which is of rank 4 and torsion subgroup isomorphic to trivial abelian group so I would like to know some method to prove the solutions I found are the only one. – amateur algebraist Dec 5 '09 at 22:26
• In general, you should indicate clearly what is the "main" part of your question. – Andrew Critch Dec 6 '09 at 0:32
• It is a non a trivial fact that the torsion points on an elliptic curve in Weierstrass form have integer coordinates. If the curve is not in the Weierstrass form, it can have rational torsion points that are not integral. I suggest reading Washington's "Elliptic Curves: Number Theory and Cryptography". It is very detailed and well written. – Dror Speiser Dec 7 '09 at 17:43
• Essentially the same question was asked earlier on this site: mathoverflow.net/questions/6676/… – Bjorn Poonen Jan 7 '10 at 17:06

Finding all the integral points on an elliptic curve is a non-trivial computational problem. You say you are a "non-professional" so here is a non-professional answer: get hold of some mathematical software that does it for you (e.g. MAGMA), and then let it run until it either finds the answer or runs out of memory. Alternatively, do what perhaps you should have done at the start if you just have one curve and want to know the answer: post the equation of the curve, and hope that someone else does it for you. Here's another example of an algorithm currently used in these sorts of software (a Thue one was mentioned above but here's a different approach): find generators for the group (already computationally a bit expensive at times, depending on your luck and/or the size of sha), invoke Baker-like theorems saying "if the coordinates of the point are integral then it must be of the form sum_i n_i P_i with the n_i at most ten to the billion", and then use clever congruence techniques to massively cut down the search space by giving strong congruences for all the n_i. Then just do a brute force search.

Whether or not this will work for you, I cannot say, because it all depends on how big the coordinates of your curve are. The only clue you give so far is that the conductor is "bigger than 130000" [Edit: that was written before the OP edited the question to tell us which curve he was interested in] which of course does not preclude it being bigger than 10^10^10. Also, you need an expert to decide which of the algorithms is best for you. I'd rather do a massive amount of arithmetic in a field of tiny discriminant than a small amount of arithmetic in a field whose discriminant is so large that I can't even factor it, for example.

So in short the answer is that you're probably not going to be able to do it with pencil and paper, but there are programs around that will do it, if all you want to know is the answer.

EDIT: you posted the equation of the curve. Magma V2.15-10 says the integral points are

[ <-23, -196>, <19, 182>, <61, 784>, <-191, 28>, <103, -1442>, <-19, -144>, <-67, 592>, <23, 242>, <-49, -454>, <-157, -742>, <817, 21196>, <521, 11364>, <3857, 200404>, <10687, -910154>, <276251, -118593646> ]

plus what you get if you change all the y's to -y's.

• Okay. But how can I prove those are the only one? Am I right that the priviledged rational point is not an integer point? – amateur algebraist Dec 6 '09 at 15:32
• My computer says it has proved those are the only ones. Whether or not you want to believe (a) my computer and (b) the program I used is up to you. If you want to try your own computer and another program (e.g. SAGE, which would also do the job) then feel free. If you want to prove it by hand then I would first buy a lot of pieces of paper, because what takes my computer 30 seconds will take a lot longer to do by hand. As for the "priviledged rational point", you can choose whether or not it's an integer point. That's not a maths question, it's a convention question. – Kevin Buzzard Dec 6 '09 at 16:28
• @KevinBuzzard Hi Kevin, Sorry to nit-pick (and on such an old post), but the "priveleged rational point" $O$ is definitely not an integral point. In essence, we are taking a model for $E$ over $\mathbb{Z}$, and when we say a point $Q$ is integral, we mean integral with respect to $O$, which by definition means that for every prime $p$, the points $\tilde Q \bmod p$ and $\tilde O\bmod p$ are distinct. Clearly $O$ itself fails to have that property in quite spectacular fashion! – Joe Silverman Apr 6 '14 at 13:37
• "and then use clever congruence techniques to massively cut down the search space by giving strong congruences for all the n_i. Then just do a brute force search. " Can you elaborate on this, please? – user5262 Aug 23 '14 at 14:25

The following Sage code (which I ran with Sage 4.2.1) produces the solutions (and agrees with Magma!):

E = EllipticCurve([0, 1155,0,4608,-6285060])
E1 = E.minimal_model()
pts1 = E1.S_integral_points([2,3])
iso = E1.isomorphism_to(E)
pts = [iso(P) for P in pts1]
solutions = [(x/6,y/18) for (x,y,z) in pts]
solutions = [(x,y) for (x,y) in solutions if x.is_integral() and y.is_integral()]
solutions


Before the first line I used pencil-and-paper to scale the equation to be in Weierstrass form (monic in both X and Y) which involves new variables 6X and 18Y; the solutions a rescaled at the end. In fact we found all S-integral solutions with S={2,3}, i.e. all solutions which are integral except at 2 and 3. (There are 32 of these, of which only 15 are really integral).

John Cremona

No point reinventing the wheel. Use Cremona's table seven on

http://www.warwick.ac.uk/staff/J.E.Cremona/ftp/data/INDEX.html

• Unfortunately the curve I had on my mind has larger conductor than 130000 – amateur algebraist Dec 5 '09 at 23:57

This is handled (with explicit examples) in Nigel Smart's "The algorithmic resolution of diophantine equations." Chapter VII.4, in particular, gives a method for producing finitely many Thue equations whose integer solutions contain the integer solutions to the given elliptic equation.

Computationally, the bottleneck is finding a system of fundamental units for the splitting field.