#16456: Bug in descend_to method for elliptic curves
----------------------------------------------+------------------------
       Reporter:  cremona                     |        Owner:  cremona
           Type:  defect                      |       Status:  new
       Priority:  major                       |    Milestone:  sage-6.3
      Component:  elliptic curves             |   Resolution:
       Keywords:  elliptic curve base change  |    Merged in:
        Authors:                              |    Reviewers:
Report Upstream:  N/A                         |  Work issues:
         Branch:                              |       Commit:
   Dependencies:                              |     Stopgaps:
----------------------------------------------+------------------------
Changes (by cremona):

 * owner:   => cremona


Old description:

> The function descend_to which was implemented in #9384 is incorrect.  The
> twisting parameter d in L* is only defined modulo (L*)^2 and one has to
> determine whether there is a representative which lies in K*, which the
> implementation does not do, so some "positive" results are missed.  I
> will post an example of this.  The heart of the problem being solved here
> is to determine whether (given that j(E) is in K of course) the twisting
> parameter in L*/(L*)^2 is in the image of K*/(K*)^2 or not, and the
> implementation ignores this.  (For j=0 or 1728 the principle is the same
> with squares replced by 6th or 4th powers respectively.)
>
> I can see how to fix this for number fields (one can restrict from
> K*/(K*)^2 to a finite K(S,2) for an easily determined set S of primes) or
> for finite fields, but it may not be possible to have this implemented
> for arbitrary fields, which will cause a problem with the patching.

New description:

 The function descend_to which was implemented in #9384 is incorrect.  The
 twisting parameter d in L* is only defined modulo {{{(L*)^2}}} and one has
 to determine whether there is a representative which lies in K*, which the
 implementation does not do, so some "positive" results are missed.  I will
 post an example of this.  The heart of the problem being solved here is to
 determine whether (given that j(E) is in K of course) the twisting
 parameter in {{{L*/(L*)^2}}} is in the image of {{{K*/(K*)^2}}} or not,
 and the implementation ignores this.  (For j=0 or 1728 the principle is
 the same with squares replaced by 6th or 4th powers respectively.)


 I can see how to fix this for number fields (one can restrict from
 K*/(K*)^2 to a finite K(S,2) for an easily determined set S of primes) or
 for finite fields, but it may not be possible to have this implemented for
 arbitrary fields, which will cause a problem with the patching.

 A second and independent bug is reported by Warren Moore:
 {{{
 sage: k.<i> = QuadraticField(-1)
 sage: E = EllipticCurve(k,[0,0,0,1,0])
 sage: E.descend_to(QQ) == None
 True
 }}}
 This caused by a "naked Except" clause plus a call to f.preimage() for a
 map f which has no attribute/method "preimage".

--

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