What does teleportation actually move?
Quantum teleportation transfers the state of one qubit to another using a shared entangled pair and two bits of classical communication. No matter moves, and the original state does not survive at the sender. The protocol was introduced by Bennett and co-authors in 1993.
This article builds the circuit in N/M on three qubits: q[0] holds the state to send, q[1] is the sender's half of a Bell pair and q[2] is the receiver's half. Instead of measuring and sending bits, we apply the corrections with controlled gates, so the whole protocol runs as one circuit in the local noiseless simulator. Nothing here runs on a physical quantum processor.
Run the circuit
Paste the program into the Playground:
module blog_teleportation;
@seed(41);
fn main() {
let q = qreg[3];
sample 512 {
X(q[0]);
H(q[0]);
H(q[1]);
CNOT(q[1], q[2]);
CNOT(q[0], q[1]);
H(q[0]);
CNOT(q[1], q[2]);
CZ(q[0], q[2]);
H(q[2]);
X(q[2]);
let c0 = measure(q[0]);
let c1 = measure(q[1]);
let c2 = measure(q[2]);
}
return q;
}The program prepares |−⟩ on q[0], teleports it to q[2], then undoes the preparation on q[2] and measures. If the transfer worked, c2 is 0 in every shot of the ideal model. The pair c0, c1 should take each of the values 00, 01, 10 and 11 with probability 1/4: about 128 counts each out of 512, with a standard deviation near 10. The Playground prints the three bits as q[2] q[1] q[0], so the leftmost digit is c2 and a successful run shows only 000, 001, 010 and 011. Read them from the histogram, not the single collapsed final state.
How the circuit works
X then H turns |0⟩ into |−⟩ = (|0⟩ − |1⟩)/√2. The negative relative phase is deliberate, as the experiments show.
H(q[1]) and CNOT(q[1], q[2]) create the Bell pair (|00⟩ + |11⟩)/√2, as in the Bell state article. CNOT(q[0], q[1]) followed by H(q[0]) rotates the sender's two qubits into the Bell basis. After these gates, the three-qubit state can be rewritten as a sum of four terms, one for each value of (c0, c1), each with amplitude 1/2. In the term with c0 = c1 = 0, q[2] already holds the input state. In the others it holds the input with an X error (c1 = 1), a Z error (c0 = 1), or both.
The textbook protocol now measures q[0] and q[1], sends the two bits, and has the receiver apply X when c1 = 1 and Z when c0 = 1. Here the last CNOT and the CZ do the same job with quantum controls. This is the principle of deferred measurement: a gate controlled by a qubit that is not touched again and is later measured in the computational basis gives the same outcome statistics as measuring first and applying the gate conditioned on the classical result. The controlled gate never changes the control's computational-basis value, so reading it earlier or later leaves the probabilities unchanged.
Finally, H(q[2]) then X(q[2]) inverts the preparation, because (HX)⁻¹ = XH. A perfect transfer maps q[2] back to |0⟩.
Three changes to predict
Write down a prediction before running each change.
- Remove
CZ(q[0], q[2]);. The verification now fails in about half the shots:c2becomes equal toc0. Without the Z correction, thec0= 1 branches leaveq[2]in Z|−⟩ = |+⟩, which the undo step turns into |1⟩. - Prepare |1⟩ with
X(q[0])alone, undo withX(q[2])alone, and remove CZ again.c2is 0 in every shot. Z|1⟩ = −|1⟩ differs only by a global phase, which no measurement detects. To see what Z corrects, the test state must carry a relative phase, as |−⟩ does. - Return to the |−⟩ version with CZ and remove the CNOT correction instead.
c2again stays 0. |−⟩ is an eigenstate of X (X|−⟩ = −|−⟩), so the missing X correction only adds a global phase. With the |1⟩ test state, the same removal makesc2equalc1.
Experiments 2 and 3 teach the same lesson from opposite sides: an undo-and-measure test with one input state detects only the errors that state is sensitive to. |+i⟩ (prepared with H, S; undone with Sdg, H) exposes both.
What this does not show
The deferred version is not a model of two separated parties. The controlled corrections act directly between the sender's and receiver's qubits, and doing that across a distance would itself require quantum communication. The circuit checks the algebra of the protocol; the physical protocol still needs two classical bits.
Those bits are also why teleportation cannot send information faster than light. Before the corrections, q[2] is in the maximally mixed state for every input, so the receiver sees a fair coin whatever the sender holds. The input becomes recoverable only after the two bits arrive.
The protocol does not copy the state either. Before the final measurements, our circuit leaves q[0] in |+⟩ whatever the input, with zero overlap with the original |−⟩. In the measured protocol, q[0] and q[1] end as random bits with four equally likely outcomes, independent of the input.
A single test state is also not a full verification: characterising the transfer needs several input states, and a hardware run would add noise, mid-circuit measurement errors and finite-shot uncertainty.
Next steps and sources
- Build a Bell state with N/M: the entangled pair used here.
- N/M laboratories: bounded experiments, including seeded noise models.
- N/M documentation: gates, registers and simulation limits.
- Bennett et al., "Teleporting an unknown quantum state via dual classical and Einstein-Podolsky-Rosen channels", Phys. Rev. Lett. 70, 1895 (1993).
- IBM Quantum Learning: Quantum teleportation: step-by-step analysis of the four outcomes.
- IBM Quantum Learning: Teleportation: the same qubit layout and an inverse-preparation check.
The probabilities in this article describe the stated ideal circuit in a local noiseless simulation and make no claim about hardware.