Opened 7 years ago
Closed 7 years ago
#16779 closed defect (duplicate)
Isogeny construction fails over relative number fields
Reported by: | cremona | Owned by: | |
---|---|---|---|
Priority: | major | Milestone: | sage-duplicate/invalid/wontfix |
Component: | elliptic curves | Keywords: | isogeny relative number field |
Cc: | Merged in: | ||
Authors: | John Cremona | Reviewers: | Chris Wuthrich |
Report Upstream: | N/A | Work issues: | |
Branch: | Commit: | ||
Dependencies: | Stopgaps: |
Description
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
Change History (4)
comment:1 Changed 7 years ago by
comment:2 Changed 7 years ago by
- Milestone changed from sage-6.3 to sage-duplicate/invalid/wontfix
- Status changed from new to needs_review
comment:3 Changed 7 years ago by
- Reviewers set to Chris Wuthrich
- Status changed from needs_review to positive_review
I confirm that #11327 solves this ticket, too. This should be closed as won't fix.
comment:4 Changed 7 years ago by
- Resolution set to duplicate
- Status changed from positive_review to closed
Note: See
TracTickets for help on using
tickets.
See also #11327 where a more thorough solution was proposed, but not finished, in 2011. The patch (branch) posted there on 2014-08-09 solves both the issue reported there (constructing duals of 2-isogenies over function fields) and this one.
This ticket is therefore redundant and can be closed as a duplicate while #11327 is ready for review.