Prime-Power Wave Lab v2
Four views of one interference pattern. Prime-power coordinates are waves whose sum is the factor field; inclusion–exclusion of base waves carves out the primes; the zeta zeros are waves whose sum is the drift of the prime count; and the spectrum of that drift, computed from nothing but the primes, shows the zeros. Nothing runs until you press Render, and every export is made in your browser.
Coordinates through 100 — click to switch on or off exact at integers
Wave rules
Sum of the selected waves
Value of the sum at each integer
A single sine or cosine per coordinate is a fundamental: it peaks (cosine) or vanishes (sine) at every multiple of k but is not zero elsewhere. The exact divisor packet adds the harmonics r = 0 … k−1; at every integer they interfere to exactly 1 when k | n and exactly 0 otherwise, so the sum of packets at an integer is literally the number of selected coordinates dividing it (weighted by the amplitude rule). The centered packet drops the constant term and has mean zero over its period. All of this is exact; what is between the integers is only the continuous interpolation the harmonics happen to trace.
Base bank — which prime bases are switched on exact at integers
All-clear field U(x) = Π (1 − packetp) — expanded by inclusion–exclusion
The base packets that do the striking
Each base p is an exact packet that equals 1 at its multiples. Multiplying out Π(1 − packetp) gives an alternating sum over every squarefree product d of the chosen bases: U = Σ μ(d) · packetd. That is Legendre's sieve written as wave interference. At an integer, U is exactly 1 when no chosen base divides it and exactly 0 otherwise — so with the bank through √N the survivors above 1 are exactly the primes in (√N, N], and with a smaller bank the survivors also include composites whose factors are all larger than the bank. This is the mechanism of prime formation as interference. It is also the point where the difficulty lives: the number of terms doubles with every base, and their near-cancellation is what no one has been able to bound at the scale RH requires.
Zeta zeros — one wave each explicit formula, exact
Switch individual zeros off (first 60 shown) finite
Off-the-line experiment illustration
The drift of the prime count, and its reconstruction from zeros
Each zero ρ = ½ + iγ contributes the wave −2 Re(xρ/ρ): in log-time a sinusoid of frequency γ with envelope 2√x/|ρ|. Summed over all zeros, plus two tiny terms, this equals ψ(x) − x exactly (von Mangoldt's explicit formula). With a finite number of zeros the sum is an approximation whose finest wavelength at position x is about 2πx/γK. The normalized view divides by √x: on the critical line every wave then has a fixed envelope, and the drift oscillates without trending. Moving a zero off the line is hypothetical — every one of the first 10¹³ zeros is known to be on it — but it shows what a single off-line zero would do: its wave's envelope becomes xβ, it outgrows the rest, and the drift acquires a permanent tilt.
The zeros, recovered from the primes alone finite
|Fourier transform| of E(eu) / eu/2 over log-time u
Nothing here uses the zero table except the violet markers. The cyan curve is computed only from the primes: take the true drift ψ(x) − x, divide by √x, sample it uniformly in u = ln x, and Fourier-transform. Because each zero is a fixed-frequency wave in log-time, the transform peaks at the zero heights: 14.13, 21.02, 25.01, 30.42, … The peaks are wide because the log-time window is short — ln 10⁵ ≈ 11.5 gives a resolution of roughly 2π/11.5 ≈ 0.55. Push the range up and they sharpen. This is the sense in which the zeros are "in" the primes, and the reverse direction — the explicit formula — is what tab 3 draws.
What is exact, what is finite, what is illustration
The two wave banks
Coordinate side. The indicator of k | n is exactly a finite packet of harmonics:
Its mean over a period is 1/k; subtracting that gives the centered packet, which sums to exactly zero over any complete period — the finite-bank centering identity. The all-clear field of a base bank R is UR(n) = Πp∈R(1 − 1p|n) = Σd μ(d)·1d|n over squarefree products d of bases in R. With R = all primes ≤ √N, this is 1 exactly at the primes in (√N, N] (and at 1).
Zeta side. Von Mangoldt's explicit formula, for x > 1 not a prime power:
Pairing each zero with its conjugate, a zero ρ = β + iγ contributes
On the critical line β = ½, so the envelope is 2√x/|ρ| for every zero. The Riemann hypothesis is the statement that all zeros have β = ½, which is equivalent to ψ(x) − x = O(x½+ε). Under RH, Schoenfeld's explicit ceiling |ψ(x) − x| < √x (ln x)² / 8π holds for x ≥ 73.2; it is drawn as the violet line in tab 3 when requested. Unconditionally, Littlewood proved ψ(x) − x exceeds √x · ln ln ln x in both signs infinitely often, so the bare √x is crossed.
What this lab does not do
It does not prove anything about the zeros. Tab 3 assumes the tabulated zeros and shows that the formula reproduces the primes; tab 4 assumes the primes and shows the zeros' frequencies emerging. Both directions are exact identities of finite data. The "off-the-line experiment" places a zero where no zero is known to be — the first 1013 zeros have all been verified on the line — and is an illustration of what RH forbids, not a fact.
Data
The embedded zero heights are the first 10,000 non-trivial zeros from Andrew Odlyzko's tables (zeros1, 9 decimal places, kept here to 6). You can load a larger table below; the file is read by your browser and never uploaded. Accepted: plain text, one zero height per line (Odlyzko's zeros1–zeros6 format), optionally .gz in a browser that supports in-page decompression.
Precision
Sums use JavaScript doubles. ψ(x) is accumulated as a sum of natural logs of primes; the drift shown is exact to floating-point rounding. Zero heights to 6 decimals give a phase error below 10−5 radians through x = 10⁶.