## [2003.11.24]y^2=x^3+7823の有理点

### y^2=x^3+7823の有理点を計算するプログラム(pari/GP) y^2=x^3+7823の4-coveringの有理点を探すプログラム(C)

■楕円曲線
E: y2=x3+7823
の有理点を求める。
ここで、7823は素数である。

■楕円曲線Eの判別式 Δ,j-不変量 j,導手 Nは、それぞれ、
Δ = -26438110128
j = 0
N = 26438110128
である。
gp>  e=ellinit([0,0,0,0,7823])
time = 38 ms.
%28 = [0, 0, 0, 0, 7823, 0, 0, 31292, 0, 0, -6759072, -26438110128, 0, [-19.85139861599267338366739366, 9.925699307996336691833696830 - 17.19181550210090147883446796*I, 9.925699307996336691833696830 + 17.19181550210090147883446796*I]~, 0.9441263528588053501078812122, -0.4720631764294026750539406061 + 0.2725458019860254346787548633*I, -5.763421470257824514359264813 + 0.E-28*I, 2.881710735128912257179632406 - 4.991269405959935527809297249*I, 0.2573176740160443415175089611]
gp>  e.j
time = 0 ms.
%29 = 0
gp>  e.disc
time = 0 ms.
%30 = -26438110128
gp>  ellglobalred(e)
time = 3 ms.
%31 = [26438110128, [1, 0, 0, 0], 1]


■楕円曲線Eは、自明なねじれ点Oを持つ。
つまり、Eのねじれ点群E(Q)torsは、{ O }に同型である。
gp>  elltors(e,1)
time = 68 ms.
%33 = [1, [], []]


■楕円曲線Eの有理点群E(Q)のrankは、Cremonaのmwrank3によって、0または1であることが分かる。
bash-2.05a$mwrank3 Program mwrank: uses 2-descent (via 2-isogeny if possible) to determine the rank of an elliptic curve E over Q, and list a set of points which generate E(Q) modulo 2E(Q). and finally search for further points on the curve. For more details see the file mwrank.doc. For details of algorithms see the author's book. Please acknowledge use of this program in published work, and send problems to John.Cremona@nottingham.ac.uk. Version compiled on Feb 11 2003 at 17:40:15 by GCC 3.2.1 using base arithmetic option LiDIA_ALL (LiDIA bigints and multiprecision floating point) Using LiDIA multiprecision floating point with 15 decimal places. Enter curve: [0,0,0,0,7823] Curve [0,0,0,0,7823] : No points of order 2 Basic pair: I=0, J=-211221 disc=-44614310841 2-adic index bound = 2 2-adic index = 2 Two (I,J) pairs Looking for quartics with I = 0, J = -211221 Looking for Type 3 quartics: Trying positive a from 1 up to 17 (square a first...) Trying positive a from 1 up to 17 (...then non-square a) Trying negative a from -1 down to -11 Finished looking for Type 3 quartics. Looking for quartics with I = 0, J = -13518144 Looking for Type 3 quartics: Trying positive a from 1 up to 68 (square a first...) Trying positive a from 1 up to 68 (...then non-square a) (30,-12,48,116,-18) --nontrivial...locally soluble...no rational point found (limit 10) --new (B) #1 (41,-16,-6,112,-11) --nontrivial...--equivalent to (B) #1 Trying negative a from -1 down to -45 (-11,-20,408,1784,2072) --nontrivial...--equivalent to (B) #1 (-18,-28,312,996,838) --nontrivial...--equivalent to (B) #1 Finished looking for Type 3 quartics. Mordell rank contribution from B=im(eps) = 0 Selmer rank contribution from B=im(eps) = 1 Sha rank contribution from B=im(eps) = 1 Mordell rank contribution from A=ker(eps) = 0 Selmer rank contribution from A=ker(eps) = 0 Sha rank contribution from A=ker(eps) = 0 Warning: Selmer rank = 1 and program finds lower bound for rank = 0 which differs by an odd integer from the Selmer rank. Hence the rank must be 1 more than reported here. Try rerunning with a higher bound for quartic point search. Summary of results (all should be powers of 2): n0 = #E(Q)[2] = 1 n1 = #E(Q)/2E(Q) >= 1 n2 = #S^(2)(E/Q) = 2 #III(E/Q)[2] <= 2 0 <= rank <= selmer-rank = 1 0 <= rank <= selmer-rank = 1 After descent, rank of points found is 0 The rank has not been completely determined, only a lower bound of 0 and an upper bound of 1. Standard parity conjectures would increase the lower bound by 1 to 1, implying that the rank was exactly 1. (13.2 seconds) Enter curve: [0,0,0,0,0] bash-2.05a$


E(Q)の生成元は、
P(2263582143321421502100209233517777/119816734100955612,
-186398152584623305624837551485596770028144776655756/119816734100955613)
であることが示されている。

■ここでは、[4],[5]の方法(4-descent)で、E(Q)の有理点を計算する。
mwrank3(2-descent)の結果より、楕円曲線Eの2-covering
D: y2 = -18x4+116x3+48x2-12x+30
を得る。楕円曲線Dは、locally solutableである。
syzygyより、楕円曲線Dから、楕円曲線Eへの有理変換ξ:D→Eを求める。
ξ(x,y) = ({3g4(x,1)}/{12y2},{27g6(x,1)/{12y3})
ただし、
g4(X,Y) = 47280X4 + 17088X3Y + 43488X2Y2 - 85824XY3 - 11088Y4
g6(X,Y) = 1930688X6 + 2034816X5Y - 3520320X4Y2 + 8125440X3Y3 + 2998080X2Y4 + 1224576XY5 - 902592Y6
である。よって、ξ(x,y)=(X,Y)とすると、
X = {985x4 + 356x3 + 906x2 - 1788x - 231}/{y2},
Y = {30167x6 + 31794x5 - 55005x4 + 126960x3 + 46845x2 + 19134x - 14103}/{y3}
である。
gp>  read("stoll.gp")
time = 57 ms.
gp>  gsi(x,y)
time = 39 ms.
%1 = [985/y^2*x^4 + 356/y^2*x^3 + 906/y^2*x^2 - 1788/y^2*x - 231/y^2, 30167/y^3*x^6 + 31794/y^3*x^5 - 55005/y^3*x^4 + 126960/y^3*x^3 + 46845/y^3*x^2 + 19134/y^3*x - 14103/y^3]
gp>  %1[1]*y^2
time = 13 ms.
%2 = 985*x^4 + 356*x^3 + 906*x^2 - 1788*x - 231
gp>  %1[2]*y^3
time = 15 ms.
%3 = 30167*x^6 + 31794*x^5 - 55005*x^4 + 126960*x^3 + 46845*x^2 + 19134*x - 14103


(x,y)を楕円曲線D上の有理点とすると、
X3+7823-Y2
= 7823(324x8-4176x7+11728x6+11568x5+(-18y2-1560)x4+(116y2+5808)x3+(48y2+3024)x2+(-12y2-720)x+y4+30y2+900)(18x4-116x3-48x2+12x+y2-30)/{y6}
= 0
なので、(X,Y)は楕円曲線E上の有理点であることが分かる。

[asirによる計算]
[0] X=(985*x^4 + 356*x^3 + 906*x^2 - 1788*x - 231)/y^2;
(985*x^4+356*x^3+906*x^2-1788*x-231)/(y^2)
[1] Y=(30167*x^6 + 31794*x^5 - 55005*x^4 + 126960*x^3 + 46845*x^2 + 19134*x - 14103)/y^3;
(30167*x^6+31794*x^5-55005*x^4+126960*x^3+46845*x^2+19134*x-14103)/(y^3)
[2] F=red((X^3+7823-Y^2)*y^6);
45623736*x^12-882058896*x^11+5319389664*x^10-7415327824*x^9-15589236312*x^8-29289312*x^7-5925453120*x^6-7887837024*x^5+555933672*x^4-1625556816*x^3-1115246880*x^2+253465200*x+7823*y^6-211221000
[3] fctr(F);
[[7823,1],[324*x^8-4176*x^7+11728*x^6+11568*x^5+(-18*y^2-1560)*x^4+(116*y^2+5808)*x^3+(48*y^2+3024)*x^2+(-12*y^2-720)*x+y^4+30*y^2+900,1],[18*x^4-116*x^3-48*x^2+12*x+y^2-30,1]]


■多項式g(x)=-18x4+116x3+48x2-12x+30は、その判別式は負であり、２個の実根と２個の虚根を持つ。つまり、曲線DはType 3である。
gp>  f(x,0)
time = 1 ms.
%5 = -18*x^4 + 116*x^3 + 48*x^2 - 12*x + 30
gp>  poldisc(-18*x^4+116*x^3+48*x^2-12*x+30)
time = 8 ms.
%6 = -6768156192768
gp>  polroots(-18*x^4 + 116*x^3 + 48*x^2 - 12*x + 30)
time = 286 ms.
%7 = [-0.8201001084511361836541385020 + 0.E-28*I, 6.826037817661110050780091244 + 0.E-28*I, 0.2192533676172352886592458509 - 0.4996513902612574259040823588*I, 0.2192533676172352886592458509 + 0.4996513902612574259040823587*I]~


■楕円曲線Eの4-covering Cが以下のように計算できる。

x12+4x1x2-2x1x3-2x1x4-2x22-3x32+4x3x4+x42 = 0,
x12-6x1x4+2x22+4x2x3+3x32+2x3x4+x42 = 0

[Cプログラムによる計算]
bash-2.05a$gcc -m486 -O2 -lm x7823.c -o x7823 bash-2.05a$ ./x7823 1000 1000 1000
find4 -- a1=1000, a2=1000, a3=1000
[681,-116,-125,142]

real    23m25.373s
user    22m50.790s
sys     0m0.270s
bash-2.05a\$


■曲線Cから曲線Dへの有理変換ψを求める。
x=[x1;
x2;
x3;
x4],
xt=[x1,x2,x3,x4],
M1=[1,0,0,-3;
0,2,2,0;
0,2,3,1;
-3,0,1,1],
M2=[1,2,-1,-1;
2,-2,0,0;
-1,0,-3,2;
-1,0,2,1],
とすると、曲線Cは、以下のように表現できる。
xtM1x=0,
xtM2x=0

det(x*M1+M2)=g(x),
である。ただし、
D1=[-146,88,166,66;
88,-20,-56,60;
166,-56,-140,48;
66,60,48,-102]
D2=[282,84,8,-202;
84,-84,-160,68;
8,-160,-176,158;
-202,68,158,174]
である。
F1=xtD1x,
F2=xtD2x
とすると、syzygy
G2=-18F14-116F13F2+48F12F22+12F1F23+30F24
を得る。よって、ψ:C→D
ψ(x)=({-F1(x)}/{F2(x)},{G(x)}/{F2(x)2})
つまり、
ψ(x1:x2:x3:x4)=({146x12-176x1x2 -332x1x3 - 132x1x4 + 20x22 + 112x2x3 - 120x2x4+ 140x32 - 96x3x4+102x42}/{282x12 + 168x1x2 + 16x1x3 - 404x1x4 -84x22 -320x2x3 + 136x2x4-176x32 + 316x3x4 + 174x42},
{G(x)}/{(282x12 + 168x1x2 + 16x1x3 - 404x1x4 -84x22 -320x2x3 + 136x2x4-176x32 + 316x3x4 + 174x42)2})
とする。

■曲線Cの有理点P(681:-116:-125:142)をψで写すと、曲線Dの有理点Q(53463613/32109353, 23963346820191122/1031010550078609)を得る。有理点Qを有理変換ξで写すと、楕円曲線Eの有理点Rを得る。
gp>  read("stoll.gp")
time = 200 ms.
%1 = 0
gp>  P
time = 0 ms.
%2 = [53463613/32109353, 23963346820191122/1031010550078609]
gp>  gsi(53463613/32109353, 23963346820191122/1031010550078609)
time = 18 ms.
%3 = [2263582143321421502100209233517777/143560497706190989485475151904721, 186398152584623305624837551485596770028144776655756/1720094998106353355821008525938727950159777043481]
gp>  ec(2263582143321421502100209233517777/14356049770619098948547515194721, 186398152584623305624837551485596770028144776655756/1720094998106353355821008525938727950159777043481)
time = 2 ms.
%4 = 0

よって、楕円曲線Eの有理点
R(2263582143321421502100209233517777/14356049770619098948547515194721,
186398152584623305624837551485596770028144776655756/1720094998106353355821008525938727950159777043481)
が得られた。

[2016.06.19追記]

Windows 10(x64)上のpari/gp-2.7.5(x64)により、楕円曲線EのHeegner点を計算すると、以下のようになる。
Reading GPRC: gprc.txt ...Done.

GP/PARI CALCULATOR Version 2.7.5 (released)
amd64 running mingw (x86-64/GMP-6.0.0 kernel) 64-bit version
compiled: Oct 26 2015, gcc version 4.9.3 (GCC)
(readline v6.2 enabled, extended help enabled)

Copyright (C) 2000-2015 The PARI Group

PARI/GP is free software, covered by the GNU General Public License, and comes
WITHOUT ANY WARRANTY WHATSOEVER.

Type ? for help, \q to quit.
Type ?12 for how to get moral (and possibly technical) support.

parisize = 512000000, primelimit = 500000
(10:25) gp > e=ellinit([0,0,0,0,7823])
time = 1 ms.
%1 = [0, 0, 0, 0, 7823, 0, 0, 31292, 0, 0, -6759072, -26438110128, 0, Vecsmall([1]), [Vecsmall([128, -1])], [0, 0, 0, 0, 0, 0, 0, 0]]
(10:26) gp > elltors(e,1)
time = 2 ms.
%2 = [1, [], []]
(10:26) gp > ellanalyticrank(e)
time = 3min, 9,311 ms.
%3 = [1, 73.280985665204125605489526771501344538]
(10:29) gp > P=ellheegner(e)
(10:29) gp > P=ellheegner(e)
time = 11h, 46min, 44,151 ms.
%4 = [2263582143321421502100209233517777/143560497706190989485475151904721, 186398152584623305624837551485596770028144776655756/1720094998106353355821008525938727950159777043481]
(22:17) gp > ellisoncurve(e,P)
%5 = 1
(22:19) gp > ellheight(e,P)
%6 = 77.617773768638083972811277401165589664


このように、楕円曲線Eの有理点
(2263582143321421502100209233517777/143560497706190989485475151904721,
186398152584623305624837551485596770028144776655756/1720094998106353355821008525938727950159777043481)
height 77.617773768638083
が計算できた。

### [参考文献]

• [1]Joseph H. Silverman, John Tate(著), 足立 恒雄, 木田 雅成, 小松 啓一, 田谷 久雄(訳), "楕円曲線論入門", シュプリンガー・フェアラーク東京, 1995, p127, ISBN4-431-70683-6, {3900円}.
• [2]Joseph H. Silverman, "The Arithmetic of Elliptic Curves", GTM 106, Springer-Verlag New York Inc., 1986, p235, ISBN0-387-96203-4.
• [3]Nigel P. Smart, "The Algorithmic Resolution of Diophantine Equations", LMSST 41, Cambridge University Press, 1998, ISBN0-521-64633-2.
• [4]Jennifer Balakrishnan, "4-descent on the elliptic curve y^2=x^3+7823", May 17, 2003, p1-8.
• [5]Michael Stoll, "Explicit 4-descent on an elliptic curve", Jan 22, 2002, p1-6.

 Last Update: 2022.10.24 H.Nakao