0

I am looking at the transversal logical gates for the Steane code.

I am having trouble trying to implement the $CNOT$ logical gate for this code.

I understand that we can transversally implement a logical $S$ gate by:

$$U = S \otimes S^{\dagger} \otimes S \otimes S^{\dagger} \otimes S \otimes S^{\dagger} \otimes S$$

We can confirm this is a logical gate for the code by first confirming that it sends stabilizers to stabilizers. The X stabilizers for this code are $X_{4}X_{5}X_{6}X_{7}, X_{2}X_{3}X_{6}X_{7}, X_{1}X_{3}X_{5}X_{7}$

$$UX_{i}X_{j}X_{k}X_{l}U^{\dagger} = (X_{i}X_{j}X_{k}X_{l})(Z_{i}Z_{j}Z_{k}Z_{l})$$ so $U$ sends stabilizers to stabilizers.

Then I checked its effect on logical operators and found that $UX_{L}U^{\dagger} = Y_{L}$ and $UZ_{L}U^{\dagger}=Z_{L}$, so I found that $U$ implements a logical $S_{L}$ gate.

However, I have read that you can also transversally implement the CNOT gate for any CSS code. However, I am having trouble doing this.

Does it mean that I can implement $U=CNOT \otimes CNOT \otimes CNOT \otimes CNOT \otimes CNOT \otimes CNOT \otimes CNOT$?

I am certain this is not the case as $CNOT$ is a $2-$ qubit gate. However, I don't understand how the $CNOT$ is physically implemented so that I can check if it sends stabilizers to stabilizers and so that I can check its effect on logical operators?

Any help appreciated.

am567
  • 771
  • 2
  • 8

1 Answers1

1

Your goal is to implement a logical $CNOT$ gate for the Steane code (or any larger triangular color code). This means you want to perform a $CNOT$ gate between two logical qubits. As the Steane code only encodes one logical qubit, you will necessarily need two instances of the Steane code to find it. Your naive approach was correct in the sense that it had a 14-qubit support.

As the Steane code is a CSS code, it must have a transversal logical $CNOT$ gate (see e.g. this question). When working with only one instance of a stabilizer code, transversality means that the operator interacts individually with the physical qubits of the code i.e. only through 1-qubit gates.

When several instances of stabilizer codes are around, transversality means that the operator cannot use multi-qubit gates between the physical qubits of one instance of code. However, it can apply any $n$-qubit gate between any $n$ individual physical qubits from $n$ different instances of code. Transversality ensures that no physical errors is spread by the operator within each instance of the code. It does not prevent errors from spreading to other instances.

In your case, this means your logical $CNOT$ can be transversal and use 2-qubit gates, but they all have to act on both copies of the Steane code, i.e. controlling on one copy and targeting the other one.

A good way to work out the required directions for the $CNOT$ gates is to first look at (all representatives of) the logical operators of both codes, to choose the $CNOT$ direction in order to have a logical $CNOT$ behavior and then to check that the stabilizers are preserved.

In the end, you should get something like this: $$ U = CNOT_{1 \to 1^{\prime}} \cdot CNOT_{2 \to 2^{\prime}} \cdot CNOT_{3 \to 3^{\prime}} \cdot CNOT_{4 \to 4^{\prime}} \cdot CNOT_{5 \to 5^{\prime}} \cdot CNOT_{6 \to 6^{\prime}} \cdot CNOT_{7 \to 7^{\prime}} $$ In other words, the controls are all on the same side and target the analoguous qubits of the other code. Reversing all the $CNOT$ reverses the logical $CNOT$. I did not use $\otimes$ symbols as they can be confusing, but all $CNOT$ gates have disjoint support, so $U$ is transversal.

Along the same line, you can search for a transversal logical $CZ$ gate for the Steane code.

AG47
  • 1,575
  • 3
  • 16