American Citizen on Mon, 27 Nov 2023 02:32:10 +0100


[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]

Re: general educational question on elliptic curve isogenies and moving points around


Using

K = [[1, 0, 0, -1473670506991667240419073314040, 487857899055649012085793427889299493072289600], [1, 0, 0, -1350882210032036138970816514040, 604255810745174408864225385407951158557249600], [1, 0, 0, -21613375759952551922130559714040, 38675151136497269167819387070355078625642209600], [1, 0, 0, -76802094602026958682816514040, 11216788650446842210221197792454992157249600], [1, 0, 0, 3910584245041201096206610543960, 3229366054013312573785301403224849373420037200], [1, 0, 0, -8822538010378633200216865972040, -9703116604031639452280171990115551185285698000], [1, 0, 0, 4438136821871996939736684043660, -36328127880290265739543247394077097481682050860], [1, 0, 0, -139665092896820718696935098515740, -635300473525359445488968869790600609112629919540]] which is an isogeny list of 8 curves, I cannot get ellisisom(E,F) to even work out all all

All results = 0 for using K[1] and trying the other 7 curves.

for example ellisisom(K[1],K[2]) = 0

What am I doing wrong?

On 11/25/23 15:29, Bill Allombert wrote:
On Sat, Nov 25, 2023 at 01:32:55PM -0800, American Citizen wrote:
Hello:

I am trying to carefully learn about elliptic curve isogenies, and how to
move points across two isogenous curves. (which have the same conductor, of
course)

Suppose I have a non-minimal curve, say E with point P

I have another curve F, and I want to find the image of P on F.
How did you find F ? Usually you should have more information of the isogeny,
such as the degree, that will help you.

ellisogeny provides "isogeny from kernel", but GP is lacking the function
"isogeny from image" because we are not quite sure what should be the
specification. (However this is implemented in PARI for ellisomat).

Also we do not have ellisisomorphic but you can use this:

ellisisom(E,F)=
{
   my(u,r,s,t);
   if (E.j!=F.j, return(0));
   if (E.j==0,
        if(!ispower(F.c6/E.c6,6,&u),return(0))
      ,E.j==1728,
        if(!ispower(F.c4/E.c4,4,&u),return(0))
      , if(!ispower(F.c4*E.c6/(F.c6*E.c4),2,&u),return(0)));
   s = (u*F.a1-E.a1)/2;
   r = (u^2*F.a2 + s*E.a1 - E.a2 + s^2)/3;
   t = (u^3*F.a3 - r*E.a1 - E.a3)/2;
   [u,r,s,t]
}

So you can call ellisomat of E, find the curve which is isomorphic to F and compute
the isomorphism.

Cheers,
Bill.