## Introduction

In a quantum teleportation experiment, quantum information can be transferred through space from one location in space to another. The process requires that the sender and the receiver share a pair of entangled qubits and can exchange two bits of classical information. The process is completely general and does not require prior knowledge of the particular state to be transferred. Furthermore, given that the process requires the exchange of classical information, quantum teleportation cannot exceed the speed of light limit.

To understand how the protocol works, let us suppose that the state $\lvert \phi_0 \rangle : = \alpha \lvert 0 \rangle_0 + \beta \lvert 1 \rangle_0$ of a qubit $q_0$ must be transferred from a sender at point A, let us call it Alice, and a receiver located at point B, let us call it Bob.

To do so, let us suppose that Alice and Bob share two entangled qubits $q_1$ and $q_2$ the first of which is at Alice’s location while the second is in Bob’s hands. Let us suppose that these two qubits are in the Bell state $\lvert \psi_{1,2} \rangle$:

$$ \lvert \psi_{1,2} \rangle := \frac{1}{\sqrt{2}} \Big[ \lvert 00 \rangle_{1,2} + \lvert 11 \rangle_{1,2} \Big]$$

such that the state $\lvert \Psi \rangle$ of the system of three qubits can be represented by the state $ \lvert \phi_0 \rangle \otimes \lvert \psi_{1,2} \rangle$:

$$ \lvert \Psi \rangle = \lvert \phi_0 \rangle \otimes \lvert \psi_{1,2} \rangle = \frac{\alpha}{\sqrt{2}}\Big[ \lvert 000 \rangle + \lvert 011 \rangle \Big] + \frac{\beta}{\sqrt{2}}\Big[ \lvert 100 \rangle + \lvert 111 \rangle \Big] $$

At this point, Alice can perform a local measurement in the Bell basis of the two qubits in her possession. To do so she first can perform a CNOT operation between $q_0$ and $q_1$ followed by a Hadamard on $q_0$. The state $\lvert \Psi \rangle$ after the CNOT operation can be written as:

$$ \lvert \Psi \rangle = \frac{\alpha}{\sqrt{2}}\Big[ \lvert 000 \rangle + \lvert 011 \rangle \Big] + \frac{\beta}{\sqrt{2}}\Big[ \lvert 110 \rangle + \lvert 101 \rangle \Big] $$

while the state of the system after the Hadamard operation can be written as:

$$ \lvert \Psi \rangle = \frac{\alpha}{2}\Big[ \lvert 000 \rangle + \lvert 011 \rangle + \lvert 100 \rangle + \lvert 111 \rangle \Big] + \frac{\beta}{2}\Big[ \lvert 010 \rangle + \lvert 001 \rangle – \lvert 110 \rangle – \lvert 101 \rangle \Big] $$

It is not difficult to see how such a state can also be rewritten as:

$$\lvert \Psi \rangle = \frac{1}{2} \lvert 00 \rangle_{0,1} \otimes \Big[ \alpha \lvert 0 \rangle_2 + \beta \lvert 1 \rangle_2 \Big] + \frac{1}{2} \lvert 01 \rangle_{0,1} \otimes \Big[ \alpha \lvert 1 \rangle_2 + \beta \lvert 0 \rangle_2 \Big] +$$ $$ + \frac{1}{2} \lvert 10 \rangle_{0,1} \otimes \Big[ \alpha \lvert 0 \rangle_2 – \beta \lvert 1 \rangle_2 \Big] + \frac{1}{2} \lvert 11 \rangle_{0,1} \otimes \Big[ \alpha \lvert 1 \rangle_2 – \beta \lvert 0 \rangle_2 \Big]$$

Once these operations have been performed on qubits $q_0$ and $q_1$, these can be measured collapsing, as a result, their state. In the process, the state of the two qubits is obtained as a pair of classical bits $b_0$ and $b_1$. The two classical bits can be sent, through a classical communication channel, to Bob that, on its side, can terminate the experiment by performing quantum operations on $q_2$ based on $b_0$ and $b_1$. In particular, if $b_1$ is $1$ then a bit-flip $\sigma_x$ operation must be carried out on $q_2$. Then, if $b_0$ is also $1$ a $\sigma_z$ operation must be applied to the $q_2$ qubit to change the sign to the $\lvert 1 \rangle_2$ states. As can be seen, at the end of the process the state of $q_0$ has been transferred to $q_2$ by exchanging entangled particles and two classical bits.

## Simulating the experiment

In order to show how the protocol behaves let us implement it using the IBM Qiskit library. First let us build a quantum circuit encoding the experiment described above. To do so, the following code can be used:

from qiskit import QuantumCircuit # Define a quantum circuit composed by 3 qubits and 3 classical bits qc = QuantumCircuit(3, 3) # Prepare a state on q_0 that should be teleported to q_2 qc.x(0) qc.barrier() # Create entanglement between q_1 and q_2 qc.h(1) qc.cx(1, 2) qc.barrier() # Simulate Alice measuring q_0 e q_1 in the Bell basis qc.cx(0, 1) qc.h(0) qc.barrier() qc.measure(0, 0) qc.measure(1, 1) qc.barrier() # Simulate Bob acting on q_2 based on the classical bit measured by Alice qc.x(2).c_if(1, 1) qc.z(2).c_if(0, 1) # Perform a measurement of Bob's qubit qc.measure(2, 2) qc.draw("mpl")

The obtained circuit looks something like this:

Once the circuit has been constructed, it can be either simulated, using one of the built-in qiskit simulators, or can be run on a real IBM quantum computer. For the purpose of today’s experiment, we will run the simulation using the `AerSimulator` using a model of the Santiago quantum computer. To do so we will first transpile the circuit to match the architecture’s instruction set (ISA) of the device in use and then run the simulation itself for a predefined number of shots, in our case 1024, to collect statistics about the final state of the device. This can be done as follows:

from qiskit_ibm_runtime.fake_provider import FakeSantiagoV2 from qiskit.transpiler.preset_passmanagers import generate_preset_pass_manager from qiskit_aer import AerSimulator from qiskit.visualization import plot_histogram # Select the Santiago model as a backend and transpile the circuit backend = FakeSantiagoV2() pm = generate_preset_pass_manager(optimization_level=1, backend=backend) isa_circuit = pm.run(qc) # Select the AerSimulator as the engine and run the simulation simulator = AerSimulator.from_backend(backend) job = simulator.run(isa_circuit, shots=1024) # Wait until the experiment is completed while job.status().name != "DONE": pass # Obtain the results and extract the counts result = job.result() counts = result.get_counts() # Plot the histogram of the measured states plot_histogram(counts)

The result of the simulation is the following:

To read the obtained results, keep in mind that qiskit stores the bits in reversed order. As such the measured value for the first qubit, $q_0$, will be the rightmost one while the value measured for the $q_2$ qubit will be the leftmost one. Once this has been clarified, one can easily see how in all the measurements Bob’s qubit resulted in the $\lvert 1 \rangle$ state confirming that the $\lvert 1 \rangle$ state, originally set by Alice on $q_0$, has been successfully teleported to Bob.