Opened 4 years ago

Closed 4 years ago

#15434 closed defect (fixed)

elliptic curve isogenies: follow-up to #13615

Reported by: cremona Owned by:
Priority: major Milestone: sage-5.13
Component: elliptic curves Keywords:
Cc: Merged in: sage-5.13.beta4
Authors: John Cremona Reviewers: Volker Braun
Report Upstream: N/A Work issues:
Branch: Commit:
Dependencies: Stopgaps:

Description

In #13615 there were major enhancements to the ability to compute isogenies of low degree for elliptic curves. A small bug was found after the ticket was closed and the patched merged into 5.13.beta0:

sage: K.<i> = NumberField(x^2+1)                                                                         
sage: E = EllipticCurve(K,[-2*i-1,0])                                                                   
sage: E.isogenies_prime_degree(17)
...

ValueError: The polynomial does not define a finite subgroup of the elliptic curve.

while in fact this curve does have 2 17-isogenies:

sage: from sage.schemes.elliptic_curves.isogeny_small_degree import isogenies_prime_degree_general
sage: isogenies_prime_degree_general(E,17) # rather slow
[Isogeny of degree 17 from Elliptic Curve defined by y^2 = x^3 + (-2*i-1)*x over Number Field in i with defining polynomial x^2 + 1 to Elliptic Curve defined by y^2 = x^3 + (-82*i-641)*x over Number Field in i with defining polynomial x^2 + 1,
 Isogeny of degree 17 from Elliptic Curve defined by y^2 = x^3 + (-2*i-1)*x over Number Field in i with defining polynomial x^2 + 1 to Elliptic Curve defined by y^2 = x^3 + (-562*i+319)*x over Number Field in i with defining polynomial x^2 + 1]

This was found by Warwick undergraduate Warren Moore.

This problem can be fixed as follows: in line 1770 of isogeny_small_degree.py replace -27*c4 by -27*c4/1296 (or -c4/48) twice.

Attachments (1)

trac_15434-bugfix.patch (3.2 KB) - added by cremona 4 years ago.
applies to 5.13.beta3

Download all attachments as: .zip

Change History (8)

comment:1 Changed 4 years ago by cremona

  • Status changed from new to needs_review

I checked that the problem does not also arise for the similar case of elliptic curves with j=0 over fields containing sqrt(-3) and primes =1 (mod 3).

comment:2 follow-up: Changed 4 years ago by vbraun

  • Reviewers set to Volker Braun
  • Status changed from needs_review to positive_review

comment:3 in reply to: ↑ 2 Changed 4 years ago by cremona

Replying to vbraun: Thanks for looking at this so quickly!

comment:4 Changed 4 years ago by cremona

  • Status changed from positive_review to needs_work

Not so fast: my patch is not good on non-short Weierstrass models. Warren now reports this:

sage: K.<i> = NumberField(x^2+1)
sage: E = EllipticCurve(K, [-2*i-1,0])
sage: E.isogenies_prime_degree(17)
[Isogeny of degree 17 from Elliptic Curve defined by y^2 = x^3 + (-2*i-1)*x over Number Field in i with defining polynomial x^2 + 1 to Elliptic Curve defined by y^2 = x^3 + (-82*i-641)*x over Number Field in i with defining polynomial x^2 + 1,
Isogeny of degree 17 from Elliptic Curve defined by y^2 = x^3 + (-2*i-1)*x over Number Field in i with defining polynomial x^2 + 1 to Elliptic Curve defined by y^2 = x^3 + (-562*i+319)*x over Number Field in i with defining polynomial x^2 + 1]
sage: E.global_minimal_model().isogenies_prime_degree(17)
<boom>

Changed 4 years ago by cremona

applies to 5.13.beta3

comment:5 Changed 4 years ago by cremona

  • Status changed from needs_work to needs_review

The new patch does this properly now. The new changed line agree's with Kimi's thesis, and with the similar code for j=0, and I added another doctest with the minimal model (the first patch only worked when b2=0).

comment:6 Changed 4 years ago by vbraun

  • Status changed from needs_review to positive_review

looks good to me

comment:7 Changed 4 years ago by jdemeyer

  • Merged in set to sage-5.13.beta4
  • Resolution set to fixed
  • Status changed from positive_review to closed
Note: See TracTickets for help on using tickets.