#10745: bug in elliptic curve gens()
-----------------------------------+--------------------------
Reporter: rlm | Owner: cremona
Type: defect | Status: needs_info
Priority: major | Milestone:
Component: elliptic curves | Resolution:
Keywords: | Merged in:
Authors: | Reviewers:
Report Upstream: N/A | Work issues:
Branch: | Commit:
Dependencies: | Stopgaps:
-----------------------------------+--------------------------
Changes (by pbruin):
* status: new => needs_info
Old description:
> [See #15608 for a list of open simon_two_descent tickets]
>
> {{{
> sage: a = [1, 0, 1, -1751, -31352]
> sage: F = EllipticCurve(a)
> sage: K.<d> = QuadraticField(5)
> sage: FK = EllipticCurve(K, a)
> sage: F.gens()
> [(52 : 111 : 1)]
> sage: FK.gens()
> []
> }}}
>
> This isn't very good, because the default in Sage is proof=True, so one
> would expect this to be a provable result (until reading the docs of
> course. But if we try to look harder for the point, we run into a bug
> with caching:
>
> {{{
> sage: FK.gens(lim1=6)
> ---------------------------------------------------------------------------
> KeyError Traceback (most recent call
> last)
>
> /home/rlmill/<ipython console> in <module>()
>
> /home/rlmill/sage-4.6.2.alpha2/local/lib/python2.6/site-
> packages/sage/schemes/elliptic_curves/ell_number_field.pyc in gens(self,
> verbose, lim1, lim3, limtriv, maxprob, limbigprime)
> 1772 """
> 1773
> -> 1774 lower,upper,gens =
> self.simon_two_descent(verbose=verbose,lim1=lim1,lim3=lim3,limtriv=limtriv,maxprob=maxprob,limbigprime=limbigprime)
> 1775 return gens
> 1776
>
> /home/rlmill/sage-4.6.2.alpha2/local/lib/python2.6/site-
> packages/sage/schemes/elliptic_curves/ell_number_field.pyc in
> simon_two_descent(self, verbose, lim1, lim3, limtriv, maxprob,
> limbigprime)
> 265
> 266 try:
> --> 267 result =
> self._simon_two_descent_data[lim1,lim3,limtriv,maxprob,limbigprime]
> 268 if verbose == 0:
> 269 return result
>
> KeyError: (6, 50, 10, 20, 30)
> }}}
>
> So two problems: 1) Over Q, if the result is not provable a RuntimeError
> is raised. This should be the same here. 2) One can't change parameters
> due to the way the output is being cached.
New description:
[See #15608 for a list of open simon_two_descent tickets]
{{{
sage: a = [1, 0, 1, -1751, -31352]
sage: F = EllipticCurve(a)
sage: K.<d> = QuadraticField(5)
sage: FK = EllipticCurve(K, a)
sage: F.gens()
[(52 : 111 : 1)]
sage: FK.gens()
[]
}}}
This isn't very good, because the default in Sage is proof=True, so one
would expect this to be a provable result (until reading the docs of
course).
Over Q, if the result is not provable an error is raised or a warning is
printed, depending on the `proof` flag. This should be the same here.
In earlier versions of Sage (< 6.0), there was also a bug with caching:
{{{
sage: FK.gens(lim1=6)
Traceback (most recent call last):
...
KeyError: (6, 50, 10, 20, 30)
}}}
--
Comment:
Given that the documentation no longer says that the points returned by
`gens()` are linearly independent or span a subgroup of full rank, this is
technically not a bug anymore, but there is still the inconsistency with
the similar function over '''Q'''. There seem to be three options:
1. close this ticket as invalid or wontfix;
2. use this ticket to print a warning or raise an error if `gens()`
returns something other than a basis for a subgroup of full rank in the
Mordell-Weil group;
3. rewrite this ticket with a more ambitious goal as in comment:6.
Any ideas?
--
Ticket URL: <http://trac.sagemath.org/ticket/10745#comment:9>
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/groups/opt_out.