# Stabilizer circuit synthesis via Clifford gates

I have been working with stabilizer codes and I understand the mathematical way that they are described and how to simulate such in a classical computer in order to check their performance.

However, lately I have been wondering how this class codes would be implemented physically in terms of Clifford gates in an actual quantum computer. I have not found much about such mapping in the literature, and less of an actual general algorithm (most of the things I have found are just examples, and not general algorithms that realize the task). Can anyone give some insight about this circuit synthesis problem? Are there any general algorithms that realize this circuit synthesis? Are there optimized versions?

• Which stabilizers are you thinking of? I thought many stabilizers are implemented in terms of Paulis and are relatively straightforwards – C. Kang Aug 8 at 5:44
• Implementing stabilizer circuits in terms of Clifford gates. – Josu Etxezarreta Martinez Aug 24 at 7:29
• Yes - what I'm trying to say is that most common stabilizers are already in terms of Paulis / H / CNOT, which are Clifford, so their implementation is already straightforwards. Which stabilizers are you thinking of? – C. Kang Aug 24 at 14:55
• What I am thinking of is to create a circuit consisting of H/CNOT/Phase (Clifford group) that does actually transform the input stabilizer (which is trivial as it is uncoded) into the desired stabilizer state. I do not see why you say that it is straightforward, could you give an example? – Josu Etxezarreta Martinez Aug 25 at 7:45
• Are we talking about the same stabilizers? For example, the code provided here is just Paulis. – C. Kang Aug 25 at 15:10

As narrowed down in the comments, the focus of my answer is on the process of encoding an arbitrary state, so that when an error occurs it may be corrected. (Source for the diagrams / info)

My understanding is that the Hamming parity check matrix is used to determine the encoding unitary. Consider the [[7, 1, 3]] Steane code, which has the following parity matrix: And the associated circuit: So, the first three qubits correspond with the first three columns of the parity check matrix. This enables us to yield a superposition where the first three qubits range from 0-3, and the last four qubits have maintained their parity.

One open question for me remains, namely in the necessity for the repetition code to begin with. Answers/edits on this front appreciated!

• Yeah, that is an example of what I am asking about. However, it is a particular circuit for a particular code. The real question is if there is a general algorithm that takes the parity check matrix (i.e. the stabilizers) of any stabilizer code as input and outputs an encoding circuit in terms of Clifford gates. – Josu Etxezarreta Martinez Aug 27 at 7:54
• This is the one: you need to reframe the parity check matrix so that the first few columns are the unit vectors. Then, CNOT from those unit vector bits to the main body bits – C. Kang Aug 27 at 17:08
• What about the rotation gates and the first cNOT? Additionally, the parity check matrix you put is classical, if you see the quantum parity check matrix of the Steane code, it is constructed as a CSS code with such $H$ parity check matrix used twice. – Josu Etxezarreta Martinez Aug 28 at 8:08
• The CNOT gates are cliffords, and the rotation gates stated are explained as Hadamards in the paper – C. Kang Aug 28 at 15:32
• For your second question, it does seem like that even though the classical matrix is repeated in the quantum parity check matrix, that the single classical check is used for the encoding process – C. Kang Aug 28 at 15:42