Opened 12 months ago

Closed 9 months ago

# Bug in quadratic twist of elliptic curves

Reported by: Owned by: cremona cremona trivial sage-duplicate/invalid/wontfix elliptic curves quadratic twist defeo N/A

### Description

If E is an elliptic curve defined over a field K and L/K is a quadratic extension then there is an elliptic curve E'/K isomorphic to E over L but not over K, called the quadratic twist of E by L/K. In case L=K(sqrt(d)) for some non-square d in K, this is also called the quadratic twist of E by d; this is always the case except in characteristic 2. When the characteristic is not 2 or 3 and E has short Weierstrass equation Y2=X3+aX+b then *usually* the twist by d is obtained by replacing (a,b) by (a*d2,b*d3), but there is one case for which this is incorrect, namely when d=-1 and b=0. In this case, the twist takes (a,0) to (-4*a,0). We do not implement this properly:

sage: E = EllipticCurve([0,0,0,1,0]); E
Elliptic Curve defined by y^2 = x^3 + x over Rational Field
Elliptic Curve defined by y^2 = x^3 + x over Rational Field


### comment:1 Changed 12 months ago by cremona

For the record, Magma gives the same result as Sage in the preceding example, which (in my opinion) means that both have a bug. I will seek more opinions. Meanwhile, continuing the example:

sage: E = EllipticCurve([0,0,0,1,0]); E
Elliptic Curve defined by y^2 = x^3 + x over Rational Field
sage: E.change_ring(K).descend_to(QQ)
[Elliptic Curve defined by y^2 = x^3 + x over Rational Field,
Elliptic Curve defined by y^2 = x^3 - 4*x over Rational Field]


This means that the last two curves (being the original and one other) are non-isomorphic over Q but isomorphic over K=Q(i), which according tm me means that the second curve listed is *the* quadratic twist of E by -1. But then I wrote the descend_to method.

### comment:3 Changed 12 months ago by embray

• Milestone sage-8.8 deleted

As the Sage-8.8 release milestone is pending, we should delete the sage-8.8 milestone for tickets that are not actively being worked on or that still require significant work to move forward. If you feel that this ticket should be included in the next Sage release at the soonest please set its milestone to the next release milestone (sage-8.9).

### comment:4 Changed 10 months ago by cremona

• Owner changed from (none) to cremona

I was wrong. The definition of quadratic twist is not that the curves become isomorphic (only) over a quadratic extension, but is that the twisting cocycle has values in {+1,-1}. The quadratic twist by d of a curve with j=1728 is trivial for d=-1, and more generally is the same for +d and -d. So while normally the quadratic twists over a field K (of characteristic not 2, anyway) are parametrized by K*/(K*)2, in the case j(E)=1728 they are parametrized by K*/(-1,(K*)2). This is because the inflation map H1(G_K,\mu_2) -> H1(G_K,\mu_4) has kernel 2: after applying the Kummer isomorphism this becomes the squaring map K*/(K*)2 -> K*/(K*)4 whose kernel contains -1. Alternatively, since -4=(1+sqrt(-1))4, the quartic twist by -4 becomes trivial over K(sqrt(-1)).

I have discussed this with several experts, who agree. So nothing needs changing.

This should be set to invalid/don't-fix.

### comment:5 Changed 10 months ago by cremona

• Milestone set to sage-duplicate/invalid/wontfix
• Priority changed from major to trivial

### comment:6 Changed 9 months ago by chapoton

• Resolution set to invalid
• Status changed from new to closed
Note: See TracTickets for help on using tickets.