The BSD Conjecture and Compution of ShafarevichTate Groups of Elliptic Curves
William Stein
University of Washington
$$
{\rm Sha}(E) = {\rm Ker}\left(H^1({\bf Q},E) \to \bigoplus_v H^1({\bf Q}_v, E)\right).
$$
This is joint work with Christian Wuthrich, students (Grigor Grigorov, Andrei Jorza, Stefan Patrikis, and Corina Tarnita),
with input from John Cremona, Ralph Greenberg, Robert Pollack, Michael Stoll, and Stephen Donnelly.
$$
\frac{L^{(r)}(E,1)}{r!} =
\frac{\#{\rm Sha}(E) \cdot \Omega_{E} \cdot {\rm Reg}_E}
{\#E({\bf Q})_{\rm tor}^2}
\cdot {\prod_{p\mid N} c_p},
$$
1. The Birch and SwinnertonDyer Conjecture
Let $E$ be an elliptic curve over $\bf Q$:
$$
y^2 + a_1 xy + a_3 y = x^3 + a_2 x^2 + a_4 x + a_6.
$$
The BSD conjecture asserts that

The rank $r$ of $E({\bf Q})$ equals $r_{\rm an} = {\rm ord}_{s=1}L(E,s)$.
 We have
$$
\frac{L^{(r)}(E,1)}{r!} =
\frac{\#{\rm Sha}(E) \cdot \Omega_{E} \cdot {\rm Reg}_E\cdot {\prod_{p\mid N} c_p},}
{\#E({\bf Q})_{\rm tor}^2}
$$
where $N$ is the conductor of $E$.
This talk is about computing quantities appearing in the above conjecture and
in $p$adic analogues of it.
Let's give it a shot...
First we look up a curve that will illustrate a range of methods
in Cremona's tables:
{{{
E = EllipticCurve('141a1') #auto load
}}}
Here's the equation of the curve:
{{{
show(E)
///
y^2 + y = x^3 + x^2  12x + 2
}}}
The conductor is a product of two primes: $141 = 3 \cdot 47$.
{{{
show(factor(141))
///
3 \cdot 47
}}}
The graph of the real points on the curve is connected (and pretty):
{{{
show(plot(E, hue=0.8, thickness=3))
}}}
We next plot a bunch of rational points on the curve using a 3d ray tracer (for fun).
Lighter points have larger height.
{{{
%hide # 3d plot of rational points
t = Tachyon(xres=800, yres=500, camera_center=(2,20,6), look_at=(2,5,2), raydepth=6)
t.light((25,3,2), 1, (1,1,1))
t.light((25,3,2), 1, (1,1,1))
t.light((25,3,10), 1, (1,1,1))
t.texture('black', color=(0,0,0))
t.texture('red', color=(1,0,0))
t.texture('white', color=(1,1,1))
t.plane((0,0,0),(0,0,1),'white')
t.cylinder((0,0,0),(1,0,0),.05,'black')
t.cylinder((0,0,0),(0,1,0),.05,'black')
F = E.change_ring(RDF)
P = E.point([3,4,1],check=False)
Q = P
n = 200
for i in range(n):
Q = Q + P
c = i/n + .1
t.texture('r%s'%i,color=(float(i/n),0,0))
t.sphere((Q[0], Q[1], .01), .1, 'r%s'%i)
show(t)
}}}
We use Tim Dokchitser's $L$functions program to compute with the $L$function of this elliptic curve.
{{{
L = E.Lseries_dokchitser(); L
///
Dokchitser Lfunction associated to Elliptic Curve defined by y^2 + y = x^3 + x^2  12*x + 2 over Rational Field
}}}
For example, here is the Taylor expansion about $z=(s1)$ of the $L$series.
{{{
T = L.taylor_series(a=1,k=4); show(T)
///
\text{0.718550172498336}z + \left(\text{0.0426008377591305}\right)z^{2} + \left(\text{0.322488300418669}\right)z^{3} + O(\text{z}^{4})
}}}
Of course the derivative at $1$ is consistent:
{{{
L.derivative(1)
///
0.718550172498336
}}}
Next we plot the $L$series:
{{{
P = plot(lambda x: real(L(x)), 1,3, rgbcolor=(1,0,0), thickness=3, plot_points=30)
show(P)
}}}
And it does in fact vanish at 1 because the sign in the functional equation
is $1$.
{{{
print 'eps = ', E.root_number()
print 'L(E,1) = ', E.Lseries_at1()
///
eps = 1
L(E,1) = 0
}}}
We can also compute the zeros of the $L$function
on the critical line using Mike Rubinstein's Lcalc program:
{{{
Z = E.Lseries_zeros(10)
show(point([(0.5, y) for y in Z], pointsize=50, hue=0.62), xmin=0, xmax=1)
}}}
Our curve has rank and analytic rank both 1, in accord with the conjecture.
{{{
E.analytic_rank()
///
1
}}}
{{{
E.rank()
///
1
}}}
We compute a generator of the MordellWeil group:
{{{
E.gens()
///
[(3 : 4 : 1)]
}}}
The regulator is as follows.
{{{
E.regulator()
///
0.0344867750175524
}}}
The Tamagawa number at $3$ is $7$.
{{{
E.tamagawa_numbers()
///
[7, 1]
}}}
The regulator $\Omega_E$ is about $2.9765$.
{{{
E.omega()
///
2.976504024814575615165574
}}}
The curve has trivial torsion subgroup, so $\# E({\bf Q}) = 1$.
{{{
E.torsion_order()
///
1
}}}
Now we put it all together:
$$
\frac{L^{(r)}(E,1)}{r!} =
\frac{\#{\rm Sha}(E) \cdot \Omega_{E} \cdot {\rm Reg}_E}
{\#E({\bf Q})_{\rm tor}^2}
\cdot {\prod_{p\mid N} c_p},
$$
{{{
L1 = L.derivative(1); r = 1; Omega = E.omega();
T = E.torsion_order(); Reg = E.regulator(); c = E.tamagawa_product()
print "L1 = ", L1
print "rhs = %s * Sha"%( (Omega * Reg * c)/T^2 )
///
L1 = 0.718550172498336
rhs = 0.718550172498336 * Sha
}}}
We Conclude
Thus the BSD conjecture asserts in this case that $\#{\rm Sha}(E)= 1$. We will
compute $\#{\rm Sha}(E)$ and hence
prove the conjecture. The methods we use are fairly general (assuming
that $r<2$), though much interesting work remains to be done.
$$
{\rm Sha}(E) = \ker\left(H^1({\bf Q},E) \to \bigoplus H^1({\bf Q}_v, E)\right).
$$
The 2Selmer Group
We can get some information about ${\rm Sha}(E)$ by
by computing the 2Selmer group.
From this we see that $\#{\rm Sha}$ is odd.
From the first calculation we see that the rank of the
elliptic curve is at most one.
{{{
E.selmer_rank_bound()
///
1
}}}
Since the curve is known to have rank 1, this means that ${\rm Sha}(E)[2] =0$.
{{{
E.two_selmer_shabound()
///
0
}}}
This talk is about how it is becoming
possible to in practice to systematically compute
much more about $\Sha(E)$.
Next: Theorems of Kolyvagin and Kato
The Explicit Upper Bounds of Kolyvagin and Kato
{{{
E = EllipticCurve('141a'); E #auto
///
Elliptic Curve defined by y^2 + y = x^3 + x^2  12*x + 2 over Rational Field
CPU time: 0.27 s, Wall time: 0.28 s
}}}
Kato's Explicit Bound
Refining work of Kato on Euler systems involving $K$groups of
elliptic curves, people (e.g., Matsuno, Wuthrich, etc.)
have obtained the following theorem:
Theorem (Refined Kato Bound):
Let $E$ be an elliptic curve with $L(E,1)\neq 0$.
Then
$$
\#{\rm Sha}(E) \leq C \cdot \frac{L(E,1)}{\Omega_E} \cdot
\frac{(\#E({\bf Q})_{\rm tors})^2}{\prod c_v}.
$$
Here $C$ is an integer such that if a prime $p$ divides $C$,
then either $p=2$, or $E$ has additive reduction at $p$,
or the mod $p$ representation $\overline{\rho}_{E,p}$ is irreducible
but not surjective. (Wuthrich proved last year that
if $\overline{\rho}_{E,p}$ is reducible then the BSD upper bound holds at $p$!)

For our curve 141a, the above theorem yields no information since
the analytic rank of our curve is 1.
{{{
E.Lseries(1)
///
0.000000000000000
}}}
{{{
E.analytic_rank()
///
1
}}}
{{{
E.shabound_kato()
///
False
}}}
SAGE has a command that gives all
primes for which $\overline{\rho}_{E,p}$ is not surjective, and why.
It uses results of Cojocaru, Kani, and Serre. This surjectivity
hypothesis is important in many of theorems we will discuss.
SAGE can also test for reducibility of $\overline{\rho}_{E,p}$
{{{
E.non_surjective()
///
[]
}}}
{{{
e = EllipticCurve('14a1')
e.non_surjective()
///
[(2, '2torsion'), (3, '3torsion')]
}}}
{{{
e.is_reducible(3)
///
True
}}}
Kolyvagin's Explicit Bound
Refined Version of Kolyvagin's Theorem
Suppose $E$ is a nonCM elliptic curve over ${\bf Q}$.
Suppose $K$ is a quadratic imaginary field that satisfies the
Heegner hypothesis and $p$ is an odd prime such that
$p\not\,\,\mid \#E'(K)_{\rm tor}$ for any curve $E'$
that is $\bf Q$isogenous to $E$.
Then
$$
{\rm ord}_p (\#{\rm Sha}(E)) \leq 2 {\rm ord}_p ([E(K): {\rm Z} y_K]),
$$
unless ${\rm disc}(K)$ is divisible by exactly one prime $\ell$, in
which case the conclusion is only valid if $p\neq \ell$. Here
$y_K \in E(K)$ is the Heegner point associated to $K$.

Kolyvagin's theorem tells us that $\#{\rm Sha}(E)$ divides $49$. This is a
huge statement: it tells us that either $\#{\rm Sha}(E)=1$ or $\#{\rm Sha}(E) = 49$.
{{{
E.shabound_kolyvagin(11)
///
([2, 7], 49)
}}}
The output of the shabound_kolyvagin command is a list of
primes that could possibly divide $\#{\rm Sha}(E)$, followed by the
square of odd part of the index $[E(K): {\rm Z} y_K]$.
Conclusion: Either $\#{\rm Sha}(E) = 1$ or $\#{\rm Sha}(E) = 49$.
Even using more Heegner discriminants doesn't help. In fact the BSD
conjecture implies that they are all divisible by $7$:
{{{
v = E.heegner_discriminants(200); v
///
[11, 20, 23, 35, 104, 107, 116, 152, 164, 167, 179]
}}}
{{{
for D in v:
E.heegner_index(D)
///
[48.999572 ... 49.000367]
[48.999633 ... 49.000306]
[48.999572 ... 49.000306]
[48.999633 ... 49.000367]
[0.000026629976 ... 0.000026629976]
[440.99609 ... 441.00293]
[48.999633 ... 49.000306]
[195.99853 ... 196.00098]
[0.000033440826 ... 0.000033440826]
[48.999633 ... 49.000245]
[48.999633 ... 49.000306]
}}}
Kolyvagin's Method does get us pretty far though...
{{{
for E in cremona_optimal_curves(range(1,100)):
print E.cremona_label(), E.shabound_kolyvagin(), E.tamagawa_numbers()
///
11a1 ([2, 5], 1) [5]
14a1 ([2, 3], 1) [2, 3]
15a1 ([2], 1) [2, 4]
17a1 ([2], 1) [4]
19a1 ([2, 3], 1) [3]
20a1 ([2, 3], 1) [3, 2]
21a1 ([2], 1) [4, 2]
24a1 ([2], 1) [4, 2]
26a1 ([2, 3], 1) [1, 3]
26b1 ([2, 7], 1) [7, 1]
27a1 (0, 0) [3]
30a1 ([2, 3], 1) [2, 3, 1]
32a1 (0, 0) [4]
33a1 ([2], 1) [2, 2]
34a1 ([2, 3], 1) [6, 1]
35a1 ([2, 3], 1) [1, 3]
36a1 (0, 0) [3, 2]
37a1 ([2], 1) [1]
37b1 ([2, 3], 1) [3]
38a1 ([2, 3], 1) [1, 3]
38b1 ([2, 5], 1) [5, 1]
39a1 ([2], 1) [2, 2]
40a1 ([2], 1) [2, 2]
42a1 ([2], 1) [8, 2, 1]
43a1 ([2], 1) [1]
44a1 ([2, 3], 1) [3, 1]
45a1 ([2], 1) [2, 1]
46a1 ([2], 1) [2, 1]
48a1 ([2], 1) [2, 2]
49a1 (0, 0) [2]
50a1 ([2, 3, 5], 1) [1, 3]
50b1 ([2, 3, 5], 1) [5, 1]
51a1 ([2, 3], 1) [3, 1]
52a1 ([2], 1) [1, 2]
53a1 ([2], 1) [1]
54a1 ([2, 3], 1) [1, 3]
54b1 ([2, 3], 1) [3, 1]
55a1 ([2], 1) [2, 2]
56a1 ([2], 1) [4, 1]
56b1 ([2], 1) [2, 1]
57a1 ([2], 1) [2, 1]
57c1 ([2, 5], 1) [10, 1]
57b1 ([2], 1) [2, 2]
58a1 ([2], 1) [2, 1]
58b1 ([2, 5], 1) [10, 1]
61a1 ([2], 1) [1]
62a1 ([2], 1) [4, 1]
63a1 ([2], 1) [2, 1]
64a1 (0, 0) [4]
65a1 ([2], 1) [1, 1]
66a1 ([2, 3], 1) [2, 3, 1]
66c1 ([2, 5], 25) [10, 5, 1]
66b1 ([2], 1) [4, 1, 1]
67a1 ([2], 1) [1]
69a1 ([2], 1) [2, 1]
70a1 ([2], 1) [4, 2, 1]
72a1 ([2], 1) [2, 4]
73a1 ([2], 1) [2]
75a1 ([2, 5], 1) [1, 1]
75c1 ([2, 5], 1) [5, 1]
75b1 ([2], 1) [1, 2]
76a1 ([2], 1) [1, 1]
77a1 ([2], 1) [2, 1]
77c1 ([2], 1) [1, 2]
77b1 ([2, 3], 1) [6, 1]
78a1 ([2], 1) [2, 1, 1]
79a1 ([2], 1) [1]
80a1 ([2], 1) [2, 2]
80b1 ([2, 3], 1) [1, 2]
82a1 ([2], 1) [2, 1]
83a1 ([2], 1) [1]
84a1 ([2, 3], 9) [3, 3, 2]
84b1 ([2], 1) [1, 1, 2]
85a1 ([2], 1) [2, 1]
88a1 ([2], 1) [4, 1]
89a1 ([2], 1) [1]
89b1 ([2], 1) [2]
90a1 ([2, 3], 1) [2, 2, 3]
90c1 ([2, 3], 1) [4, 4, 1]
90b1 ([2, 3], 1) [6, 2, 1]
91a1 ([2], 1) [1, 1]
91b1 ([2, 3], 1) [1, 1]
92a1 ([2, 3], 1) [3, 1]
92b1 ([2, 3], 9) [3, 1]
94a1 ([2], 1) [2, 1]
96a1 ([2], 1) [2, 2]
96b1 ([2], 1) [2, 2]
98a1 ([2, 3], 1) [2, 2]
99a1 ([2], 1) [2, 1]
99c1 ([2], 1) [2, 1]
99b1 ([2], 1) [4, 1]
99d1 ([2, 5], 1) [1, 1]
}}}
Next we compute all curves (of any rank) in Cremona's book
that have a prime $p\geq 5$ that divides a Tamagawa number.
For all other curves of rank $\leq 1$ in Cremona's book,
we are able to rule out the possibility that any other
primes divide $\#{\rm Sha}(E)$ using a calculation like
above and Kato's theorem (and 3descent). (This involves an
exciting mix of tricks and techniques  see my paper.)
{{{
v = []
for e in cremona_optimal_curves(range(1,1001)):
for c in e.tamagawa_numbers():
if c > 1 and max(prime_divisors(c)) >= 5:
v.append(e)
print e.cremona_label(), e.rank(use_database=True), \
prime_divisors(e.tamagawa_product())
print len(v)
///
11a1 0 [5]
26b1 0 [7]
38b1 0 [5]
50b1 0 [5]
57c1 0 [2, 5]
58b1 0 [2, 5]
66c1 0 [2, 5]
66c1 0 [2, 5]
75c1 0 [5]
110a1 0 [5]
110a1 0 [5]
114c1 0 [2, 5]
118b1 0 [2, 5]
123a1 1 [5]
141a1 1 [7]
155a1 1 [5]
158c1 0 [2, 5]
170c1 0 [3, 7]
174a1 0 [3, 7]
174b1 0 [7]
174b1 0 [7]
182a1 0 [2, 5]
186b1 0 [5]
186b1 0 [5]
190a1 1 [2, 11]
203a1 0 [5]
214a1 1 [7]
238a1 1 [2, 7]
246b1 0 [5]
246b1 0 [5]
258f1 0 [2, 7]
258f1 0 [2, 7]
258c1 1 [2, 5]
262a1 1 [11]
264d1 0 [2, 7]
270b1 0 [3, 5]
274a1 1 [7]
280b1 1 [2, 3, 5]
285a1 1 [2, 5]
286b1 1 [2, 13]
286d1 0 [2, 5]
286d1 0 [2, 5]
302a1 1 [3, 5]
302c1 1 [5]
303a1 1 [2, 7]
309a1 1 [5]
318d1 1 [2, 11]
322d1 1 [2, 5]
325e1 0 [5]
326b1 1 [5]
330d1 0 [2, 7]
345c1 0 [2, 5]
346b1 1 [7]
348d1 1 [3, 7]
350f1 1 [2, 3, 11]
354f1 1 [2, 7]
354e1 0 [2, 11]
357d1 1 [2, 7]
362b1 1 [7]
364a1 1 [3, 5]
366g1 1 [2, 5]
366b1 0 [5]
366b1 0 [5]
366d1 0 [7]
378g1 0 [5]
381a1 1 [5]
395c1 0 [5]
406d1 0 [2, 5]
408d1 1 [2, 5]
414d1 1 [2, 5]
418b1 1 [2, 13]
426a1 0 [5]
426a1 0 [5]
426c1 0 [3, 5]
430b1 1 [5]
430d1 1 [3, 5]
430d1 1 [3, 5]
434d1 1 [2, 5]
442e1 0 [2, 11]
446b1 1 [2, 7]
458b1 1 [2, 5]
462e1 1 [2, 3, 7]
470f1 1 [2, 3, 7]
470c1 1 [2, 7]
474b1 1 [2, 5]
483a1 0 [5]
490g1 1 [2, 5]
490j1 0 [2, 5]
494d1 1 [2, 3, 13]
497a1 1 [5]
498b1 1 [2, 5]
506f1 1 [13]
506d1 1 [5]
522g1 0 [2, 11]
522i1 1 [2, 5]
522j1 1 [2, 13]
522m1 0 [2, 11]
528i1 0 [2, 5]
530c1 1 [2, 5]
537e1 0 [2, 5]
542a1 0 [2, 7]
542b1 1 [7]
546f1 0 [7]
546f1 0 [7]
546f1 0 [7]
546e1 0 [17]
550i1 1 [2, 3, 7]
550j1 1 [2, 11]
550m1 0 [11]
551c1 1 [2, 7]
555b1 0 [3, 5]
558f1 1 [2, 3, 5]
558g1 1 [2, 7]
560b1 0 [5]
560e1 1 [2, 5]
561b1 1 [2, 5]
570j1 0 [2, 7]
570l1 0 [2, 5]
570l1 0 [2, 5]
570l1 0 [2, 5]
570d1 0 [2, 5]
573b1 0 [5]
574g1 1 [11]
574i1 1 [3, 7]
574i1 1 [3, 7]
574j1 0 [5]
574j1 0 [5]
582c1 1 [2, 5]
585i1 1 [2, 7]
588d1 0 [5]
594h1 0 [5]
594d1 1 [2, 5]
595b1 0 [7]
598d1 1 [2, 17]
600e1 1 [2, 3, 7]
605a1 1 [3, 5]
605c1 1 [5]
606f1 0 [5]
606f1 0 [5]
606d1 0 [7]
608e1 1 [2, 5]
615b1 1 [2, 7]
616b1 0 [2, 5]
618f1 1 [7, 11]
618f1 1 [7, 11]
618e1 1 [5]
618d1 1 [2, 3, 5]
620b1 1 [2, 3, 5]
622a1 1 [7]
624i1 0 [2, 5]
624e1 0 [2, 5]
629d1 1 [5]
630g1 0 [2, 7]
642c1 1 [2, 13]
650k1 1 [2, 3, 7]
651a1 0 [2, 5]
658e1 1 [2, 11]
665a1 1 [5]
665d1 1 [2, 5]
665d1 1 [2, 5]
666g1 0 [2, 23]
666e1 1 [2, 13]
666d1 1 [2, 5]
670a1 1 [11]
670c1 1 [5]
670d1 1 [19]
672b1 1 [2, 3, 5]
674c1 1 [31]
678c1 1 [2, 7]
678d1 0 [2, 7]
678d1 0 [2, 7]
681e1 1 [2, 5]
682b1 1 [3, 19]
690g1 0 [2, 7]
690j1 0 [2, 5]
690e1 1 [2, 5]
696c1 1 [2, 5]
700d1 1 [2, 3, 5]
702j1 0 [11]
702k1 1 [3, 7]
702m1 1 [3, 19]
702l1 1 [2, 3, 5]
705b1 1 [3, 5]
705e1 1 [5]
706b1 1 [23]
706d1 1 [2, 5]
710c1 1 [2, 7]
710b1 1 [2, 17]
710d1 0 [2, 5]
710d1 0 [2, 5]
714c1 0 [5]
714e1 0 [7]
715b1 1 [3, 7]
726g1 1 [2, 3, 5]
726e1 1 [2, 5]
730i1 1 [7]
730j1 1 [3, 7]
734a1 0 [2, 5]
735f1 1 [2, 3, 7]
738f1 1 [2, 11]
738h1 0 [2, 7]
738e1 1 [2, 5]
741c1 0 [11]
741d1 0 [2, 5]
742g1 1 [2, 5]
742e1 1 [2, 5]
755f1 0 [13]
760b1 0 [2, 7]
762g1 0 [2, 3, 7]
762g1 0 [2, 3, 7]
762e1 1 [2, 3, 11]
762d1 1 [2, 5]
770c1 0 [2, 5]
774h1 0 [2, 7]
777g1 1 [2, 5]
777e1 1 [5]
780b1 0 [5]
782c1 0 [2, 7]
782e1 0 [2, 5]
786h1 1 [2, 7]
786j1 1 [3, 7]
786m1 0 [3, 5]
786m1 0 [3, 5]
786l1 1 [5, 7]
786l1 1 [5, 7]
794c1 1 [5]
795c1 0 [3, 5]
798g1 1 [2, 3, 5]
798h1 1 [2, 3, 7]
798c1 1 [2, 5]
798d1 1 [2, 5]
804d1 1 [3, 7]
806f1 0 [2, 5]
806f1 0 [2, 5]
806c1 1 [2, 5]
806d1 1 [2, 3, 11]
810g1 0 [3, 5]
814b1 1 [5]
816i1 1 [2, 11]
817b1 1 [2, 5]
822d1 1 [2, 5]
830c1 1 [2, 5]
831a1 1 [2, 5]
834f1 1 [2, 7]
834g1 1 [2, 5]
834g1 1 [2, 5]
834a1 0 [2, 7]
840d1 0 [2, 5]
842b1 1 [13]
850l1 1 [2, 7]
850d1 1 [2, 7]
854d1 1 [2, 3, 7]
858f1 1 [2, 5, 11]
858f1 1 [2, 5, 11]
858k1 0 [2, 7]
858k1 0 [2, 7]
858k1 0 [2, 7]
858l1 0 [2, 7]
861c1 1 [5, 7]
861c1 1 [5, 7]
861b1 1 [17]
861d1 1 [5]
862e1 1 [2, 5]
870f1 1 [2, 5, 7]
870f1 1 [2, 5, 7]
870i1 0 [2, 5]
870i1 0 [2, 5]
870i1 0 [2, 5]
874f1 0 [3, 7]
874e1 1 [5]
874e1 1 [5]
874d1 1 [5]
876b1 1 [3, 5]
880g1 1 [2, 5]
882h1 1 [2, 3, 5]
882j1 0 [2, 5]
885d1 1 [5]
885d1 1 [5]
886e1 1 [5]
886d1 1 [2, 19]
890f1 1 [13]
890g1 1 [5]
890g1 1 [5]
894f1 1 [5]
894g1 1 [7, 11]
894g1 1 [7, 11]
894c1 0 [3, 5]
894e1 1 [2, 23]
897e1 1 [2, 5]
897d1 1 [2, 3, 5]
901e1 1 [3, 5]
905b1 0 [5]
906h1 1 [5, 11]
906h1 1 [5, 11]
906e1 0 [5]
910f1 1 [2, 5, 11]
910f1 1 [2, 5, 11]
910g1 1 [2, 5]
910h1 1 [2, 3, 17]
910k1 1 [2, 5, 7]
910k1 1 [2, 5, 7]
912h1 1 [2, 5]
915a1 0 [7]
918h1 1 [3, 11]
918j1 1 [2, 3, 5]
920a1 1 [2, 3, 5]
924f1 0 [5]
924h1 1 [3, 5]
924b1 1 [3, 5]
924e1 1 [3, 5]
930f1 0 [11]
930h1 1 [2, 3, 5]
930d1 1 [2, 7]
933b1 1 [11]
934b1 0 [3, 5]
938b1 1 [2, 5]
939c1 1 [5]
942c1 1 [2, 5]
946c1 0 [2, 5]
954i1 1 [2, 5]
954h1 1 [2, 7]
954j1 1 [2, 17]
966h1 0 [5]
966b1 0 [5]
974h1 1 [3, 5]
975i1 1 [2, 3, 7]
975j1 1 [2, 5]
978f1 1 [2, 11]
978g1 1 [2, 7]
986e1 1 [2, 5, 7]
986e1 1 [2, 5, 7]
987e1 1 [2, 3, 5]
987d1 0 [7]
988b1 1 [3, 13]
990l1 0 [7]
996b1 1 [3, 13]
336
}}}
Another Example: 894e1
Another difficult example is the curve 894e1.
 It has rank 1, so Kato doesn't
apply.
 Refined Kolyvagin shows that $\#{\rm Sha}(E)$ is either trivial or of
order $23^2$. But we'll probably never directly compute the $23$Selmer group.
 The fist Heegner discriminant gives no information, since $E(K)$ has rank $>1$.
{{{
e = EllipticCurve('894e1'); e.rank()
///
1
}}}
{{{
e.shabound_kolyvagin()
///
(0, 0)
}}}
{{{
e.heegner_discriminants(100)
///
[47, 95]
}}}
{{{
e.heegner_index(47)
///
[0.00018561213 ... 0.00018561213]
}}}
{{{
e.heegner_index(95)
///
[2115.9843 ... 2116.0118]
}}}
{{{
e.shabound_kolyvagin(95)
///
([2, 23], 529)
}}}
{{{
e.is_good(23) and e.is_ordinary(23)
///
True
}}}
{{{
e.padic_regulator(23,5) # !!!!
///
12*23^1 + 14 + 10*23 + 16*23^2 + 20*23^3 + 8*23^4 + O(23^5)
}}}
{{{
}}}
{{{
}}}
Iwasawa theory and $p$adic Analogues of the BSD Conjecture
Christian Wuthrich and I are finishing a paper right now called Computations
About TateShafarevich Groups Using Iwasawa Theory, which combines a range of
theorems of Kato, PerrinRiou, Schneider, and others to prove the following
result in the rank 1 case (among other things):
Theorem (padic Iwasawastyle bound):
Let $E$ be an elliptic curve over ${\bf Q}$ with analytic rank $1$
having good ordinary reduction
at an odd prime $p$. Suppose that representation
$\overline{\rho}_{E,p}$ is either
surjective or reducible and that the $p$adic regulator ${\rm Reg}_p(E)$
is nonzero. Then
$$
{\rm ord}_p(\#{\rm Sha}(E/{\bf Q})) \leq {\rm ord}_p\left(\mbox{the BSD conjectural order of Sha}\right).
$$

NOTE: I didn't mention either Iwasawa theory or $p$adic $L$functions in the
statement of the theorem! However, there is an important
refinement of this theorem at bad multiplicative and supersingular primes, which
gives an explicit bound in terms of certain $p$adic regulators that we will not define here.
The case of primes of additive reduction remains problematic.
{{{
E = EllipticCurve('141a'); E #auto
///
Elliptic Curve defined by y^2 + y = x^3 + x^2  12*x + 2 over Rational Field
}}}
{{{
show(factor(141))
///
3 \cdot 47
}}}
Note that 7 is a prime of good ordinary reduction for $E$:
{{{
E.is_good(7), E.is_ordinary(7)
///
(True, True)
}}}
Next we compute the $7$adic regulator and verify that it is nonzero. Due to a recent
paper of MazurSteinTate that builds on Kedlaya's algorithm, and much optimization
work of David Harvey,
SAGE can quite quickly compute $p$adic heights to very high precision and
for surprisingly large $p$.
{{{
time reg7 = E.padic_regulator(7,6)
show(reg7)
///
4\cdot 7^{1} + 3 + 4\cdot 7 + 6\cdot 7^{2} + 3\cdot 7^{3} + 3\cdot 7^{4} + 3\cdot 7^{5} + O(7^{6})
CPU time: 0.25 s, Wall time: 0.26 s
}}}
Since $p=7$ is a good ordinary prime and $E$ has rank $1$, it's not necessary to
compute the $7$adic $L$function of $E$. Nonetheless we do that for fun (and it
would have been needed if $p$ were supersingular or a prime of multiplicative
reduction):
{{{
L7 = E.padic_lseries(7,prec=6); L7
///
7adic Lseries of Elliptic Curve defined by y^2 + y = x^3 + x^2  12*x + 2 over Rational Field
}}}
{{{
show(L7.approx(3))
///
\left(1 + 3\cdot 7 + 6\cdot 7^{2} + 3\cdot 7^{3} + 3\cdot 7^{4} + 6\cdot 7^{5} + O(7^{6})\right)T + \left(6\cdot 7 + 5\cdot 7^{2} + 6\cdot 7^{4} + 6\cdot 7^{5} + O(7^{6})\right)T^{2} + \left(6 + 4\cdot 7 + 2\cdot 7^{3} + 5\cdot 7^{4} + 2\cdot 7^{5} + O(7^{6})\right)T^{3} + O(\text{T}^{4})
}}}
ASIDE: There is a formula of PerrinRiou that one could also use to compute $\mathcal{L}_p'(E,0)$ when
$p$ is good ordinary:
$$
\frac{1}{\Reg(E/\QQ)} \cdot \frac{L'(E,1)}{\Omega_E} =\frac{1}{\Reg_p(E/\QQ)}\cdot \frac{\mathcal{L}_p'(E,0)}{(1\frac{1}{\alpha})^2\cdot \log(\kappa(\gamma))}
$$
which is an equality of rational numbers.
This formula is why we didn't have to mention $p$adic $L$functions
in the theorem above.
{{{
}}}
{{{
}}}
BSD is true for 141a
Summary of Proof:
 For $p=2$: Cremona verified this several years ago via a $2$descent.
 For all $p\geq 3$ with $p\neq 7$: Kolyvagin's bound implies that $p\not\,\,\mid \#{\rm Sha}(E)$.
 For $p=7$: we computed the $7$adic regulator, found that it was nonzero. Then using
that the mod$7$ representation is surjective, the bounds coming from Iwasawa
theory, and thoerems of Kato, PerrinRiou, Schneider, and others imply that ${\rm ord}_7({\rm Sha}(E)) =0$.
 We conclude that the full BSD conjecture is true for the elliptic curve 141a.
Key Point
Applying the general theory is now fairly straightforward. Combining together
the wide range of theorems people have proved toward BSD gives quite a lot, and illustrates
and motivates work to fill in the remaining gaps.
Summary of Results and The Goal
Theorem 1 (Stein and Grigorov, Jorza, Patrikis, Tarnita)
Theorem 1:
Suppose that $E$ is a nonCM elliptic curve of rank $\leq 1$,
conductor $\leq 1000$ and that $p$ is a prime. If $p$ is odd,
assume further that the mod $p$ representation $\overline{\rho}_{E,p}$ is
irreducible and $p$ does not divide any Tamagawa number of $E$. Then
${\rm BSD}(E,p)$ is true.

 The proof involves combining refinements of the theorems of Kolyvagin and Kato with
explicit 2 and 3descents.
 Much work goes into just making this computation
practical.
 One can completely carry it out using SAGE, except for the 3descents,
which rely on code that Michael Stoll wrote for MAGMA, and three 4Selmer
group computations, which are also available nowhere but in MAGMA. These
are the only curves in Cremona's book that conjecturally have nontrivial Sha:
571a 681b 960d 960n
4 9 4 4
Theorem 2 (Stein and Lum)
Theorem 2:
Suppose that $E$ is a CM elliptic curve of rank $\leq 1$ (59 rank 0 and 56 rank 1),
conductor $\leq 5000$ and that $p\geq 5$ is a prime of good reduction for $E$.
Then ${\rm BSD}(E,p)$ is true.

 The proof in the rank 0 case is basically an application of a theorem of Rubin.
 When $E$ has rank 1, a theorem of Mazur and SwinnertonDyer gives ${\rm BSD}(E,p)$ at split primes, and
for inert primes we do an explicit Heegner point calculation and use Kolyvagin's
bound.
Anticipated Theorem 3 (Stein and Wuthrich)
Anticipaed Theorem 3:
Suppose that $E$ is a nonCM elliptic curve of rank $\leq 1$,
conductor $\leq 1000$ and that $p\geq 5$ is a prime that divides
a Tamagawa number of $E$ or such that the mod $p$ representation
$\overline{\rho}_{E,p}$ is reducible. Assume further that $E$ has
good ordinary or bad multiplicative reduction at $p$. Then
${\rm BSD}(E,p)$ is true.
 
 Wuthrich implemented a program that should
do this in Magma, and I am close to finishing one
that does it in SAGE.
Once we finish the proof of Theorem 3, we will almost have:
Eventual Goal:
Suppose that $E$ is an elliptic curve of rank $\leq 1$ in Cremona's book.
Then the full Birch and SwinnertonDyer conjecture is true for $E$.
 
In theory, all that remains is to deal with pairs $(E,p)$ with $p\geq 5$ such that:
 $E$ is a CM elliptic curve of rank $1$ with conductor divisible by $p$, or
 $E$ is a nonCM curve with additive reduction at $p$ such that either
 $p$ divides a Tamagawa number of $E$, or
 the representation $\overline{\rho}_{E,p}$ is reducible.
What is Left?
We finish the talk by computing all pairs $(E,p)$ in Cremona's book so that none of the
above results (or their known refiniments) prove ${\rm BSD}(E,p)$.
This is a concrete
challenge.
We first compute a list of all the (optimal) curves in Cremona's book:
{{{
cremona = list(cremona_optimal_curves(range(1,1001)))
}}}
There are 2463 of them.
{{{
len(cremona)
///
2463
}}}
Only 44 have CM.
{{{
cm = [e for e in cremona if e.has_cm()]
len(cm)
///
44
}}}
Of these, 19 have rank 1:
{{{
cm1 = [e for e in cm if e.rank() == 1]; len(cm1)
///
19
}}}
{{{
bad_cm = []
for e in cm1:
for p in prime_divisors(e.conductor()):
if p >= 5:
bad_cm.append((e.cremona_label(), p))
print len(bad_cm)
print Sequence(bad_cm, cr=True)
///
10
[
('121b1', 11),
('225a1', 5),
('361a1', 19),
('441b1', 7),
('441d1', 7),
('675a1', 5),
('784h1', 7),
('800h1', 5),
('800a1', 5),
('900c1', 5)
]
}}}
{{{
bad_noncm = []
for e in cremona:
if not e.has_cm():
for p, f in factor(e.conductor()):
if p >= 5 and f >= 2: # additive prime >= 5.
c = e.tamagawa_product()
if c % p == 0:
z = (e.cremona_label(), p, 'tamagawa'); print z
bad_noncm.append(z)
else:
if e.is_reducible(p):
z = (e.cremona_label(), p); print z
bad_noncm.append(z)
print len(bad_noncm)
///
('50a1', 5)
('50b1', 5, 'tamagawa')
('75a1', 5)
('75c1', 5, 'tamagawa')
('121a1', 11)
('121c1', 11)
('150a1', 5)
('150b1', 5)
('175a1', 5)
('175c1', 5)
('225e1', 5)
('225d1', 5)
('275b1', 5)
('294a1', 7)
('294b1', 7)
('325e1', 5, 'tamagawa')
('325d1', 5)
('400b1', 5)
('400c1', 5)
('450a1', 5)
('450b1', 5)
('450c1', 5)
('450d1', 5)
('490f1', 7)
('490k1', 7)
('550f1', 5)
('550k1', 5)
('550b1', 5)
('637a1', 7)
('637c1', 7)
('700d1', 5, 'tamagawa')
('735f1', 7, 'tamagawa')
('775c1', 5)
('882c1', 7)
('882d1', 7)
('950a1', 5)
('975j1', 5, 'tamagawa')
37
}}}
Tim Dokchitser and I are tentatively planning to run a workshop somewhere
in about a year on the BSD conjecture, from a half/half theoretical/computational
perspective. If you're interested, let me know.