# Gate teleportation¶

“Entanglement-assisted communication becomes entanglement-assisted computation” - Furusawa [7]

In the quantum state teleportation algorithm, the quantum state is transferred from the sender to the receiver exactly. However, quantum teleportation can be used in a much more powerful manner, by simultaneously processing and manipulating the teleported state; this is known as **gate teleportation**.

But the biggest departure from its namesake is the method in which the gate to be ‘teleported’ is applied; rather than applying a quantum unitary directly to the first qumode in the system, the unitary is applied via the projective measurement of the first qumode onto a particular basis. This measurement-based approach provides significant advantages over applying unitary gates directly, for example by reducing resources, and in the application of experimentally hard-to-implement gates [7]. In fact, gate teleportation forms a universal quantum computing primitive, and is a precursor to cluster state models of quantum computation [8][9].

## CV implementation¶

First described by Gottesman and Chuang [8] in the case of qubits, gate teleportation was generalized for the CV case by Bartlett and Munro in 2003 [10]. In an analogous process to the discrete-variable case, you begin with the algorithm for **local state teleportation**:

Note that:

- Unlike the spatially-separated quantum state teleportation we considered in the previous section,
**local teleportation**can transport the state using only two qumodes; the state we are teleporting is entangled directly with the squeezed vacuum state in the momentum space through the use of a controlled-phase gate. - The state is then teleported to qumode \(q_1\) via a homodyne measurement in the computational basis (the position quadrature).
- Like in the previous section, to recover the teleported state exactly, we must perform Weyl-Heisenberg corrections to \(q_1\); here, that would be \(F^\dagger X(m)^\dagger\). However, for convenience and simplicity, we write the circuit without the corrections applied explicitly.

Rather than simply teleporting the state as-is, we can introduce an arbitrary unitary \(U\) that acts upon \(\ket{\psi}\), as follows:

Now, the action of the unitary \(U\) is similarly teleported along with the initial state — this is a trivial extension of the local teleportation circuit. In order to view this in as a measurement-based universal quantum computing primitive, we make a couple of important changes:

- The inverse Fourier gate is absorbed into the measurement, making it a homodyne detector in the momentum quadrature
- The unitary gate \(U\), if diagonal in the computational basis (i.e., it is of the form \(U=e^{i f(\hat{x}^i)}\)), commutes with the controlled-phase gate (\(CZ(s)=e^{i s ~\hat{x_1}\otimes\hat{x_2}/\hbar}\)), and can be moved to the right of it. It is then also absorbed into the projective measurement.

Additional gates can now be added simply by introducing additional qumodes with the appropriate projective measurements, all ‘stacked vertically’ (i.e., coupled to the each consecutive qumode via a controlled-phase gate). From this primitive, the model of cluster state quantum computation can be derived [9].

Note

What happens if the unitary is *not* diagonal in the computational basis? In this case, **feedforward** is required; additional qumodes and projective measurements are introduced, with successive measurements dependent on the previous result [11].

## Blackbird code¶

Consider the following gate teleportation circuit,

Here, the state \(\ket{\psi}\), a squeezed state with \(r=0.1\), is teleported to the final qumode, with the quadratic phase gate (`Pgate`

) \(P(s)=e^{is\hat{x}^2/2\hbar}\) teleported to act on it - with the quadratic phase gate chosen as it is diagonal in the \(\x\) quadrature. This can be easily implemented using the Blackbird quantum circuit language:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | ```
# create initial states
Squeezed(0.1) | q[0]
Squeezed(-2) | q[1]
Squeezed(-2) | q[2]
# apply the gate to be teleported
Pgate(0.5) | q[1]
# conditional phase entanglement
CZgate(1) | (q[0], q[1])
CZgate(1) | (q[1], q[2])
# projective measurement onto
# the position quadrature
Fourier.H | q[0]
MeasureX | q[0]
Fourier.H | q[1]
MeasureX | q[1]
``` |

Some important notes:

- As with the state teleportation circuit above, perfectly squeezed vacuum states are not physically realizable; preparing the states with a squeezing factor of \(|r|=2\) (\(\sim 18\text{dB}\)) is a reasonable approximation.

- The Blackbird notation
`Operator.H`

denotes the Hermitian conjugate of the corresponding operator.

- Here, we do not make the corrections to the final state; this is left as an exercise to the reader. For additional details, see the gate teleportation commutation relations derived by van Loock [11].

To easily check that the output of the circuit is as expected, we can make sure that it agrees with the (uncorrected) state

which can be generated as follows:

```
Squeezed(0.1) | q[3]
Fourier | q[3]
Xgate(q[0]) | q[3]
Pgate(0.5) | q[3]
Fourier | q[3]
Xgate(q[1]) | q[3]
```

Note

A fully functional Strawberry Fields simulation containing the above Blackbird code is included at `examples/gate_teleportation.py`

.