Karim Belabas on Wed, 03 Jun 2015 16:16:36 +0200

 Re: Struggling with ellisogeny() and variable priorities

```* Jeroen Demeyer [2015-06-03 16:05]:
> This works:
>
> gp> E = ellinit([Mod(0, y^2 + 1), Mod(0, y^2 + 1), Mod(0, y^2 + 1), Mod(1,
> y^2 + 1), Mod(0, y^2 + 1)])
> gp> isog = factor(elldivpol(E,37))[1,1];
> gp> yy = varhigher("yy")
> %2 = yy
> gp> xx = varhigher("xx")
> %3 = xx
> gp> ellisogeny(E, isog, 0, xx, yy);
>
>
> But this (which should be equivalent, right?)

No. In the second case, yy is defined *before* xx so yy > xx,
as indicated in the error message.

In the first, the 'yy' varhigher creates a variable of then highest
priority, *then* the 'xx' varhigher creates a variable of highest
priority. So xx > yy.

Cheers,

K.B.

> does not:
>
> gp> E = ellinit([Mod(0, y^2 + 1), Mod(0, y^2 + 1), Mod(0, y^2 + 1), Mod(1,
> y^2 + 1), Mod(0, y^2 + 1)])
> gp> isog = factor(elldivpol(E,37))[1,1];
> gp> yy
> %2 = yy
> gp> xx
> %3 = xx
> gp> ellisogeny(E, isog, 0, xx, yy)
>   ***   at top-level: ellisogeny(E,isog,0,
>   ***                 ^--------------------
>   *** ellisogeny: incorrect priority in ellisogeny: variable xx <= yy
--
Karim Belabas, IMB (UMR 5251)  Tel: (+33) (0)5 40 00 26 17
Universite de Bordeaux         Fax: (+33) (0)5 40 00 69 50
351, cours de la Liberation    http://www.math.u-bordeaux.fr/~kbelabas/
F-33405 Talence (France)       http://pari.math.u-bordeaux.fr/  [PARI/GP]
`

```