#11023: Add proof=False and proof=True flags analytic_rank()
-------------------------------+--------------------------------------------
   Reporter:  weigandt         |       Owner:  weigandt  
       Type:  enhancement      |      Status:  new       
   Priority:  major            |   Milestone:  sage-4.7  
  Component:  elliptic curves  |    Keywords:  rank, gens
     Author:                   |    Upstream:  N/A       
   Reviewer:                   |      Merged:            
Work_issues:                   |  
-------------------------------+--------------------------------------------
Changes (by weigandt):

  * priority:  minor => major


Old description:

> If the analytic rank of an elliptic curve over QQ is computed to be 0, it
> is a theorem that the algebraic rank is 0, and we can set the generators
> to be []. This is not done.
>

> {{{
> sage: E=EllipticCurve([1, 0, 0, -1319539461660, -159402536950172400])
> sage: E.analytic_rank()
> 0
> sage: E.rank()
> Unable to compute the rank with certainty (lower bound=0).
> This could be because Sha(E/Q)[2] is nontrivial.
> Try calling something like two_descent(second_limit=13) on the
> curve then trying this command again.  You could also try rank
> with only_use_mwrank=False.
> ---------------------------------------------------------------------------
> BOOM!
>
> RuntimeError: Rank not provably correct.
>
> }}}
>
> We could also set the rank to 1 if the analytic rank is provably 1, but
> it seems customary only to set the rank when we can also set the
> generators, so that shouldn't be done until improved Heegner point
> functionality is available.

New description:

 If the analytic rank of an elliptic curve over QQ is computed to be 0, it
 is a theorem that the algebraic rank is 0, and we can set the generators
 to be []. This is not done.


 {{{
 sage: E=EllipticCurve([1, 0, 0, -1319539461660, -159402536950172400])
 sage: E.analytic_rank()
 0
 sage: E.rank()
 BOOM!
 RuntimeError: Rank not provably correct.
 }}}

 I suppose because analytic_rank() returns an integer that is *probably*
 the analytic rank, not *provably* the analytic rank. For example:

 {{{
 sage: EllipticCurve([0,0,1,-7,36]).analytic_rank()
 4
 }}}

 We should keep the current implementation under a flag of proof=False, and
 see how much can be said for proof=True. It seems like we should at least
 be able to prove that a curve of smallish conductor has analytic rank 0
 without too much trouble.

--

Comment:

 Ooops! I misread the documentation, which says that analytic_rank returns
 an integer that is *probably* the analytic rank of E, as opposed to
 *provably*.

 Perhaps the documentation should be changed to make this clearer. The
 letters b and v are right next to each other on the keyboard.

 Much like #1848 we should probably put a proof=False flag here with the
 current implementation and try to run something as provable as possible
 for a proof=True. It seems reasonable that this could be done at least in
 the case of analytic rank 0.

-- 
Ticket URL: <http://trac.sagemath.org/sage_trac/ticket/11023#comment:2>
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 post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/sage-trac?hl=en.

Reply via email to