#16779: Isogeny construction fails over relative number fields
-------------------------+-------------------------------------------------
   Reporter:  cremona    |            Owner:
       Type:  defect     |           Status:  new
   Priority:  major      |        Milestone:  sage-6.3
  Component:  elliptic   |         Keywords:  isogeny relative number field
  curves                 |          Authors:  John Cremona
  Merged in:             |  Report Upstream:  N/A
  Reviewers:             |           Branch:
Work issues:             |     Dependencies:
     Commit:             |
   Stopgaps:             |
-------------------------+-------------------------------------------------
 In 6.3.beta8:
 {{{
 sage: pol26 = hilbert_class_polynomial(-4*26)
 sage: pol =
 NumberField(pol26,'a').optimized_representation()[0].polynomial()
 sage: K.<a> = NumberField(pol)
 sage: j = pol26.roots(K)[0][0]
 sage: E = EllipticCurve(j=j)
 sage: L.<b> = K.extension(x^2+26)
 sage: EL = E.change_ring(L)
 sage: EL.isogenies_prime_degree(2)
 <boom>
 AttributeError: 'MPolynomial_polydict' object has no attribute 'gcd'
 }}}

 The problem is that the isogeny construction code uses 2-variable
 polynomial rings where univariate polynomials would suffice.  This can be
 fixed by using pol.univariate_polynomial() instead of pol in a few places:
 possibly not the best solution, but it does work.  After the changes to be
 posted:
 {{{
 sage: EL.isogenies_prime_degree(2)
 [Isogeny of degree 2 from Elliptic Curve defined by y^2 = x^3 +
 
(-1732240226222259558661029888*a^5-188333428554736651445698560*a^4-3673289955722628245763686400*a^3-5804899323109453402219118592*a^2-2971541838129936761551454208*a-1562374967437103565141073920)*x
 +
 
(-94728391892057339794161932691112485453824*a^5-10299104336936650483469675988569712230400*a^4-200875632138916380192904691609307264843776*a^3-317443718053271064319198841938037520203776*a^2-162500198012313692944394229567905247264768*a-85439228322553980844209253657171793543168)
 over Number Field in b with defining polynomial x^2 + 26 over its base
 field to Elliptic Curve defined by y^2 = x^3 +
 
(-1732286128907119084224380928*a^5-188338419208778539462164480*a^4-3673387294340771630546288640*a^3-5805053147310602916403740672*a^2-2971620581105535693881868288*a-1562416368858421516757729280)*x
 +
 
(-94723120436085499486994076285991739457536*a^5-10298531211245638927893552385996911280128*a^4-200864453789643413434655770571076062412800*a^3-317426052910331005519875176884304663805952*a^2-162491155183420182869799603998938865074176*a-85434473790978235642424626625064973893632)
 over Number Field in b with defining polynomial x^2 + 26 over its base
 field]
 }}}

 Note, however, that {{{EL.isogenies_prime_degree(3)}}}, while it works
 correctly and finds two 3-isogenies, does give some warnings:
 {{{
 sage: iso = EL.isogenies_prime_degree(3); len(iso)
 verbose 0 (3525: multi_polynomial_ideal.py, groebner_basis) Warning:
 falling back to very slow toy implementation.
 verbose 0 (3525: multi_polynomial_ideal.py, groebner_basis) Warning:
 falling back to very slow toy implementation.
 2
 }}}

--
Ticket URL: <http://trac.sagemath.org/ticket/16779>
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