Part IV. Protocols and Algorithms · Chapter 23
Bell Tests and Nonclassical Correlations
Matching random bits are cheap — any shared list can produce them. A Bell test is the experiment that excludes every local classical explanation of quantum correlations, and this chapter shows what that exclusion does and does not entitle you to build.
In this chapter 8 sections
Reader question. What does a Bell test rule out that ordinary correlated data does not?
A Bell test combines correlations from multiple independently chosen measurement settings into an inequality that every local hidden-variable model must satisfy; quantum predictions and experiments can violate that bound, while local marginals still obey no-signaling.
- This chapter does not infer nonclassicality from matching bits in one basis or claim Bell violation sends information.
- It does not provide a full loophole-free experimental design or device-independent security proof.
One setting admits a shared-list explanation
Construct the classical correlated baseline.
Two devices that always output matching random bits are not impressive; a shared list of coin flips, printed in advance, does exactly that. A Bell test earns its reputation by asking a harder question: can the correlations observed across several different measurement settings be explained by any model in which each side carries prewritten local answers? Under the test's assumptions, the quantum prediction exceeds what every such local model can deliver.
For builders, the operational lesson is narrower than the philosophy. Bell-type correlations are evidence of genuinely nonclassical joint structure; and they are still not a communication channel. Each side's own outcomes look random until the two compare records over a classical link.
Evidence boundary. Bell inequalities constrain correlations achievable by local hidden-variable theories. [John S. Bell] [Michael A. Nielsen]
Four setting pairs create the constraint
Define CHSH inputs, outputs, and correlation signs.
The workhorse state is the familiar Bell pair:
Probabilities come from the Born rule once a measurement basis is chosen:
In the computational basis that gives the now-familiar table:
Perfect correlation in one basis; but a shared list of 0s and 1s would produce the same table. Bell-test reasoning begins only when the parties vary their measurement settings and check whether any single local classical explanation can fit all the correlations at once. The quantum answer survives the comparison; the local classical answer does not.
Evidence boundary. Quantum measurements on entangled states can attain CHSH values above the local bound. [John S. Bell] [John Preskill]
The local bound from predetermined answers
Derive |S|≤2 for deterministic assignments and mixtures.
The first distortion converts correlation into signaling: Alice chooses her outcome and Bob's changes to match. No. Outcomes are not messages, and no action of Alice's shifts Bob's local statistics. Whatever the interpretation debates, the engineering content is settled; you cannot transmit a controllable bit this way.
The second distortion files Bell tests under "quantum is just strange." That sentence builds nothing. The usable version names the state preparation, the measurement settings, the sample statistics, the loopholes and device assumptions, and exactly which inference the experiment supports. An engineer who can list those five items understands the experiment; one who reaches for "spooky" does not.
Evidence boundary. Bell-inequality violation and no-signaling are compatible; local marginals remain independent of remote settings. [John Watrous] [Michael A. Nielsen]
Notation contract: Settings x,y∈{0,1}; outcomes a,b∈{−1,+1}; E_xy=<ab|x,y>; S sign convention declared before calculation.
Quantum angles exceed the bound
Calculate the ideal Bell-state prediction.
Bell tests warn against modeling entangled systems as ordinary correlated random variables. The joint distribution depends on measurement choices in a way that; under the Bell assumptions; cannot be reduced to reading prewritten local bits.
The practical rule for evaluating data: keep four objects separate; the ideal state, the chosen measurement bases, the sampled distribution, and the claim being drawn. A simulator reproducing ideal Bell-state counts demonstrates the arithmetic; it is not a Bell experiment, which lives or dies on settings, statistics, and assumptions.
Marginals audit the signaling claim
Check local distributions alongside S.
Nonclassical correlation is settled physics; generations of experiments have closed the loopholes identified along the way, and the 2022 Nobel Prize in Physics went to exactly this line of work. What it is not is a blank check. If a pitch claims entanglement enables instant messaging, reject it outright.
When a research claim reports Bell-type evidence, ask what was measured, which assumptions were needed, what statistical confidence was reported, and whether the result supports the product being sold. The honest answer is often real physics, wrong conclusion; correlation demonstrated, networking or sensing advantage not.
CHSH data-analysis notebook
| Field | Reader-visible record |
|---|---|
| Format | Synthetic local/quantum datasets and reproducible S estimator |
| Verification | Tests local strategies never exceed the bound absent finite-sample fluctuation, reproduces ideally, and reports uncertainty plus marginal checks. |
| Availability | Source-embedded acceptance record; no separate download is claimed |
{
"artifact": "CHSH data-analysis notebook",
"format": "Synthetic local/quantum datasets and reproducible S estimator",
"acceptance_test": "Tests local strategies never exceed the bound absent finite-sample fluctuation, reproduces 2√2 ideally, and reports uncertainty plus marginal checks.",
"publication_state": "source-embedded contract and worked fixture"
}Executable reference fixture
Run with Python 3.11 or later. The final assertion is the chapter-level pass condition for this small instance.
import math
import random
def chsh(correlations):
if len(correlations) != 4:
raise ValueError("CHSH needs four setting-pair correlations")
return abs(correlations[0] + correlations[1] + correlations[2] - correlations[3])
def singlet_correlation(alice_angle, bob_angle):
return -math.cos(alice_angle - bob_angle)
def sample_pair(correlation, shots, seed):
if shots < 1 or not -1 <= correlation <= 1:
raise ValueError("invalid sampling request")
rng = random.Random(seed)
products = []
alice_total = bob_total = 0
for _ in range(shots):
alice = 1 if rng.randrange(2) else -1
same = rng.random() < (1 + correlation) / 2
bob = alice if same else -alice
products.append(alice * bob)
alice_total += alice
bob_total += bob
estimate = sum(products) / shots
variance = max(0.0, 1.0 - estimate ** 2)
return estimate, math.sqrt(variance / shots), alice_total / shots, bob_total / shots
local_values = []
for encoded in range(16):
outputs = tuple(1 if encoded & (1 << bit) else -1 for bit in range(4))
alice, alice_prime, bob, bob_prime = outputs
value = abs(alice * bob + alice * bob_prime + alice_prime * bob - alice_prime * bob_prime)
local_values.append(value)
assert max(local_values) == 2 and min(local_values) == 2
alice_angles = (0.0, math.pi / 2)
bob_angles = (math.pi / 4, -math.pi / 4)
setting_pairs = ((alice_angles[0], bob_angles[0]),
(alice_angles[0], bob_angles[1]),
(alice_angles[1], bob_angles[0]),
(alice_angles[1], bob_angles[1]))
ideal_correlations = tuple(singlet_correlation(*settings) for settings in setting_pairs)
ideal_s = chsh(ideal_correlations)
assert abs(ideal_s - 2 * math.sqrt(2)) < 1e-12
shots = 25000
sampled = [sample_pair(correlation, shots, 2300 + index)
for index, correlation in enumerate(ideal_correlations)]
sampled_correlations = tuple(row[0] for row in sampled)
sampled_s = chsh(sampled_correlations)
sampled_sigma = math.sqrt(sum(row[1] ** 2 for row in sampled))
max_marginal = max(abs(value) for row in sampled for value in row[2:])
assert abs(sampled_s - ideal_s) < 6 * sampled_sigma
assert sampled_s - 2 > 8 * sampled_sigma
assert max_marginal < 0.03
local_sampled = [sample_pair(1.0, 4000, 2390 + index) for index in range(4)]
local_sampled_s = chsh(tuple(row[0] for row in local_sampled))
assert local_sampled_s == 2.0
wrong_sign_s = abs(sum(ideal_correlations))
assert wrong_sign_s <= 2 and abs(wrong_sign_s - ideal_s) > 1.0
biased_marginal = 1.0
assert biased_marginal > 5 / math.sqrt(shots)
zero_shots_rejected = False
try:
sample_pair(0.0, 0, 1)
except ValueError:
zero_shots_rejected = True
assert zero_shots_rejected
print(f"PASS: 23 CHSH notebook bounds all {len(local_values)} deterministic local strategies at 2, gives ideal S={ideal_s:.6f}, sampled S={sampled_s:.4f}±{sampled_sigma:.4f}, max marginal={max_marginal:.4f}")
Scope boundary
- This chapter does not infer nonclassicality from matching bits in one basis or claim Bell violation sends information.
- It does not provide a full loophole-free experimental design or device-independent security proof.
Depth commitment. One local strategy proof, one ideal calculation, one count dataset, and one no-signaling audit.
Practice problem
Compute CHSH S from a supplied count table, attach an uncertainty interval, and check both parties' setting-conditioned marginals.
setting,pp,pm,mp,mm
ab,73,427,427,73
abp,73,427,427,73
apb,73,427,427,73
apbp,427,73,73,427
- Deliverable
- Correlation calculations, S estimate, interval, marginal table, and qualified verdict.
- Pass condition
- The notebook recomputes S and uncertainty and flags any unsupported loophole-free or signaling claim.
Verification record
Expected solution form. Count-to-correlation derivation plus executable estimator report.
Model answer. Using E=(Npp+Nmm-Npm-Nmp)/N, the first three rows give -0.708 and the last +0.708. With the stated CHSH signs, |S|=2.832, above the local bound 2 and close to 2sqrt(2); both parties' setting-conditioned marginals remain one half in every row.
Model result and check. CI reads the supplied CSV and matches every correlation, marginal, and interval.
Acceptance test. The notebook recomputes S and uncertainty and flags any unsupported loophole-free or signaling claim.
Companion work
Artifacts for this chapter
These entries resolve to checked-in local source. Commands are reproduced exactly from the chapter manifest, and source-embedded fixtures are exported as direct downloads.
Reproduce or test
python3 tools/validate_briefs.py --briefs data/editorial_briefs_00_35.json --from 0 --through 35 --check-rewritten-sources --execute-artifacts
Provenance
Sources and review
- John S. Bell. On the Einstein Podolsky Rosen paradox. Physics Physique Fizika. 1964primary paper
- Michael A. Nielsen and Isaac L. Chuang. Quantum Computation and Quantum Information. Cambridge University Press. 2010textbook
- John Preskill. Lecture Notes for Physics 219: Quantum Computation. California Institute of Technology. 2018graduate lecture notes
- John Watrous. The Theory of Quantum Information. Cambridge University Press / University of Waterloo. 2018textbook
The load-bearing claims in the chapter are mapped inline to this registered source set. A citation supports only the bounded claim beside it.