Opened 11 years ago

# Add proof=False and proof=True flags analytic_rank() — at Version 2

Reported by: Owned by: weigandt weigandt major sage-6.4 elliptic curves rank, gens cremona, was N/A

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:1 Changed 11 years ago by weigandt

• Priority changed from major to minor

### comment:2 Changed 11 years ago by weigandt

• Description modified (diff)
• Priority changed from minor to major
• Summary changed from analytic_rank() should set rank() and gens() when it returns 0 to Add proof=False and proof=True flags analytic_rank()

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.

Note: See TracTickets for help on using tickets.