#5065 closed defect (duplicate)
elliptic curve torsion subgroup doesn't know its identity
Reported by: | boothby | Owned by: | |
---|---|---|---|
Priority: | minor | Milestone: | sage-duplicate/invalid/wontfix |
Component: | elliptic curves | Keywords: | |
Cc: | Merged in: | ||
Authors: | Reviewers: | ||
Report Upstream: | N/A | Work issues: | |
Branch: | Commit: | ||
Dependencies: | Stopgaps: |
Description
The torsion subgroup of an elliptic curve appears to be quite broken -- it barfs when trying to coerce in 0,
sage: E = EllipticCurve(1) sage: T = E.torsion_subgroup() sage: T(0) ... ... TypeError: Argument x (= 0) is of wrong type.
further, it returns a mysterious 1 when coercing in a 1
sage: a = T(1); a 1 sage: b = T.gens()[0]-T.gens()[0]; b (0 : 1 : 0) sage: a+b TypeError: unsupported operand parent(s) for '+': 'Abelian group of points on Elliptic Curve defined by y^2 + x*y + y = x^3 - 19*x + 26 over Rational Field' and 'Torsion Subgroup isomorphic to Multiplicative Abelian Group isomorphic to C6 x C2 associated to the Elliptic Curve defined by y^2 + x*y + y = x^3 - 19*x + 26 over Rational Field'
Yet, it's all cool with the original curve.
sage: E(0) (0 : 1 : 0) sage: E(1) ... ... TypeError: v (=(1,)) must have 3 components sage:
Change History (7)
comment:1 Changed 12 years ago by
- Summary changed from elliptic curve torsion subgroup doesn't know it's identity to elliptic curve torsion subgroup doesn't know its identity
comment:2 Changed 12 years ago by
- Milestone set to sage-4.0
comment:3 Changed 12 years ago by
comment:4 Changed 12 years ago by
- Component changed from number theory to elliptic curves
- Owner changed from was to davidloeffler
comment:5 Changed 12 years ago by
- Owner changed from davidloeffler to (none)
comment:6 Changed 11 years ago by
- Report Upstream set to N/A
- Resolution set to fixed
- Status changed from new to closed
In 4.5.3.alpha3 this works fine:
sage: E = EllipticCurve(j=1) sage: T = E.torsion_subgroup() sage: T(0) (0 : 1 : 0)
thanks to the new Abelian Groups support. So this ticket can be closed as fixed.
comment:7 Changed 11 years ago by
- Milestone changed from sage-4.5.3 to sage-duplicate/invalid/wontfix
- Resolution changed from fixed to duplicate
I'm setting the resolution to "duplicate" and changing the milestone accordingly.
Note: See
TracTickets for help on using
tickets.
Here is the reason. the torsion subgroup class is derived from the Abelian group class, which in Sage is always a multiplicative group! So it can coerce in 1 to give the identity 1, but not 0.
I produced a lovely patch adding proper additive support to the AbelianGroup? class months ago, motivated mainly by situations such as this, but nobody else was interested and it never got in. (To be fair, the patch is on trac labelled "not for review" for some reason).
Of course, for this specific group we could easily write a call() function to handle this, but the whole point of my Abeliangroup patch was that if you say that a group is additive on creation then that was all automatic. Sigh.
I see that this was reported 3 months ago. Sorry, I never saw it until now!