Thanks for the report. There are two things here:
1. confusing (or incorrect) caching. Clearly Sage should not blindly
cache returned gens when the descent was unsuccessful (or not proved
to be successful). I think the idea is, though, that if the descent
found some "generators" (independent points of infinite order) then
that information, and the points, are worth keeping, even if it has
not been proved that these points are a complete set of generators
(generating E(Q) up to finite index, or up to torsion).
In your example with the two repeated calls with proof=False, in the
second case you are in effect asking "give me the gens you have cached
tagged with the False flag if possible, otherwise do this computation
and cache the results with the flag set to False". That explains the
behaviour.
The logic of the caching code does try to handle this, by using the
proof parameter (which is None by default). There are (up to) two
different cached lists of points, one from a proof=True computation
and one from a proof=False. If you look at the first few lines of
code with E.gens?? you will see this.
An improvement to this may be possible. The underlying function which
does the work is E._compute_gens() which return points and also
True/False to indicate the status of these. Since computing the
actual generators involves calling code with a large number of
parameters, it is natural for a user to make repeated calls with
increased values of these (at least, the search bound parameters as in
your example) each time, but for this to work as you expect would
require a much more complicated set of caching keys together with code
to work out whether a new set of parameters was weaker or stronger
than any which have been run before. You are welcome to help
implement such a thing!
2. Disabling the cache is not possible without changing the code, but
you can rest it manually for each curve by
E._set_gens([])
and you can see what the cache holds with
E._EllipticCurve_rational_field__gens
(note that these methods start with an underscore to indicate that
they are internal and not normally intended for use by users).
John Cremona
> --
> You received this message because you are subscribed to the Google Groups
> "sage-support" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to
sage-support...@googlegroups.com.
> To post to this group, send email to
sage-s...@googlegroups.com.
> Visit this group at
https://groups.google.com/group/sage-support.
> For more options, visit
https://groups.google.com/d/optout.