[Next][Prev] [Right] [Left] [Up] [Index] [Root]

Integral and S-integral Points

Let E be an elliptic curve defined over the rational numbers Q and denote by S={p_1, ..., p_(s - 1), Infinity} a finite set of primes containing the prime at infinity. There are only finitely many S-integral points on E. (That is, points where the denominators of the coordinates are only supported by primes in S.) Note that the point at infinity on E is never returned, since it is supported at every prime.

The following algorithms use the technique of linear forms in complex and p-adic elliptic logarithms.

Subsections

Integral Points

IntegralPoints(E) : CrvEll -> [ PtEll ], [ Tup ]
Given an elliptic curve E over the Q, returns the sequence of all integral points, modulo negation, and followed by a sequence of tuple sequences [< (P_(i, j), n_(i, j)) >] such that the j-th integral point P_j is of the form P_j = sum_(i=1)^(r) (n_(i, j)P_(i, j)). i.e., the second return value contains representations of the points in terms of some basis. The format of this second return value may be changed in the next release.

Example CrvEll_IntegralPoints (H85E20)

We find all integral points on a certain elliptic curve:

> E := EllipticCurve([0,17]);
> Q, reps := IntegralPoints(E);
> Q;
[ (-2 : -3 : 1), (8 : 23 : 1), (43 : -282 : 1), (4 : 9 : 1),
(2 : -5 : 1), (-1 : 4 : 1), (52 : -375 : 1), (5234 : 378661 : 1) ]
> reps;
[
    [ <(-2 : -3 : 1), 1> ],
    [ <(-2 : -3 : 1), 2> ],
    [ <(-2 : -3 : 1), 1>, <(4 : -9 : 1), -2> ],
    [ <(4 : -9 : 1), -1> ],
    [ <(-2 : -3 : 1), 1>, <(4 : -9 : 1), -1> ],
    [ <(-2 : -3 : 1), 1>, <(4 : -9 : 1), 1> ],
    [ <(-2 : -3 : 1), 2>, <(4 : -9 : 1), 1> ],
    [ <(-2 : -3 : 1), 1>, <(4 : -9 : 1), 3> ]
]
We see here that the chosen basis consists of the points ( - 1 : - 3 : 1) and (4 : - 9 : 1), and that coefficients which are zero are omitted.
IntegralQuarticPoints(Q) : [ RngIntElt ] -> [ SeqEnum ]
If Q is a sequence of five integers [a, b, c, d, e] where e is a square, this function returns all integral points (modulo negation) on the curve y^2=ax^4 + bx^3 + cx^2 + dx + e.
IntegralQuarticPoints(Q, P) : [ RngIntElt ], [ RngIntElt ] -> [ SeqEnum ]
If Q is a list of five integers [a, b, c, d, e] defining the hyperelliptic quartic y^2=ax^4 + bx^3 + cx^2 + dx + e and P is a sequence representing a rational point [x, y], this function returns all integral points on Q.

Example CrvEll_IntegralPointsSequence (H85E21)

We find all integral points (modulo negation) on the curve y^2 = x^4 - 8x^2 + 8x + 1. Since the constant term is a square we can use the first form and do not have to provide a point as well.

> IntegralQuarticPoints([1,0,-8,8,1]);
[
    [ 2, -1 ],
    [ -6, 31 ],
    [ 0, 1 ]
]

S-integral Points

SIntegralPoints(E, S) : CrvEll, SeqEnum -> [ PtEll ], [ Tup ]
Given an elliptic curve E over the rationals and a set S of finite primes, returns the sequence of all S-integral points, modulo negation. The second return value is as described in IntegralPoints.

Example CrvEll_SIntegralPoints (H85E22)

We find all S-integral points on an elliptic curve of rank 2, for the set of primes S = {2, 3, 5, 7}.

> E := EllipticCurve([-228, 848]);
> Q := SIntegralPoints(E, [2, 3, 5, 7]);
> for P in Q do P; end for;	// Print one per line
(4 : 0 : 1)
(-11 : 45 : 1)
(16 : 36 : 1)
(97/4 : -783/8 : 1)
(-44/9 : -1160/27 : 1)
(857/4 : -25027/8 : 1)
(6361/400 : -282141/8000 : 1)
(534256 : -390502764 : 1)
(946/49 : -20700/343 : 1)
(-194/25 : -5796/125 : 1)
(34/9 : 172/27 : 1)
(814 : 23220 : 1)
(13 : 9 : 1)
(-16 : 20 : 1)
(1/4 : -225/8 : 1)
(52 : -360 : 1)
(53 : 371 : 1)
(16/49 : 9540/343 : 1)
(-16439/1024 : -631035/32768 : 1)
(34 : 180 : 1)
(-2 : 36 : 1)
(-14 : -36 : 1)
(14 : -20 : 1)
(754 : -20700 : 1)
(94/25 : -828/125 : 1)
(2 : 20 : 1)
(94 : 900 : 1)
(-818/49 : 468/343 : 1)
(49/16 : -855/64 : 1)
(196 : -2736 : 1)
(629/25 : 13133/125 : 1)
(1534/81 : -42020/729 : 1)
(8516/117649 : -1163623840/40353607 : 1)

SIntegralQuarticPoints(Q, S) : [ RngIntElt ], [ RngIntElt ] -> [ SeqEnum ]
Given a sequence of integers Q = [a, b, c, d, e] where a is a square, this function returns all S-integral points on the quartic curve y^2 = ax^4 + bx^3 + cx^2 + dx + e.
SIntegralLjunggrenPoints(Q, S) : [ RngIntElt ], [ RngIntElt ] -> [ SeqEnum ]
Given a sequence of integers Q = [a, b, c, d], this function returns all S-integral points on the curve C: ay^2 = bx^4 + cx^2 + d, provided that C is nonsingular.
SIntegralDesbovesPoints(Q, S) : [ RngIntElt ], [ RngIntElt ] -> [ SeqEnum ]
Given a sequence of integers Q = [a, b, c, d], this function returns all S-integral points on C: ay^3 + bx^3 + cxy + d=0, provided that C is nonsingular.

Example CrvEll_Desboves (H85E23)

We find the points supported by [2, 3, 5, 7] on the curve 9y^3 + 2x^3 + xy + 8 = 0.

> S := [2, 3, 5, 7];
> SIntegralDesbovesPoints([9, 2, 1, 8], S);
[
    [ 1, -1 ],
    [ -94/7, 172/21 ],
    [ -11/7, 2/7 ],
    [ 5, -3 ],
    [ 2, -4/3 ],
    [ 2/7, -20/21 ],
    [ -8/5, -2/15 ]
]

 [Next][Prev] [Right] [Left] [Up] [Index] [Root]