#5976: [with patch; needs work] Add an Elliptic Curve Isogeny object
---------------------------+------------------------------------------------
 Reporter:  shumow         |       Owner:  shumow         
     Type:  enhancement    |      Status:  assigned       
 Priority:  major          |   Milestone:  sage-4.0       
Component:  number theory  |    Keywords:  Elliptic Curves
---------------------------+------------------------------------------------

Comment(by shumow):

 Replying to [comment:12 cremona]:
 > Replying to [comment:11 shumow]:
 > > Replying to [comment:10 cremona]:
 > > > That is probably right, but how do you define "normalised"?  I think
 the definition is that the pull-back of the standard differential w_E =
 dx/(2y+a1*x+a3) under the isgeny is again the standard differential;  for
 [m] the pull-back of w is m*w.  Obviously this only makes sense for
 separable isogenies, since otherwise the pull-back of w is 0.
 > > >
 > > > Or do you in fact mean "cyclic" isogeny?
 > > >
 > > > We definitely need to be able to handle non-normalised isogenies, if
 only because the dual of a normalised isogeny is not normalised (using my
 definition above).
 > > >
 > > > I'm in a rush, so apologise if this is nonsense.
 > >
 > > I don't mean "cyclic" isogeny.  Yes, I meant the definition using the
 pullback of the invariant differential, which I believe is equivalent to
 that characterization that the isogeny map is defined by: (I(x),
 c*y*I'(x))  and c == 1.  Where I(x) is a rational map given by the various
 different formulas/algorithms.
 >
 > OK, that's the definition I meant.  (e.g. with this definition,
 multiplication-by-m is normalised iff m=1, since c=m).  Except that the
 precise characterization you give is only correct when the curve has short
 Weierstrass form (y^2=f(x)).  Otherwise it something like (I(x),
 cI'(x)(y+(a1*x+a3)/2) - (A1*I(x)+A3)/2)  where E=[a1,a2,a3,...] and the
 isogenous curve is [A1,A2,...].
 >

 I think this is correct.  My apologies for using the short form, I just
 grabbed the first one I saw in my notes.

 > Since we are specifying the isogeny from its kernel, it is well-defined
 up to an automorphism, so usually up to +/-1 (with the usual awkward
 special cases).  So if the user asks for an isogeny with a given kernel
 they surely don't get to specify whether or not it is normalised (except
 for the sign)?

 Do you think it would be nice to give the expected isogeny even if it
 isn't normalized in some cases?

 For example, if the user asks for the dual isogeny, then we can use the
 algorithms for computing normalized isogenies, and figure out what the
 post isomorphism is to get back to the original Weierstrass model.  This
 addresses the problem of wanting to get the dual isogeny such that the
 composition provides the expected multiplication by d map (where d is the
 degree of the isogeny.)

 We could also provide an option that if the domain and range curves are
 isomorphic, then the code determines the isomorphism and post-composes
 appropriately.

 In the usual case, when the user specifies just the Kernel, then I agree,
 they surely should not get to specify whether or not it is normalized
 (except up to sign.)

 I think that this solution is a good balance between allowing users who
 want to naturally use non normalized isogenies in simple cases, and not
 making the interface over complicated by trying to be overly flexible.

 Thoughts?

-- 
Ticket URL: <http://trac.sagemath.org/sage_trac/ticket/5976#comment:13>
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