Primes keep coming in close pairs, forever
A plain-language, hands-on walk through Yitang Zhang's paper “Bounded gaps between primes”. No number theory background needed. Every panel on this page computes live in your browser.
Page numbers refer to your PDF (55 pages; PDF page 2 is journal page 1121). Anything I add from outside the paper is marked Background.
The question
Primes thin out. Near a number x, the average distance from one prime to the next is about log x (the natural logarithm), so around a million the average gap is about 14, and around a number with 100 digits it is about 230. The average gap grows without limit.
Yet small gaps keep turning up. 11 and 13, 101 and 103, 1,000,037 and 1,000,039. Pairs like these, two apart, are twin primes. The twin prime conjecture says they never stop. Nobody can prove it.
Before 2013 nobody could prove even a much weaker statement: that there is some fixed number, however large, such that primes keep coming closer together than that number forever. Zhang proved it.
See the two facts side by side. Move the window further out: the average gap grows, but the small gaps do not go away.
In symbols, with pn the n-th prime, the paper's abstract reads:
“lim inf” is the smallest value that the gap keeps returning to, however far out you go. The twin prime conjecture says it equals 2. Before Zhang, it was not known to be finite.
What exactly is proved
Zhang does not look for pairs of primes directly. He looks at patterns. Take a fixed list of shifts, for example {0, 2, 6}, and slide it along the number line: n, n+2, n+6. Sometimes all three are prime (5, 7, 11; then 11, 13, 17; then 17, 19, 23).
Some patterns can never be all prime more than once. With {0, 2, 4}, one of the three numbers is always a multiple of 3. A pattern with no such built-in obstacle is called admissible: for every prime p, the shifts leave at least one remainder mod p unused.
It is believed that every admissible pattern is all-prime infinitely often. That is far out of reach. Zhang proves something weaker that is still enough:
Two primes inside one copy of the pattern are at most as far apart as the pattern is wide. So all that is left is to exhibit one admissible pattern with 3.5 million shifts and measure its width.
Where 70 million comes from
Zhang's pattern is simple: take k primes that are all bigger than k. This is always admissible. For a prime p ≤ k, none of the shifts is a multiple of p, so remainder 0 is unused. For p > k, there are too few shifts to use up all p remainders.
Zhang says plainly that the number is not optimal: “This result is, of course, not optimal… to replace the bound by a value as small as possible is an open problem that will not be discussed in this paper.” What mattered was that it is finite.
Check yourself: is {0, 2, 6, 8} admissible? What about {0, 2, 8}?
{0, 2, 6, 8}: mod 2 only remainder 0 is used; mod 3 the remainders are 0, 2, 0, 2, so 1 is free. It is admissible (5, 7, 11, 13 is an example). {0, 2, 8}: mod 3 the remainders are 0, 2, 2, so 1 is free, and mod 2 only 0 is used. Admissible too. Try both in the panel.
The weighing idea
The plan comes from Goldston, Pintz and Yıldırım (GPY), whose 2005 work Zhang builds on (reference [7]). It is an averaging argument.
Fix the pattern. For each position n between x and 2x, count how many of the numbers n + hi are prime. If the average count were above 1, some position would have at least 2 primes, and we would be done.
A plain average is hopeless: primes are rare, so the average count is tiny. GPY's idea is a weighted average. Give each position n a weight that is never negative and is large when the numbers n + hi have few small prime factors, because that is when they are likely to be prime.
The weight is a square, λ(n)², which guarantees it is never negative. Inside is a sum over the divisors d of the product (n+h1)(n+h2)⋯, but only divisors smaller than a cutoff D:
Here μ(d) is +1 or −1 according to whether d has an even or odd number of prime factors. You do not need the formula. What matters is the single dial D: the larger the cutoff D, the better the weights find the primes. Try it on real numbers.
In the paper the two sums are called S1 (the total weight) and S2 (the weight times the primes found, each prime counted as its logarithm). The goal is inequality (2.3):
This is “weighted average above 1” in different clothes. Each prime below 3x contributes less than log 3x, so if some position contributes more than log 3x, it holds at least two primes.
A hair's breadth short
Why can a proof not use a large D? Computing S2 requires knowing, for each d, how many primes fall in certain remainder classes mod d. The expected answer is an equal share for each allowed class. When the square is expanded, the moduli run up to D².
The best known result of this kind is the Bombieri–Vinogradov theorem (1965): on average, primes are evenly spread over remainder classes for all moduli up to about √x. People say primes have level of distribution ½. So D² may be at most x1/2, which means
And with that D, the weighted average comes out just below 1, however many shifts the pattern has. Working out both sums (Sections 4 and 5 of the paper) gives, for a pattern with k shifts and D = x1/4 + ϖ:
Both fractions are below 1, though they can be pushed as close to 1 as you like by taking l large and k much larger. So with ϖ = 0 the average approaches 1 from below and never reaches it. With any ϖ > 0, however small, the factor (1 + 4ϖ) tips it over.
Nobody could prove a level above ½. It was known for some special situations (work of Fouvry, Iwaniec, Bombieri and Friedlander in the 1980s, references [1]–[3] and [5]), but those results required the remainder class to stay fixed while the modulus varies, and GPY's sums do not have that shape. The question of whether these two lines of work could be combined was posed in the GPY paper itself. Zhang's paper answers it: yes.
Zhang's two observations
Zhang takes D = x1/4 + ϖ with ϖ = 1/1168. That is beyond what Bombieri–Vinogradov allows. He makes it work with one change to the weights and two observations about that change.
The change. In the sum that defines λ(n), keep only divisors d whose prime factors are all small: below xϖ. Such numbers are called smooth. In the paper this is the condition “d divides 𝒫”, where 𝒫 is the product of all primes below xϖ.
Observation 1: dropping the non-smooth divisors costs almost nothing
The divisors thrown away are those with a prime factor above xϖ. Zhang shows their total contribution to the main terms is a fraction κ of the whole, with
That is a decimal point followed by more than 500 zeros. The weighted average is unchanged for all practical purposes. This is Sections 4 and 5, and it is where the size of the pattern gets fixed: the estimate is only this small when k is in the millions (Chapter 6 lets you see why).
Observation 2: smooth moduli can be split wherever you like
This is the part Zhang calls “the most novel part of the proof”. A smooth number is a product of many small primes. So you can build a divisor of almost any size you want by multiplying some of those primes together. Zhang writes each modulus as
with r close to whatever size the argument needs (Lemma 4). A prime modulus cannot be split at all. The techniques for going beyond level ½ all need a modulus that factors into two parts of the right sizes, and smooth moduli always do.
With this, Zhang proves the one new fact about primes that the whole paper rests on:
It is a Bombieri–Vinogradov theorem that goes past the square-root barrier, at the price of using only smooth moduli and only the particular remainder classes that the pattern needs. Observation 1 says the first restriction is harmless. Chapters 7 and 8 sketch how Theorem 2 is proved. It takes pages 24–53, more than half of the paper.
The winning margin
Assume Theorem 2. Then both sums can be evaluated with D = x1/4 + ϖ, and the final step of the proof of Theorem 1 is one inequality, (5.8) in the paper: a constant ω must be positive. In the language of Chapter 3, the weighted average must exceed 1.
Zhang's choices are k0 = 3,500,000 shifts, exponent parameter l0 = 180, and ϖ = 1/1168. Move the dials and see what each one does.
Three things to notice.
With ϖ = 0 nothing works. The average stays below 1 for every k0 and l0. This is the hair's breadth.
With Zhang's values the average is about 1.0005. One part in two thousand above the target. The margin is thin because ϖ is tiny: the factor 1 + 4ϖ is only 1.0034, and the two fractions from Chapter 4 must together stay above 1/1.0034. That forces l0 into the hundreds and k0 far larger still.
Lower k0 a little and κ₁ explodes. The smoothness cost is (1 + 4ϖ)−k₀ multiplied by some enormous counting factors. Only when k0 reaches about 3 million does the first factor win. With Zhang's own bounds, the page finds the proof closes from roughly k0 = 2.95 million upward (using l0 near 150). Zhang rounded up generously and noted the bounds were “crude”.
Check yourself: why does a small ϖ force a huge k₀?
Two reasons. First, the average is (two fractions below 1) × (1 + 4ϖ); with ϖ tiny the fractions must be extremely close to 1, which needs l₀ large and k₀ much larger than l₀. Second, the cost of restricting to smooth divisors shrinks like (1 + 4ϖ)−k₀, which is only small when k₀ is large compared with 1/ϖ.
Breaking primes into pieces
Now the hard half: proving Theorem 2. The claim is about how primes spread over remainder classes for moduli d between x1/2 and x1/2 + 2ϖ. (Below x1/2, Bombieri–Vinogradov already does the job.)
Primes are hard to handle directly because “being prime” has no formula. The standard move is to replace the primes by sums of simpler things. Zhang uses an identity of Heath-Brown (Lemma 6). It rewrites the prime-detecting function as a combination of terms, each of which is a product structure: numbers of the form
with each factor restricted to a known size range and up to 20 factors in all. The m's carry awkward ±1 signs but are small (at most x1/10). The n's have no signs at all: they are just “all integers in a range”, the best-behaved thing there is.
How a term can be handled depends on how the sizes of its factors can be grouped. On a logarithmic scale, the sizes are lengths that add up to 1. Zhang sorts every term into three types (Section 6).
- Type I and II
- The factors can be grouped into two blocks, one of which has size between about x3/8 and x1/2. Two blocks of balanced size is the classical situation, handled by the “dispersion method”. Type II is the nearly perfectly balanced case, both blocks close to x1/2, which needs slightly different bookkeeping.
- Type III
- No grouping gives balanced blocks. Zhang shows by a short counting argument that this can only happen when the term has three or four large sign-free factors, each around x1/4 or more. Three smooth ranges multiplied together is another situation with its own tools.
- Trivial
- One factor is so long (beyond x1/2 + 3ϖ) and so regular that the even spread is obvious.
The precise boundaries are 3/8 + 8ϖ and 1/2 − 4ϖ. The small ϖ-corrections are where the final value 1/1168 comes from: each type needs a little room, and 1/1168 is what is left when every case is squeezed to fit at once.
Square-root cancellation
This is the most technical part of the paper. Here is the shape of the argument and the one idea that drives it.
Types I and II: the dispersion method
The term has two blocks, n = m · n′. We want to show the products are evenly spread over remainders mod d = rq. The block of m's carries coefficients we know nothing about. The method, due to Linnik and developed by Fouvry, Iwaniec, Bombieri and Friedlander, removes them:
1. Square. The Cauchy–Schwarz inequality replaces “unknown coefficients × unevenness” by “the unevenness squared, summed over m”. The unknown coefficients are gone (formula (7.7)).
2. Expand. A square (actual − expected)² opens into three sums: actual², −2 × actual × expected, expected². The paper calls them 𝒮₁, 𝒮₂, 𝒮₃ and handles them in Sections 10, 9 and 8.
3. Cancel. Each of the three has the same main term, so the main terms cancel exactly: 1 − 2 + 1 = 0. What is left is the “dispersion”: a collection of oscillating sums.
4. Bound the oscillating sums. These turn out to be Kloosterman sums, and this is where the factorization d = rq is used: r is chosen just below the size of the second block (Sections 11 and 12).
The one idea: sums of waves cancel like random signs
A Kloosterman sum adds up p − 1 points on the unit circle, picked by a rule that involves division mod p:
If the points all lined up, the sum would have size p − 1. In fact they point in scattered directions and mostly cancel. André Weil proved in 1948 that the sum never exceeds 2√p: exactly the cancellation you would get from random directions. This is called square-root cancellation.
Type III: three smooth factors and Deligne's theorem
Here the term is essentially “numbers written as a product of three factors of known sizes”, a problem studied by Friedlander and Iwaniec and by Heath-Brown in the 1980s. After similar steps, the oscillating sum that comes out is a three-variable relative of the Kloosterman sum. The needed square-root bound for it (Lemma 12) is due to Birch and Bombieri, and it rests on Deligne's 1974 proof of the Weil conjectures, one of the deepest results of 20th-century mathematics.
On its own, that method stops a little short of the range Zhang needs. His addition is again the factorization d = rq, this time with r small. Shifting one variable by multiples of r and averaging gains an extra factor of √r, which is just enough. The result (formula (13.4)) is a saving of xϖ/3 for each modulus separately.
| Type | Shape | How d = rq is used | Deep input | Sections |
|---|---|---|---|---|
| I, II | Two balanced blocks | r just below the second block's size | Weil's bound for Kloosterman sums | 7–12 |
| III | Three long sign-free factors | r small; shift by multiples of r | Birch–Bombieri, via Deligne | 13–14 |
With all three types bounded, Theorem 2 follows, and with it Theorem 1.
What happened next
The whole proof on one screen:
| Step | What it does | Where |
|---|---|---|
| Pattern | An admissible pattern of 3.5 million shifts, width under 70 million | Theorem 1 |
| Weights | GPY weights, restricted to smooth divisors, with D = x1/4 + 1/1168 | Section 2 |
| Cost | Restricting to smooth divisors loses less than e−1200 | Sections 4–5 |
| New input | Primes are evenly spread for smooth moduli beyond x1/2 | Theorem 2 |
| Decompose | Heath-Brown's identity; Types I, II, III | Section 6 |
| Estimate | Dispersion method, Kloosterman sums, Deligne | Sections 7–14 |
| Total | Weighted average ≈ 1.0005 > 1, so two primes in one pattern | (5.8) |
Zhang submitted the paper in April 2013. Once it was public, 70 million began to fall within weeks, mostly through an open online collaboration (the Polymath8 project) that optimized each step of Zhang's argument. In November 2013 James Maynard, and independently Terence Tao, found a different way to choose the weights that needs only the classical Bombieri–Vinogradov theorem and gives much smaller numbers. Click through the record.
The record has stood at 246 since 2014. Getting from 246 to 2, the twin prime conjecture, is believed to need a new idea: the same “parity” obstacle that stops sieve methods from proving Goldbach's conjecture stands in the way here too.
Reading guide
Section by section
| PDF pages | Journal pages | Section | Tour chapter |
|---|---|---|---|
| 2–3 | 1121–1122 | Abstract; 1. Introduction, Theorem 1 | 1, 2 |
| 4–8 | 1123–1127 | 2. Notation and sketch of the proof; Theorem 2 | 3–5 |
| 8–16 | 1127–1135 | 3. Lemmas 1–12 (tools quoted or prepared) | 5, 7, 8 |
| 16–22 | 1135–1141 | 4. Upper bound for S₁; κ₁ < e−1200 | 6 |
| 22–24 | 1141–1143 | 5. Lower bound for S₂; proof of Theorem 1 | 6 |
| 24–26 | 1143–1145 | 6. Combinatorial arguments: Types I, II, III | 7 |
| 27–33 | 1146–1152 | 7–9. The dispersion method; the two easier sums | 8 |
| 33–43 | 1152–1162 | 10–12. The hard sum; Type I and Type II estimates | 8 |
| 43–54 | 1162–1173 | 13–14. The Type III estimate | 8 |
A good order for a first reading of the original: Sections 1 and 2 (PDF pages 3–8) slowly, then the end of Section 5 (pages 23–24) to see the final inequality, then Section 6. Sections 7–14 are for readers who already know the 1980s papers they build on.
Symbols you will meet
- ℋ
- The pattern: a fixed set of shifts h₁, …, hk₀.
- P(n)
- The product (n + h₁)(n + h₂)⋯(n + hk₀).
- θ(n)
- log n if n is prime, otherwise 0. Counting primes with this weight makes formulas cleaner.
- λ(n)
- The GPY weight (its square is what is used).
- ℒ
- Shorthand for log x.
- ϖ
- “Varpi”, a variant of the letter π. The small extra exponent, 1/1168.
- 𝒫
- The product of all primes below xϖ. “d divides 𝒫” means d is smooth and has no repeated prime factor.
- n ~ x
- n runs from x to 2x.
- Δ(γ; d, c)
- The unevenness: (actual count in the class c mod d) minus (the equal share).
- 𝒞i(d)
- The particular remainder classes mod d that the pattern cares about.
- α ∗ β
- Dirichlet convolution: the sequence you get by multiplying a number from α's range with one from β's range.
- A ≪ B
- A is at most a constant times B.
- 𝔖
- The “singular series”: a positive constant depending only on the pattern. It cancels out of the final comparison.
Companion tour: Chen Jingrun's 1+2 theorem.