-
-
Notifications
You must be signed in to change notification settings - Fork 654
Closed as not planned
Description
Currently, composing two elliptic curve isogenies (with compatible domain and codomain) returns some sort of formal composite homomorphism, rather than an EllipticCurveIsogeny object:
sage: E = EllipticCurve(GF(3), [1, 0])
sage: f = E.isogenies_prime_degree(7)[0]
sage: E2 = f.codomain()
sage: g = E2.isogenies_prime_degree(7)[0]
sage: g * f
Composite map:
From: Elliptic Curve defined by y^2 = x^3 + x over Finite Field of size 3
To: Elliptic Curve defined by y^2 = x^3 + x + 2 over Finite Field of size 3
Defn: Isogeny of degree 7 from Elliptic Curve defined by y^2 = x^3 + x over Finite Field of size 3 to Elliptic Curve defined by y^2 = x^3 + x + 1 over Finite Field of size 3
then
Isogeny of degree 7 from Elliptic Curve defined by y^2 = x^3 + x + 1 over Finite Field of size 3 to Elliptic Curve defined by y^2 = x^3 + x + 2 over Finite Field of size 3
sage: type(g * f)
<class 'sage.categories.map.FormalCompositeMap'>
This is clearly suboptimal and can also return mathematically wrong answers with comparisons between isogenies (since it doesn't correctly detect when two compositions are equal). It would be nice if composing isogenies returned an EllipticCurveIsogeny
object.
Component: elliptic curves
Keywords: isogenies
Issue created by migration from https://trac.sagemath.org/ticket/31850