Opened 5 years ago
Closed 5 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)
Change History (8)
comment:1 Changed 5 years ago by
- Status changed from new to needs_review
comment:2 follow-up: ↓ 3 Changed 5 years ago by
- Reviewers set to Volker Braun
- Status changed from needs_review to positive_review
comment:3 in reply to: ↑ 2 Changed 5 years ago by
Replying to vbraun: Thanks for looking at this so quickly!
comment:4 Changed 5 years ago by
- 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>
comment:5 Changed 5 years ago by
- 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 5 years ago by
- Status changed from needs_review to positive_review
looks good to me
comment:7 Changed 5 years ago by
- Merged in set to sage-5.13.beta4
- Resolution set to fixed
- Status changed from positive_review to closed
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).