Loading [MathJax]/jax/output/HTML-CSS/jax.js

The Riemann Hypothesis and The Birch and Swinnerton-Dyer Conjecture

AuthorWilliam Stein
Date2017-02-10T20:54:40
Project6cd832d3-c523-41e3-9e54-c8f2d2e8fa2a
Locationtravel/2017/2017-02/rochester/talk-3-bsd-rh/talk-3-rh-bsd.sagews
Original filetalk-3-rh-bsd.sagews

The Riemann Hypothesis and The Birch and Swinnerton-Dyer Conjecture

or

Counting Prime Numbers and Counting Points on Cubic Curves

by William Stein

Feb 10, 2017

SageMath, Inc. and University of Washington (Seattle)


Screencast: https://youtu.be/NrIuFh8OV7s

Video: https://youtu.be/oHyelBHHhAQ

The primes up to X:

prime_range(10000)
[2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113, 127, 131, 137, 139, 149, 151, 157, 163, 167, 173, 179, 181, 191, 193, 197, 199, 211, 223, 227, 229, 233, 239, 241, 251, 257, 263, 269, 271, 277, 281, 283, 293, 307, 311, 313, 317, 331, 337, 347, 349, 353, 359, 367, 373, 379, 383, 389, 397, 401, 409, 419, 421, 431, 433, 439, 443, 449, 457, 461, 463, 467, 479, 487, 491, 499, 503, 509, 521, 523, 541, 547, 557, 563, 569, 571, 577, 587, 593, 599, 601, 607, 613, 617, 619, 631, 641, 643, 647, 653, 659, 661, 673, 677, 683, 691, 701, 709, 719, 727, 733, 739, 743, 751, 757, 761, 769, 773, 787, 797, 809, 811, 821, 823, 827, 829, 839, 853, 857, 859, 863, 877, 881, 883, 887, 907, 911, 919, 929, 937, 941, 947, 953, 967, 971, 977, 983, 991, 997, 1009, 1013, 1019, 1021, 1031, 1033, 1039, 1049, 1051, 1061, 1063, 1069, 1087, 1091, 1093, 1097, 1103, 1109, 1117, 1123, 1129, 1151, 1153, 1163, 1171, 1181, 1187, 1193, 1201, 1213, 1217, 1223, 1229, 1231, 1237, 1249, 1259, 1277, 1279, 1283, 1289, 1291, 1297, 1301, 1303, 1307, 1319, 1321, 1327, 1361, 1367, 1373, 1381, 1399, 1409, 1423, 1427, 1429, 1433, 1439, 1447, 1451, 1453, 1459, 1471, 1481, 1483, 1487, 1489, 1493, 1499, 1511, 1523, 1531, 1543, 1549, 1553, 1559, 1567, 1571, 1579, 1583, 1597, 1601, 1607, 1609, 1613, 1619, 1621, 1627, 1637, 1657, 1663, 1667, 1669, 1693, 1697, 1699, 1709, 1721, 1723, 1733, 1741, 1747, 1753, 1759, 1777, 1783, 1787, 1789, 1801, 1811, 1823, 1831, 1847, 1861, 1867, 1871, 1873, 1877, 1879, 1889, 1901, 1907, 1913, 1931, 1933, 1949, 1951, 1973, 1979, 1987, 1993, 1997, 1999, 2003, 2011, 2017, 2027, 2029, 2039, 2053, 2063, 2069, 2081, 2083, 2087, 2089, 2099, 2111, 2113, 2129, 2131, 2137, 2141, 2143, 2153, 2161, 2179, 2203, 2207, 2213, 2221, 2237, 2239, 2243, 2251, 2267, 2269, 2273, 2281, 2287, 2293, 2297, 2309, 2311, 2333, 2339, 2341, 2347, 2351, 2357, 2371, 2377, 2381, 2383, 2389, 2393, 2399, 2411, 2417, 2423, 2437, 2441, 2447, 2459, 2467, 2473, 2477, 2503, 2521, 2531, 2539, 2543, 2549, 2551, 2557, 2579, 2591, 2593, 2609, 2617, 2621, 2633, 2647, 2657, 2659, 2663, 2671, 2677, 2683, 2687, 2689, 2693, 2699, 2707, 2711, 2713, 2719, 2729, 2731, 2741, 2749, 2753, 2767, 2777, 2789, 2791, 2797, 2801, 2803, 2819, 2833, 2837, 2843, 2851, 2857, 2861, 2879, 2887, 2897, 2903, 2909, 2917, 2927, 2939, 2953, 2957, 2963, 2969, 2971, 2999, 3001, 3011, 3019, 3023, 3037, 3041, 3049, 3061, 3067, 3079, 3083, 3089, 3109, 3119, 3121, 3137, 3163, 3167, 3169, 3181, 3187, 3191, 3203, 3209, 3217, 3221, 3229, 3251, 3253, 3257, 3259, 3271, 3299, 3301, 3307, 3313, 3319, 3323, 3329, 3331, 3343, 3347, 3359, 3361, 3371, 3373, 3389, 3391, 3407, 3413, 3433, 3449, 3457, 3461, 3463, 3467, 3469, 3491, 3499, 3511, 3517, 3527, 3529, 3533, 3539, 3541, 3547, 3557, 3559, 3571, 3581, 3583, 3593, 3607, 3613, 3617, 3623, 3631, 3637, 3643, 3659, 3671, 3673, 3677, 3691, 3697, 3701, 3709, 3719, 3727, 3733, 3739, 3761, 3767, 3769, 3779, 3793, 3797, 3803, 3821, 3823, 3833, 3847, 3851, 3853, 3863, 3877, 3881, 3889, 3907, 3911, 3917, 3919, 3923, 3929, 3931, 3943, 3947, 3967, 3989, 4001, 4003, 4007, 4013, 4019, 4021, 4027, 4049, 4051, 4057, 4073, 4079, 4091, 4093, 4099, 4111, 4127, 4129, 4133, 4139, 4153, 4157, 4159, 4177, 4201, 4211, 4217, 4219, 4229, 4231, 4241, 4243, 4253, 4259, 4261, 4271, 4273, 4283, 4289, 4297, 4327, 4337, 4339, 4349, 4357, 4363, 4373, 4391, 4397, 4409, 4421, 4423, 4441, 4447, 4451, 4457, 4463, 4481, 4483, 4493, 4507, 4513, 4517, 4519, 4523, 4547, 4549, 4561, 4567, 4583, 4591, 4597, 4603, 4621, 4637, 4639, 4643, 4649, 4651, 4657, 4663, 4673, 4679, 4691, 4703, 4721, 4723, 4729, 4733, 4751, 4759, 4783, 4787, 4789, 4793, 4799, 4801, 4813, 4817, 4831, 4861, 4871, 4877, 4889, 4903, 4909, 4919, 4931, 4933, 4937, 4943, 4951, 4957, 4967, 4969, 4973, 4987, 4993, 4999, 5003, 5009, 5011, 5021, 5023, 5039, 5051, 5059, 5077, 5081, 5087, 5099, 5101, 5107, 5113, 5119, 5147, 5153, 5167, 5171, 5179, 5189, 5197, 5209, 5227, 5231, 5233, 5237, 5261, 5273, 5279, 5281, 5297, 5303, 5309, 5323, 5333, 5347, 5351, 5381, 5387, 5393, 5399, 5407, 5413, 5417, 5419, 5431, 5437, 5441, 5443, 5449, 5471, 5477, 5479, 5483, 5501, 5503, 5507, 5519, 5521, 5527, 5531, 5557, 5563, 5569, 5573, 5581, 5591, 5623, 5639, 5641, 5647, 5651, 5653, 5657, 5659, 5669, 5683, 5689, 5693, 5701, 5711, 5717, 5737, 5741, 5743, 5749, 5779, 5783, 5791, 5801, 5807, 5813, 5821, 5827, 5839, 5843, 5849, 5851, 5857, 5861, 5867, 5869, 5879, 5881, 5897, 5903, 5923, 5927, 5939, 5953, 5981, 5987, 6007, 6011, 6029, 6037, 6043, 6047, 6053, 6067, 6073, 6079, 6089, 6091, 6101, 6113, 6121, 6131, 6133, 6143, 6151, 6163, 6173, 6197, 6199, 6203, 6211, 6217, 6221, 6229, 6247, 6257, 6263, 6269, 6271, 6277, 6287, 6299, 6301, 6311, 6317, 6323, 6329, 6337, 6343, 6353, 6359, 6361, 6367, 6373, 6379, 6389, 6397, 6421, 6427, 6449, 6451, 6469, 6473, 6481, 6491, 6521, 6529, 6547, 6551, 6553, 6563, 6569, 6571, 6577, 6581, 6599, 6607, 6619, 6637, 6653, 6659, 6661, 6673, 6679, 6689, 6691, 6701, 6703, 6709, 6719, 6733, 6737, 6761, 6763, 6779, 6781, 6791, 6793, 6803, 6823, 6827, 6829, 6833, 6841, 6857, 6863, 6869, 6871, 6883, 6899, 6907, 6911, 6917, 6947, 6949, 6959, 6961, 6967, 6971, 6977, 6983, 6991, 6997, 7001, 7013, 7019, 7027, 7039, 7043, 7057, 7069, 7079, 7103, 7109, 7121, 7127, 7129, 7151, 7159, 7177, 7187, 7193, 7207, 7211, 7213, 7219, 7229, 7237, 7243, 7247, 7253, 7283, 7297, 7307, 7309, 7321, 7331, 7333, 7349, 7351, 7369, 7393, 7411, 7417, 7433, 7451, 7457, 7459, 7477, 7481, 7487, 7489, 7499, 7507, 7517, 7523, 7529, 7537, 7541, 7547, 7549, 7559, 7561, 7573, 7577, 7583, 7589, 7591, 7603, 7607, 7621, 7639, 7643, 7649, 7669, 7673, 7681, 7687, 7691, 7699, 7703, 7717, 7723, 7727, 7741, 7753, 7757, 7759, 7789, 7793, 7817, 7823, 7829, 7841, 7853, 7867, 7873, 7877, 7879, 7883, 7901, 7907, 7919, 7927, 7933, 7937, 7949, 7951, 7963, 7993, 8009, 8011, 8017, 8039, 8053, 8059, 8069, 8081, 8087, 8089, 8093, 8101, 8111, 8117, 8123, 8147, 8161, 8167, 8171, 8179, 8191, 8209, 8219, 8221, 8231, 8233, 8237, 8243, 8263, 8269, 8273, 8287, 8291, 8293, 8297, 8311, 8317, 8329, 8353, 8363, 8369, 8377, 8387, 8389, 8419, 8423, 8429, 8431, 8443, 8447, 8461, 8467, 8501, 8513, 8521, 8527, 8537, 8539, 8543, 8563, 8573, 8581, 8597, 8599, 8609, 8623, 8627, 8629, 8641, 8647, 8663, 8669, 8677, 8681, 8689, 8693, 8699, 8707, 8713, 8719, 8731, 8737, 8741, 8747, 8753, 8761, 8779, 8783, 8803, 8807, 8819, 8821, 8831, 8837, 8839, 8849, 8861, 8863, 8867, 8887, 8893, 8923, 8929, 8933, 8941, 8951, 8963, 8969, 8971, 8999, 9001, 9007, 9011, 9013, 9029, 9041, 9043, 9049, 9059, 9067, 9091, 9103, 9109, 9127, 9133, 9137, 9151, 9157, 9161, 9173, 9181, 9187, 9199, 9203, 9209, 9221, 9227, 9239, 9241, 9257, 9277, 9281, 9283, 9293, 9311, 9319, 9323, 9337, 9341, 9343, 9349, 9371, 9377, 9391, 9397, 9403, 9413, 9419, 9421, 9431, 9433, 9437, 9439, 9461, 9463, 9467, 9473, 9479, 9491, 9497, 9511, 9521, 9533, 9539, 9547, 9551, 9587, 9601, 9613, 9619, 9623, 9629, 9631, 9643, 9649, 9661, 9677, 9679, 9689, 9697, 9719, 9721, 9733, 9739, 9743, 9749, 9767, 9769, 9781, 9787, 9791, 9803, 9811, 9817, 9829, 9833, 9839, 9851, 9857, 9859, 9871, 9883, 9887, 9901, 9907, 9923, 9929, 9931, 9941, 9949, 9967, 9973]
@interactdef _(B=20):    print prime_range(B)

Question: How are the prime numbers distributed amongst all numbers?

Consider the “Staircase of Primes”:

π(x)=#{p prime with px}

plot(prime_pi, 0, 100000)
# in sage prime_pi is the "pi(x)" above...def staircase(B, d=75):    g = plot(prime_pi, 0, B, gridlines=True)    g += points([(p,0) for p in prime_range(B+1)], color='red', pointsize=d)    show(g)
staircase(25)
staircase(100)
staircase(1000, 20)

Up close, distribution of primes look very unpredictable.

prime_range(1990, 2050)
[1993, 1997, 1999, 2003, 2011, 2017, 2027, 2029, 2039]

But from a distance things look shockingly clean:

plot(prime_pi, 0, 6*10^6)

The nice clean smooth-from-a-distance plot is just begging to be understood.

This is what RH is about.

The Prime Number Theorem: π(x)x/log(x)

So how about:

A first guess: The above plot “is basically” x/log(x).

(Issue: how can we decide if we are right or wrong?)

@interactdef _(B=100):    show( plot(prime_pi, 0, B) + plot(x/log(x), (2,B), color='red') )
# PNT (which is a Theorem) seems plausible, but does NOT answer the# obvious challenge -- it's too low.float(prime_pi(10^8)/(10^8/log(10^8)))float(prime_pi(10^9)/(10^9/log(10^9)))float(prime_pi(10^10)/(10^10/log(10^10)))
1.0612992317564809 1.053726964235171 1.047797128358109
g = plot(prime_pi, 0, 10^6)g += plot(x/(log(x)-1), 3, 10^6, color='red')show(g)
B = 10^10prime_pi(B), float(B/(log(B)-1))
(455052511, 454011971.2880956)

However, x/(log(x)1) is much better (it’s the best you can get):

@interactdef _(B=100):    show( plot(prime_pi, 0, B) + plot(x/(log(x)-1), (3,B), color='red') )

Second guess: The above plot of π(x) “is basically” the (offset) Logarithmic integral Li(x)=x2dtlog(t).

@interactdef _(B=100):    show( plot(prime_pi, 0, B) + plot(Li, (2,B), color='red') + plot(x/(log(x)-1), (4,B), color='green'))
B = 10^10prime_pi(B), float(B/(log(B)-1)), float(Li(B))
(455052511, 454011971.2880956, 455055613.5414593)

The Riemann Hypothesis: |π(x)Li(x)|xlog(x)


Basically, if you compute π(x) and Li(x) for large values of x, then the first half of the digits will be the same.

The above is equivalent to the million dollar Clay Math Institute problem.

prime_pi(10^10)float(10^10/log(10^10))float(Li(10^10))

Why? Imagine adding a little “random walk” to π(x) with step size of 1. Its expected size after x steps would be roughly x. In fact, assuming RH, π(x)=Li(x)+lower order highly-oscillatory terms involving zeros of ζ(s) where ζ(s)=p11ps

plot(lambda x: prime_pi(x) - Li(x), 2, 10000)
g = complex_plot(zeta, (0, 1), (1,50))g + points([[1/2,z] for z in zeta_zeros()[:10]], pointsize=40, color='black', zorder=10)

A generalization of ζ(s)=p11ps.

A congruent number is an integer that is the area of a right triangle with rational side lengths.

The Congruent Number Problem: Give an algorithm to decide whether or not an integer n is a congruent number.

“The congruent number problem, the written history of which can be traced back at least a millennium, is the oldest unsolved major problem in number theory, and perhaps in the whole of mathematics.” – John Coates

# 6a = 3; b = 4; c = 5a^2 + b^2 == c^21/2 * a * b
True 6

(Easy) Theorem: An integer n is a congruent number if and only if the cubic curve En:y2=x3n2x has infinitely many rational solutions.


The proof is to just setup a bijection between non-torsion points on the curve, and rational right triangles with area n:

For example, for n=6

E = EllipticCurve([-6^2,0])show(E)
y2=x336x
plot(E)
E.rank()
1
P = E.gens()[0]; P
(-3 : 9 : 1)
congnum(n, x, y) = ((x^2-n^2)/y, 2*n*x/y, (x^2+n^2)/y)congnum(6, -3, 9)
(-3, -4, 5)

The set of points on an elliptic curve forms an abelian group…

P + P + P + P + P + P + P
(-583552361658258723/4023041763448204561 : -18433964971574382270849196761/8069224743013821217381442809 : 1)
[a,b,c] = congnum(6, -583552361658258723/4023041763448204561, -18433964971574382270849196761/8069224743013821217381442809)a,b,c
(13932152355102290403/884619602260392601, 3538478409041570404/4644050785034096801, -64777297161660083702224674830494320965/4108218358333926731621213541698169401)
1/2*a*b
6
a^2 + b^2c^2
4196098227570015536181717307056998500537202867254564476717797975116438531225/16877458079751904022257924210576462032214437173909499515113558394492698801 4196098227570015536181717307056998500537202867254564476717797975116438531225/16877458079751904022257924210576462032214437173909499515113558394492698801

But how can we tell whether or not the elliptic curve En given by y2=x3n2x has infinitely many solutions?

This is where the generalization of ζ(s) and the Birch and Swinnerton-Dyer conjecture comes in.

Let L(En,s)=11apps+p12s, where the product is over primes p2n and ap=p+1#E(Fp) is how close the E is to having exactly p+1 solution modulo p.

E6 = EllipticCurve([-6^2,0])show(E6)
y2=x336x
E6.aplist(50)
[0, 0, -2, 0, 0, -6, -2, 0, 0, -10, 0, 2, -10, 0, 0]
EllipticCurve([-3^2,0]).aplist(50)
[0, 0, 2, 0, 0, 6, -2, 0, 0, 10, 0, -2, -10, 0, 0]
EllipticCurve([-5^2,0]).aplist(50)
[0, 0, 0, 0, 0, -6, -2, 0, 0, -10, 0, 2, 10, 0, 0]
set_verbose(-2)L = E6.lseries()%time complex_plot(L, (0,2), (-4,4), plot_points=15)
L(1)

Let E:y2=x3+AX+B be an elliptic curve.

Conjecture (Birch and Swinnerton-Dyer): L(E,1)=0 if and only if E(Q) is infinite. More precisely, the million dollar Clay Math Institute question is: E(Q)Zr+{easy finite group}, where r=ords=1L(E,s).

  1. Choose a positive integer n.
  2. Determine whether or not it is a congruent number.
  3. Depending on n say what we know for sure (hence brining in theorems…)
n = 2018
E = EllipticCurve([-2018^2,0])
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.
Error in lines 1-1
Traceback (most recent call last): File "/projects/sage/sage-7.5/local/lib/python2.7/site-packages/smc_sagews/sage_server.py", line 982, in execute exec compile(block+'\n', '', 'single') in namespace, locals File "", line 1, in File "/projects/sage/sage-7.5/local/lib/python2.7/site-packages/sage/schemes/elliptic_curves/ell_rational_field.py", line 2088, in rank raise RuntimeError('Rank not provably correct.') RuntimeError: Rank not provably correct.
L = E.lseries()L.taylor_series()
1.86780536111856 - 12.2921463048870*z + 96.8423130460936*z^2 - 459.117778433146*z^3 + 1533.27766138128*z^4 - 3957.21363408321*z^5 + O(z^6)
%var A, BEllipticCurve([A,B])
Elliptic Curve defined by y^2 = x^3 + A*x + B over Symbolic Ring
E.rank()
0

There is also a generalization of the Riemann Hypothesis for L(E,s).

RH for E: The nontrivial zeros of L(E,s) all lie on the line Re(s)=1.


It might have a similar interpretation like our bound on |π(x)Li(s)|. This is a subject of active investigation by Barry Mazur, Peter Sarnak, and I.

And let me leave you with a very specific unsolved problem.

Open Problem: Prove there is an elliptic curve E such that ords=1L(E,s)=4.

Here is the simplest candidate:

E = elliptic_curves.rank(4)[0]E.conductor()E.rank()
234446 4
E
Elliptic Curve defined by y^2 + x*y = x^3 - x^2 - 79*x + 289 over Rational Field
L = E.lseries()
L.taylor_series()
6.11756737403338e-24 + (-2.30473083385553e-23)*z + (-4.12120024296914e-22)*z^2 + (1.66411019119833e-21)*z^3 + 8.94384739590089*z^4 - 33.6950287693207*z^5 + O(z^6)
E.rank()
4
E.gens()
[(4 : 3 : 1), (5 : -2 : 1), (6 : -1 : 1), (8 : 7 : 1)]

Numerically, it looks clear that ords=1L(E,s)=4. However, it is so far impossibly difficult to prove that those numbers that numerically look like 0 in the series above actually are 0.