Opened 12 months ago
Closed 9 months ago
#27884 closed defect (invalid)
Bug in quadratic twist of elliptic curves
Reported by: | cremona | Owned by: | cremona |
---|---|---|---|
Priority: | trivial | Milestone: | sage-duplicate/invalid/wontfix |
Component: | elliptic curves | Keywords: | quadratic twist |
Cc: | defeo | Merged in: | |
Authors: | Reviewers: | ||
Report Upstream: | N/A | Work issues: | |
Branch: | Commit: | ||
Dependencies: | Stopgaps: |
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 Y^{2=X}3+aX+b then *usually* the twist by d is obtained by replacing (a,b) by (a*d^{2,b*d}3), 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 sage: E.quadratic_twist(-1) Elliptic Curve defined by y^2 = x^3 + x over Rational Field
Change History (6)
comment:1 Changed 12 months ago by
comment:2 Changed 12 months ago by
- Cc defeo added
comment:3 Changed 12 months ago by
- 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
- 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 H^{1(G_K,\mu_2) -> H}1(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
- Milestone set to sage-duplicate/invalid/wontfix
- Priority changed from major to trivial
comment:6 Changed 9 months ago by
- Resolution set to invalid
- Status changed from new to closed
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:
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.