Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

elliptic curve torsion subgroup doesn't know its identity #5065

Closed
boothby opened this issue Jan 23, 2009 · 3 comments
Closed

elliptic curve torsion subgroup doesn't know its identity #5065

boothby opened this issue Jan 23, 2009 · 3 comments

Comments

@boothby
Copy link

boothby commented Jan 23, 2009

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: 

Component: elliptic curves

Issue created by migration from https://trac.sagemath.org/ticket/5065

@boothby boothby changed the title elliptic curve torsion subgroup doesn't know it's identity elliptic curve torsion subgroup doesn't know its identity Jan 23, 2009
@sagetrac-mabshoff sagetrac-mabshoff mannequin added this to the sage-4.0 milestone Apr 23, 2009
@JohnCremona
Copy link
Member

comment:3

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!

@loefflerd loefflerd mannequin assigned loefflerd and unassigned williamstein Jul 20, 2009
@loefflerd loefflerd mannequin removed their assignment Oct 9, 2009
@JohnCremona
Copy link
Member

comment:6

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.

@qed777
Copy link
Mannequin

qed777 mannequin commented Aug 14, 2010

comment:7

I'm setting the resolution to "duplicate" and changing the milestone accordingly.

@qed777 qed777 mannequin removed this from the sage-4.5.3 milestone Aug 14, 2010
@qed777 qed777 mannequin added r: duplicate and removed p: minor / 4 labels Aug 14, 2010
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants