@@ -86,6 +86,7 @@ def mwrank_two_descent_work(E, two_tor_rk) -> tuple:
86
86
87
87
EXAMPLES::
88
88
89
+ sage: # needs sage.libs.eclib
89
90
sage: from sage.schemes.elliptic_curves.BSD import mwrank_two_descent_work
90
91
sage: E = EllipticCurve('14a')
91
92
sage: mwrank_two_descent_work(E, E.two_torsion_rank())
@@ -130,7 +131,7 @@ def pari_two_descent_work(E) -> tuple:
130
131
sage: pari_two_descent_work(E)
131
132
(0, 0, 0, 0, [])
132
133
sage: E = EllipticCurve('37a')
133
- sage: pari_two_descent_work(E) # random, up to sign
134
+ sage: pari_two_descent_work(E) # random, up to sign, needs sage.libs.eclib
134
135
(1, 1, 0, 0, [(0 : -1 : 1)])
135
136
sage: E = EllipticCurve('210e7')
136
137
sage: pari_two_descent_work(E)
@@ -215,6 +216,7 @@ def heegner_index_work(E) -> tuple:
215
216
216
217
EXAMPLES::
217
218
219
+ sage: # needs sage.libs.eclib
218
220
sage: from sage.schemes.elliptic_curves.BSD import heegner_index_work
219
221
sage: heegner_index_work(EllipticCurve('14a'))
220
222
(1, -31)
@@ -298,27 +300,31 @@ def prove_BSD(E, verbosity=0, two_desc='mwrank', proof=None, secs_hi=5,
298
300
299
301
EXAMPLES::
300
302
303
+ sage: # needs sage.libs.eclib
301
304
sage: EllipticCurve('11a').prove_BSD(verbosity=2)
302
305
p = 2: True by 2-descent
303
306
True for p not in {2, 5} by Kolyvagin.
304
307
Kolyvagin's bound for p = 5 applies by Lawson-Wuthrich
305
308
True for p = 5 by Kolyvagin bound
306
309
[]
307
310
311
+ sage: # needs sage.libs.eclib
308
312
sage: EllipticCurve('14a').prove_BSD(verbosity=2)
309
313
p = 2: True by 2-descent
310
314
True for p not in {2, 3} by Kolyvagin.
311
315
Kolyvagin's bound for p = 3 applies by Lawson-Wuthrich
312
316
True for p = 3 by Kolyvagin bound
313
317
[]
314
318
319
+ sage: # needs sage.libs.eclib
315
320
sage: E = EllipticCurve("20a1")
316
321
sage: E.prove_BSD(verbosity=2)
317
322
p = 2: True by 2-descent
318
323
True for p not in {2, 3} by Kolyvagin.
319
324
Kato further implies that #Sha[3] is trivial.
320
325
[]
321
326
327
+ sage: # needs sage.libs.eclib
322
328
sage: E = EllipticCurve("50b1")
323
329
sage: E.prove_BSD(verbosity=2)
324
330
p = 2: True by 2-descent
@@ -337,16 +343,19 @@ def prove_BSD(E, verbosity=0, two_desc='mwrank', proof=None, secs_hi=5,
337
343
338
344
We know nothing with proof=True::
339
345
346
+ sage: # needs sage.libs.eclib
340
347
sage: E.prove_BSD()
341
348
Set of all prime numbers: 2, 3, 5, 7, ...
342
349
343
350
We (think we) know everything with proof=False::
344
351
352
+ sage: # needs sage.libs.eclib
345
353
sage: E.prove_BSD(proof=False)
346
354
[]
347
355
348
356
A curve of rank 0 and prime conductor::
349
357
358
+ sage: # needs sage.libs.eclib
350
359
sage: E = EllipticCurve('19a')
351
360
sage: E.prove_BSD(verbosity=2)
352
361
p = 2: True by 2-descent
@@ -355,6 +364,7 @@ def prove_BSD(E, verbosity=0, two_desc='mwrank', proof=None, secs_hi=5,
355
364
True for p = 3 by Kolyvagin bound
356
365
[]
357
366
367
+ sage: # needs sage.libs.eclib
358
368
sage: E = EllipticCurve('37a')
359
369
sage: E.rank()
360
370
1
@@ -370,6 +380,7 @@ def prove_BSD(E, verbosity=0, two_desc='mwrank', proof=None, secs_hi=5,
370
380
371
381
We test the consistency check for the 2-part of Sha::
372
382
383
+ sage: # needs sage.libs.eclib
373
384
sage: E = EllipticCurve('37a')
374
385
sage: S = E.sha(); S
375
386
Tate-Shafarevich group for the Elliptic Curve defined by y^2 + y = x^3 - x
@@ -384,6 +395,7 @@ def prove_BSD(E, verbosity=0, two_desc='mwrank', proof=None, secs_hi=5,
384
395
385
396
An example with a Tamagawa number at 5::
386
397
398
+ sage: # needs sage.libs.eclib
387
399
sage: E = EllipticCurve('123a1')
388
400
sage: E.prove_BSD(verbosity=2)
389
401
p = 2: True by 2-descent
@@ -394,8 +406,9 @@ def prove_BSD(E, verbosity=0, two_desc='mwrank', proof=None, secs_hi=5,
394
406
395
407
A curve for which 3 divides the order of the Tate-Shafarevich group::
396
408
409
+ sage: # long time, needs sage.libs.eclib
397
410
sage: E = EllipticCurve('681b')
398
- sage: E.prove_BSD(verbosity=2) # long time
411
+ sage: E.prove_BSD(verbosity=2)
399
412
p = 2: True by 2-descent...
400
413
True for p not in {2, 3} by Kolyvagin....
401
414
Remaining primes:
@@ -406,6 +419,7 @@ def prove_BSD(E, verbosity=0, two_desc='mwrank', proof=None, secs_hi=5,
406
419
407
420
A curve for which we need to use ``heegner_index_bound``::
408
421
422
+ sage: # needs sage.libs.eclib
409
423
sage: E = EllipticCurve('198b')
410
424
sage: E.prove_BSD(verbosity=1, secs_hi=1)
411
425
p = 2: True by 2-descent
@@ -415,6 +429,7 @@ def prove_BSD(E, verbosity=0, two_desc='mwrank', proof=None, secs_hi=5,
415
429
The ``return_BSD`` option gives an object with detailed information
416
430
about the proof::
417
431
432
+ sage: # needs sage.libs.eclib
418
433
sage: E = EllipticCurve('26b')
419
434
sage: B = E.prove_BSD(return_BSD=True)
420
435
sage: B.two_tor_rk
@@ -432,21 +447,24 @@ def prove_BSD(E, verbosity=0, two_desc='mwrank', proof=None, secs_hi=5,
432
447
433
448
This was fixed by :issue:`8184` and :issue:`7575`::
434
449
450
+ sage: # needs sage.libs.eclib
435
451
sage: EllipticCurve('438e1').prove_BSD(verbosity=1)
436
452
p = 2: True by 2-descent...
437
453
True for p not in {2} by Kolyvagin.
438
454
[]
439
455
440
456
::
441
457
458
+ sage: # long time, needs sage.libs.eclib
442
459
sage: E = EllipticCurve('960d1')
443
- sage: E.prove_BSD(verbosity=1) # long time (4s on sage.math, 2011)
460
+ sage: E.prove_BSD(verbosity=1)
444
461
p = 2: True by 2-descent
445
462
True for p not in {2} by Kolyvagin.
446
463
[]
447
464
448
465
::
449
466
467
+ sage: # needs sage.libs.eclib
450
468
sage: E = EllipticCurve('66b3')
451
469
sage: E.prove_BSD(two_desc="pari",verbosity=1)
452
470
p = 2: True by 2-descent
0 commit comments