Skip to content

Commit

Permalink
Trac #32269: Isogenies prime degree fails on some CM curves
Browse files Browse the repository at this point in the history
The code:
{{{
K.<a> = QuadraticField(-11)
E = EllipticCurve(K, [0,1,0,-117,-541])
E.isogenies_prime_degree(53)
}}}
returns an empty list. But, since E has CM by the ring of integers of K,
it has to have an isogeny of degree p for p splitting in K, so this
doesn't make sense.

If you import isogenies_prime_degree_general from
isogeny_small_degree.py then
{{{
isogenies_prime_degree_general(E,53)
}}}
correctly returns

{{{
[Isogeny of degree 53 from Elliptic Curve defined by y^2 = x^3 + x^2 +
(-117)*x + (-541) over Number Field in a with defining polynomial x^2 +
11 with a = 3.316624790355400?*I to Elliptic Curve defined by y^2 = x^3
+ x^2 + (98560*a+42123)*x + (-12561472*a-61946205) over Number Field in
a with defining polynomial x^2 + 11 with a = 3.316624790355400?*I,
 Isogeny of degree 53 from Elliptic Curve defined by y^2 = x^3 + x^2 +
(-117)*x + (-541) over Number Field in a with defining polynomial x^2 +
11 with a = 3.316624790355400?*I to Elliptic Curve defined by y^2 = x^3
+ x^2 + (-98560*a+42123)*x + (12561472*a-61946205) over Number Field in
a with defining polynomial x^2 + 11 with a = 3.316624790355400?*I]
}}}

URL: https://trac.sagemath.org/32269
Reported by: gh-sachihashimoto
Ticket author(s): Alex J. Best
Reviewer(s): Edgar Costa
  • Loading branch information
Release Manager committed Aug 31, 2021
2 parents c5f026a + 6b6dc19 commit 79711b3
Showing 1 changed file with 10 additions and 1 deletion.
11 changes: 10 additions & 1 deletion src/sage/schemes/elliptic_curves/isogeny_small_degree.py
Expand Up @@ -2333,6 +2333,15 @@ def isogenies_prime_degree(E, l, minimal_models=True):
[]
sage: E.isogenies_prime_degree(73) # slower (2s)
[]
Test that :trac:`32269` is fixed::
sage: K = QuadraticField(-11)
sage: E = EllipticCurve(K, [0,1,0,-117,-541])
sage: E.isogenies_prime_degree(37)
[Isogeny of degree 37 from Elliptic Curve defined by y^2 = x^3 + x^2 + (-117)*x + (-541) over Number Field in a with defining polynomial x^2 + 11 with a = 3.316624790355400?*I to Elliptic Curve defined by y^2 = x^3 + x^2 + (30800*a+123963)*x + (3931312*a-21805005) over Number Field in a with defining polynomial x^2 + 11 with a = 3.316624790355400?*I,
Isogeny of degree 37 from Elliptic Curve defined by y^2 = x^3 + x^2 + (-117)*x + (-541) over Number Field in a with defining polynomial x^2 + 11 with a = 3.316624790355400?*I to Elliptic Curve defined by y^2 = x^3 + x^2 + (-30800*a+123963)*x + (-3931312*a-21805005) over Number Field in a with defining polynomial x^2 + 11 with a = 3.316624790355400?*I]
"""
if not l.is_prime():
raise ValueError("%s is not prime."%l)
Expand All @@ -2352,7 +2361,7 @@ def isogenies_prime_degree(E, l, minimal_models=True):
return isogenies_prime_degree_genus_plus_0(E,l, minimal_models=minimal_models)

j = E.j_invariant()
if j in QQ:
if j in QQ and E.base_field() is QQ:
j = QQ(j)
if j in sporadic_j:
return isogenies_sporadic_Q(E,l, minimal_models=minimal_models)
Expand Down

0 comments on commit 79711b3

Please sign in to comment.