1 | initial version |

We really need the `ker`

. Since i had none, i started with one where the computation could succeed in relatively short time.
I am using as `ker`

the following polynomial....

```
ker = E.torsion_polynomial( 3 ).monic()
phi1 = EllipticCurveIsogeny(E, ker)
print "phi1 (using ker):\n%s\n" % phi1
ker_roots = ker.roots( ring=Fp2, multiplicities=False )
points = [ E.lift_x(a) for a in ker_roots ]
phi2 = EllipticCurveIsogeny(E, points)
print "phi2 (using lift of ker-roots, taken as x-component):\n%s\n" % phi2
print bool( phi1 == phi2 )
```

The above gives:

```
phi1 (using ker):
Isogeny of degree 9 from Elliptic Curve defined by y^2 = x^3 + x over Finite Field in j of size 10354717741769305252977768237866805321427389645549071170116189679054678940682478846502882896561066713624553211618840202385203911976522554393044160468771151816976706840078913334358399730952774926980235086850991501872665651576831^2 to Elliptic Curve defined by y^2 = x^3 + 81*x over Finite Field in j of size 10354717741769305252977768237866805321427389645549071170116189679054678940682478846502882896561066713624553211618840202385203911976522554393044160468771151816976706840078913334358399730952774926980235086850991501872665651576831^2
phi2 (using lift of ker-roots, taken as x-component):
Isogeny of degree 9 from Elliptic Curve defined by y^2 = x^3 + x over Finite Field in j of size 10354717741769305252977768237866805321427389645549071170116189679054678940682478846502882896561066713624553211618840202385203911976522554393044160468771151816976706840078913334358399730952774926980235086850991501872665651576831^2 to Elliptic Curve defined by y^2 = x^3 + 81*x over Finite Field in j of size 10354717741769305252977768237866805321427389645549071170116189679054678940682478846502882896561066713624553211618840202385203911976522554393044160468771151816976706840078913334358399730952774926980235086850991501872665651576831^2
True
```

The big numbers are $p$ and $p^2$, so nobody is intimidated. The main information is the passage from the equation `y^2 = x^3 + x`

to `y^2 = x^3 + 81*x`

.

The last `True`

translates in words: The isogenies constructed

- by using the
`ker`

as kernel polynomial, respectively - by using the $x$-roots of
`ker`

, extended / lifted to points $(x,\pm y)$ on`E`

do coincide. This should also be the case in the needed concrete case. (If the generated polynomial in the `for e in range(200, 0, -2)`

-loop is too complicated (big degree), then the construction of the isogeny may take a loong time. If there are too many roots, then i would use compositions of isogenies... )

Copyright Sage, 2010. Some rights reserved under creative commons license. Content on this site is licensed under a Creative Commons Attribution Share Alike 3.0 license.