Opened 6 years ago

Closed 6 years ago

# elliptic curve isogenies: follow-up to #13615

Reported by: Owned by: cremona major sage-5.13 elliptic curves sage-5.13.beta4 John Cremona Volker Braun N/A

### 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.

### comment:1 Changed 6 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: ↓ 3 Changed 6 years ago by vbraun

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

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

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

### comment:4 Changed 6 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 6 years ago by cremona

applies to 5.13.beta3

### comment:5 Changed 6 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 6 years ago by vbraun

• Status changed from needs_review to positive_review

looks good to me

### comment:7 Changed 6 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.