Bell State
What You'll Learn: How to create quantum entanglement — the phenomenon Einstein called "spooky action at a distance" — using just two quantum gates.
Level: Beginner | Time: 10 minutes | Qubits: 2 | Framework: Qiskit
The Idea
Imagine you have two magic coins. You prepare them together in a special way, then send one to Tokyo and keep one in New York. When you flip your coin and get heads, your friend in Tokyo is guaranteed to also get heads — every single time. That's entanglement.
A Bell state is the simplest way to create this correlation in a quantum computer. With just two gates — a Hadamard (H) and a CNOT — you create a pair of qubits that are perfectly correlated. No classical system can do this.
The Bell state is named after physicist John Stewart Bell, who proved in 1964 that these correlations are genuinely quantum — they can't be explained by hidden variables or pre-arranged agreements between the qubits.
How It Works
The Circuit
CODE┌───┐ q_0: ┤ H ├──■── └───┘┌─┴─┐ q_1: ─────┤ X ├ └───┘
Step 1: Superposition
PYTHONqc.h(0) # Put qubit 0 into superposition: (|0⟩ + |1⟩) / √2
The Hadamard gate transforms qubit 0 from a definite |0⟩ into an equal mix of |0⟩ and |1⟩. Think of it as putting a coin into a spin — it's neither heads nor tails until you look.
State after Step 1: (|0⟩ + |1⟩)/√2 ⊗ |0⟩ = (|00⟩ + |10⟩)/√2
Step 2: Entanglement
PYTHONqc.cx(0, 1) # If qubit 0 is |1⟩, flip qubit 1
The CNOT (Controlled-NOT) gate creates a conditional relationship: qubit 1 flips only when qubit 0 is |1⟩. This transforms our state from "qubit 0 is in superposition, qubit 1 is |0⟩" into "both qubits are correlated."
- |00⟩ component: qubit 0 is |0⟩, so qubit 1 stays |0⟩ → |00⟩
- |10⟩ component: qubit 0 is |1⟩, so qubit 1 flips to |1⟩ → |11⟩
State after Step 2: (|00⟩ + |11⟩)/√2 = |Φ+⟩
Now the two qubits are entangled. Neither qubit has a definite state on its own — they only have a shared state. Measuring one instantly determines the other.
The Math
State Evolution
Starting from |00⟩ and applying each gate:
-
Initial state: |ψ₀⟩ = |00⟩
-
After H on qubit 0: |ψ₁⟩ = (H ⊗ I)|00⟩ = (|0⟩ + |1⟩)/√2 ⊗ |0⟩ = (|00⟩ + |10⟩)/√2
-
After CNOT: |ψ₂⟩ = CNOT · |ψ₁⟩ = (|00⟩ + |11⟩)/√2 = |Φ+⟩
Matrix Representation
The Hadamard gate:
CODEH = (1/√2) · [ 1 1 ] [ 1 -1 ]
The CNOT gate (control = qubit 0, target = qubit 1):
CODECNOT = [ 1 0 0 0 ] [ 0 1 0 0 ] [ 0 0 0 1 ] [ 0 0 1 0 ]
The combined operation:
CODE|Φ+⟩ = CNOT · (H ⊗ I) · |00⟩ = CNOT · (1/√2)(|00⟩ + |10⟩) = (1/√2)(|00⟩ + |11⟩)
All Four Bell States
By applying X and/or Z gates before the CNOT, you create the complete Bell basis:
| State | Formula | How to Create | Correlations |
|---|---|---|---|
| Φ+⟩ | ( | 00⟩ + | |
| Φ-⟩ | ( | 00⟩ − | |
| Ψ+⟩ | ( | 01⟩ + | |
| Ψ-⟩ | ( | 01⟩ − |
These four states form a complete orthonormal basis for two-qubit systems. Any two-qubit state can be expressed as a combination of Bell states.
Expected Output
When you measure both qubits 1024 times, you'll see approximately:
| Outcome | Expected Count | Probability |
|---|---|---|
| |00⟩ | ~512 | ~50% |
| |11⟩ | ~512 | ~50% |
| |01⟩ | 0 | 0% |
| |10⟩ | 0 | 0% |
The qubits always agree. That's the signature of entanglement — perfect correlation that no classical process can reproduce (as proven by Bell's theorem).
Note: On real quantum hardware, you may see small counts for |01⟩ and |10⟩ due to gate errors and decoherence. The ratio of correct to incorrect outcomes is a direct measure of your hardware's fidelity.
Running the Circuit
PYTHONfrom circuit import run_circuit, verify_bell_state # Basic execution — returns measurement counts counts = run_circuit(shots=1024) print(counts) # {'00': ~512, '11': ~512} # Verification — checks entanglement correlations result = verify_bell_state(shots=4096, tolerance=0.05) print(result["passed"]) # True for check in result["checks"]: print(f" {check['name']}: {check['detail']}")
Try It Yourself
-
Create |Ψ+⟩: Add
qc.x(0)before the Hadamard. Now you should see |01⟩ and |10⟩ instead of |00⟩ and |11⟩. Why? -
Measure just one qubit: Remove the measurement on qubit 1. Run it 1000 times. Do you get 50/50? Now add back qubit 1's measurement. Does qubit 0's distribution change?
-
Scale up: Replace CNOT with a chain of CNOTs to entangle 3+ qubits — that's a GHZ state!
-
Bell inequality: Create both |Φ+⟩ and a classically correlated state (e.g., randomly prepare |00⟩ or |11⟩). Measure in the X basis. Can you see the difference?
What's Next
- GHZ State — Extend entanglement to 3+ qubits
- Quantum Teleportation — Use a Bell pair to "teleport" a quantum state from one qubit to another
- Superdense Coding — Send 2 classical bits using 1 qubit + a shared Bell pair
Applications
| Application | How Bell States Are Used |
|---|---|
| Quantum Teleportation | A shared Bell pair + 2 classical bits can transfer an arbitrary qubit state |
| Superdense Coding | Encode 2 classical bits in 1 qubit using a shared Bell pair |
| Quantum Key Distribution | E91 protocol uses Bell state correlations to detect eavesdroppers |
| Entanglement Swapping | Connect distant nodes in a quantum network by "teleporting" entanglement |
| Bell Tests | Experimental verification that nature violates local hidden variable theories |
References
- Einstein, A., Podolsky, B., Rosen, N. (1935). "Can Quantum-Mechanical Description of Physical Reality Be Considered Complete?" Physical Review 47(10), 777-780.
- Bell, J.S. (1964). "On the Einstein Podolsky Rosen Paradox." Physics Physique Fizika 1(3), 195-200.
- Aspect, A., Dalibard, J., Roger, G. (1982). "Experimental Realization of Einstein-Podolsky-Rosen-Bohm Gedankenexperiment." Physical Review Letters 49(2), 91-94.
- Nielsen, M.A. & Chuang, I.L. Quantum Computation and Quantum Information, Section 1.3.6 (Bell states), Section 2.3 (EPR and Bell's inequality).
- IBM Quantum Learning: Entanglement
- Qiskit Textbook: Multiple Qubits and Entanglement