#7096: bug in dual isogeny computation
-------------------------------+--------------------------------------------
Reporter: cremona | Owner:
Type: defect | Status: needs_work
Priority: major | Milestone: sage-4.2.1
Component: elliptic curves | Keywords: elliptic curve isogeny
Work_issues: | Author:
Reviewer: | Merged:
-------------------------------+--------------------------------------------
Old description:
> {{{
> sage: p = 1019
> sage: F = GF(p)
> sage: E = EllipticCurve(F,[1,-1,0,1,1])
> sage: psi = E.division_polynomial(7).factor()[3][0]
> sage: phi = E.isogeny(kernel=psi)
> sage: assert phi.degree()==7
> sage: phi.dual()
> ---------------------------------------------------------------------------
> ValueError Traceback (most recent call
> last)
>
> /home/jec/.sage/temp/selmer/14232/_home_jec__sage_init_sage_0.py in
> <module>()
>
> /home/jec/sage-4.1.2.rc0/local/lib/python2.6/site-
> packages/sage/schemes/elliptic_curves/ell_curve_isogeny.pyc in dual(self)
> 2998
> 2999 phi_hat.set_pre_isomorphism(pre_isom)
> -> 3000 phi_hat.set_post_isomorphism(post_isom)
> 3001
> 3002 self.__dual = phi_hat
>
> /home/jec/sage-4.1.2.rc0/local/lib/python2.6/site-
> packages/sage/schemes/elliptic_curves/ell_curve_isogeny.pyc in
> set_post_isomorphism(self, postWI)
> 2627
> 2628 if (self.__E2 != WIdom):
> -> 2629 raise ValueError, "Invalid parameter: isomorphism
> must have domain curve equal to this isogenies'codomain."
> 2630
> 2631 if (None == self.__post_isomorphism):
>
> ValueError: Invalid parameter: isomorphism must have domain curve equal
> to this isogenies' codomain.
> }}}
>
> This looks like something which should be easy to fix.
New description:
{{{
sage: p = 1019
sage: F = GF(p)
sage: E = EllipticCurve(F,[1,-1,0,1,1])
sage: psi = E.division_polynomial(7).factor()[3][0]
sage: phi = E.isogeny(kernel=psi)
sage: assert phi.degree()==7
sage: phi.dual()
---------------------------------------------------------------------------
ValueError Traceback (most recent call
last)
/home/jec/.sage/temp/selmer/14232/_home_jec__sage_init_sage_0.py in
<module>()
/home/jec/sage-4.1.2.rc0/local/lib/python2.6/site-
packages/sage/schemes/elliptic_curves/ell_curve_isogeny.pyc in dual(self)
2998
2999 phi_hat.set_pre_isomorphism(pre_isom)
-> 3000 phi_hat.set_post_isomorphism(post_isom)
3001
3002 self.__dual = phi_hat
/home/jec/sage-4.1.2.rc0/local/lib/python2.6/site-
packages/sage/schemes/elliptic_curves/ell_curve_isogeny.pyc in
set_post_isomorphism(self, postWI)
2627
2628 if (self.__E2 != WIdom):
-> 2629 raise ValueError, "Invalid parameter: isomorphism must
have domain curve equal to this isogenies'codomain."
2630
2631 if (None == self.__post_isomorphism):
ValueError: Invalid parameter: isomorphism must have domain curve equal to
this isogenies' codomain.
}}}
This looks like something which should be easy to fix.
One month of hard work later: first impressions were deceptive!
--
Comment(by cremona):
You have done a great job, and I look forward to studying it in detail.
Unfortunately other work prevents me from doing so for quite a while, so
although I was the one who posted this (complete with under-estimation of
the work involved) I would be very happy if someone else interested
reviews it first.
--
Ticket URL: <http://trac.sagemath.org/sage_trac/ticket/7096#comment:14>
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 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
-~----------~----~----~----~------~----~------~--~---