Magma

MAGMA Computational Algebra System

Magma
 •  How to get it
 •  Download
 •  Online Demo
 
Resources
 •  Online Help
 •  Discovering Mathematics with Magma
 •  Citations
 •  How to cite Magma
 •  Links
 •  Contact us
 
[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={p1, ..., ps - 1, ∞} 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 ]
    FBasis: SeqEnum[PtEll]              Default: 
Given an elliptic curve E over the Q, this returns a sequence containing all the integral points on E, modulo negation. Secondly, a sequence is returned containing representations of the same points in terms of a fixed basis of the Mordell-Weil group (each such representation is a sequence of tuples of the form [< (Pi, ni) >]).

The algorithm involves first computing generators of the Mordell-Weil group, by calling MordellWeilShaInformation which accesses the appropriate tools available in Magma (various descents, and also analytic tools). Alternatively, the user may precompute generators and pass them to IntegralPoints as the optional parameter FBasis. This should be a sequence of points on E that are independent modulo torsion (for instance, as returned by ReducedBasis). IntegralPoints will then find all integral points on E that are in the group generated by FBasis and torsion.


Example CrvEll_IntegralPoints (H112E45)

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 ( - 2 : - 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 y2=ax4 + bx3 + cx2 + 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 y2=ax4 + bx3 + cx2 + dx + e and P is a sequence representing a rational point [x, y], this function returns all integral points on Q.

Example CrvEll_IntegralPointsSequence (H112E46)

We find all integral points (modulo negation) on the curve y2 = x4 - 8x2 + 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 ]
    FBasis: SeqEnum[PtEll]              Default: 
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, and the optional parameter FBasis, are the same as in IntegralPoints.

Example CrvEll_SIntegralPoints (H112E47)

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 y2 = ax4 + bx3 + cx2 + dx + e for the set S of finite primes.
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: ay2 = bx4 + cx2 + d for the set S of finite primes, 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: ay3 + bx3 + cxy + d=0 for the set S of finite primes, provided that C is nonsingular.

Example CrvEll_Desboves (H112E48)

We find the points supported by [2, 3, 5, 7] on the curve 9y3 + 2x3 + 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]
                       

Version: V2.16 of Mon Nov 16 15:04:45 EST 2009

Valid HTML 4.01! Valid CSS!