#11474: Elliptic curves should be unique parent structures
-----------------------------------+--------------------------
       Reporter:  SimonKing        |        Owner:  cremona
           Type:  defect           |       Status:  needs_info
       Priority:  major            |    Milestone:  sage-6.2
      Component:  elliptic curves  |   Resolution:
       Keywords:  unique parent    |    Merged in:
        Authors:  Simon King       |    Reviewers:
Report Upstream:  N/A              |  Work issues:
         Branch:                   |       Commit:
   Dependencies:                   |     Stopgaps:
-----------------------------------+--------------------------

Comment (by pbruin):

 Replying to [comment:11 cremona]:
 > I also like the idea of having a separate object for the group of
 points.  Then for an elliptic curve E defined over K one could have
 different point groups for E(K) and for E(L) for extensions L of K.  Magma
 did that a few years ago and it was very convenient.  I have not thought
 at all about how to implement it though.
 There is already a very basic class in `sage.schemes.projective_homset`;
 you can do
 {{{
 sage: E=EllipticCurve('37a1')
 sage: K.<a>=QuadraticField(57)
 sage: E(K)
 Abelian group of points on Elliptic Curve defined by y^2 + y = x^3 +
 (-1)*x over Number Field in a with defining polynomial x^2 - 57
 sage: type(E(K))
 <class
 
'sage.schemes.projective.projective_homset.SchemeHomset_points_abelian_variety_field_with_category'>
 sage: P=(0,0)
 sage: E(P) == E(QQ)(P)
 True
 }}}
 We could create a subclass of `SchemeHomset_points_abelian_variety` for
 groups of points of elliptic curves, and then separate subclasses of that
 for  different base fields (rationals, general number fields, finite
 fields, maybe the complex field, etc.)  Then we could start moving
 functionality so that `E.rank()` is defined as
 `E.group_of_points(E.base_field()).rank()`, etc.

 (In the above example it looks as if `E(K)` is interpreted as the group of
 `K`-points of `E.base_extend(K)` rather than as the group of `K`-points of
 `E`, but this could probably be changed.)

 > About isogeny (c)domains it is not so clear to me.  An isogeny is both a
 map from one curve to another (preserving the base point), and also a
 group homomorphism.  If we are going to separate out the curve E from its
 group(s) E(K), E(L), then should we not keep these separate for isogenies
 too?
 Yes, I think we should.  To rephrase your point, an isogeny ''is'' a map
 f: E -> E' between elliptic curves over a field K (preserving 0), and
 ''induces'' group homomorphisms f(L): E(L) -> E'(L) for every extension
 L/K.  (In categorical language, E determines a functor from K-algebras to
 Abelian groups, and f determines a morphism [natural transformation]
 between two such functors.)

 Of course, as a Sage user you should still be able to construct a point P
 from its coordinates (u, v) by typing `P = E(u, v)` as an alternative for
 `P = E(K)(u, v)`, and likewise you should be able to apply an isogeny f to
 P by typing either `f(P)` or `f(K)(P)`.

--
Ticket URL: <http://trac.sagemath.org/ticket/11474#comment:12>
Sage <http://www.sagemath.org>
Sage: Creating a Viable Open Source Alternative to Magma, Maple, Mathematica, 
and MATLAB

-- 
You received this message because you are subscribed to the Google Groups 
"sage-trac" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/sage-trac.
For more options, visit https://groups.google.com/d/optout.

Reply via email to