python で有限体Fpでの楕円曲線上の有理点の群構造を調べる - Pebble Coding
こちらの記事で、
を調べたとき、cardinalityが9でした。
SageMathで同種写像を調べる方法があったので試してみます。
Isogenies — Sage Reference Manual v8.9: Plane curves
なお、cyclic, separable な isogeny にしか対応していないと書いてあります。
P1は位数9の点でP3が位数3の点であることはpythonで調査済みです。
sage: k = GF(5) sage: E = EllipticCurve(k, [1,1]) sage: P1 = E(0, 1) sage: P3 = E(2, 1) sage: phi1 = E.isogeny(P1) sage: phi3 = E.isogeny(P3) sage: phi1.rational_maps() ((x^9 + 2*x^8 - 2*x^6 - 2*x^5 - x^4 + 2*x^3 + 2*x^2 - 1)/(x^8 + 2*x^7 - 2*x^6 - x^5 - 2*x^4 + 2*x^3 + x^2), (x^12*y - 2*x^11*y - x^10*y - x^9*y - 2*x^8*y + 2*x^7*y + 2*x^6*y + x^5*y - 2*x^4*y + x^3*y + x^2*y - x*y + 2*y)/(x^12 - 2*x^11 + x^10 + 2*x^8 + 2*x^7 + x^5 - 2*x^4 + x^3)) sage: phi3.rational_maps() ((x^3 + x^2 + 2)/(x^2 + x - 1), (x^3*y - x^2*y + x*y + y)/(x^3 - x^2 + 2*x + 2)) sage: E.points() [(0 : 1 : 0), (0 : 1 : 1), (0 : 4 : 1), (2 : 1 : 1), (2 : 4 : 1), (3 : 1 : 1), (3 : 4 : 1), (4 : 2 : 1), (4 : 3 : 1)]