#4061: coercion from torsion subgroup of elliptic curve to elliptic curve is
broken
---------------------------+------------------------------------------------
 Reporter:  was            |        Owner:  was       
     Type:  defect         |       Status:  new       
 Priority:  minor          |    Milestone:  sage-3.2.1
Component:  number theory  |   Resolution:            
 Keywords:                 |  
---------------------------+------------------------------------------------
Comment (by cremona):

 I had not noticed this on trac, or I had forgotten.

 The class EllipticCurveTorsionSubgroup is derived form an abstract abelian
 group class, but does store the associated curve and the generators as
 points on the curve.  That is why T.0 is an actual point.  But E(z) does
 not work because the call() method for elliptic curves does not have
 implemented a case where the argument is tested (or rather, its parent) to
 be an element of type EllipticCurveTorsionSubgroup.  That would not be
 hard to do.  I would recommend this:

     1. Implement a method for the EllipticCurveTorsionSubgroup class which
 converts an element of the abstract group to an actual point.  For
 example, this code does that for all elements of the abstract group:
 {{{
 [sum([zi*Ti for zi,Ti in zip(P.list(),T.gens())]) for P in T]
 [(0 : 1 : 0),
  (36 : 224 : 1),
  (8 : 28 : 1),
  (4 : 0 : 1),
  (8 : -28 : 1),
  (36 : -224 : 1)]
 }}}
 This also works ok when there are 2 generators, but  not quite when there
 are none (for the trivial group!)  -- I just tried that and it gives an
 empty list, strange.

    2. Add a section in the function {{{__call__()}}} in ell_generic.py to
 catch the case where the argument's parent is an element of the torsion
 subgroup class like this:
 {{{
 sage:
 
isinstance(T[3].parent(),sage.schemes.elliptic_curves.ell_torsion.EllipticCurveTorsionSubgroup)
 True
 }}}

 We'll want something similar when we have a MordellWeilGroup class to hold
 the whole abelian group of a curve.

 This should be an easy thing for someone to do!

-- 
Ticket URL: <http://trac.sagemath.org/sage_trac/ticket/4061#comment:2>
Sage <http://sagemath.org/>
Sage - Open Source Mathematical Software: Building the Car Instead of 
Reinventing the Wheel
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"sage-trac" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/sage-trac?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to