# Necessity of decoding in fault-tolerant quantum computation

On page 476 of Nielsen/Chuang's book it is stated:

The basic idea of fault-tolerant quantum computation is to compute directly on encoded quantum states in such a manner that decoding is never required.

I think it is confusing since error-correction operation should be periodically performed in the whole process of quantum computing. Could anyone please explain this sentence?

• There might be a slight misunderstanding to what decoding refers to here. This statement is regarding the decoding of quantum information (ie the logical qubit, which is essentially quantum information of a single qubit encoded into multiple qubits). Fault tolerance allows to perform all operations on the logical qubit, instead of having to 'decode' the quantum information into a physical qubit first. Then, error correction is still necessary. Doing this, we get error syndromes, which definitely need to be decoded. It's just not the type of decoding that the text refers to.
– JSdJ
Sep 23, 2022 at 10:11

Let's take the simple classical example of a repetition code. So, you have an encoded state $$\alpha|000\rangle+\beta|111\rangle.$$ Now imagine there is an $$X$$ error on qubit 2, so the state is $$\alpha|010\rangle+\beta|101\rangle.$$ If you decoded, you could see the state as $$(\alpha|0\rangle+\beta|1\rangle)|10\rangle.$$ Measuring qubits 2 and 3 would tell you where an error had occurred, and that no correction is necessary. This is not what we want to do.
Instead, we never want to stop the state being 3 qubits. This is achieved by introducing two ancilla qubits. You can use one to ask "are qubits 1 and 2 the same", and another to ask "are qubits 2 and 3 the same"? You measure those ancillas. In my example, they would both answer "no", so under the assumption that there's at most one error, there must be an error on qubit 2. So, we apply $$X$$ to qubit 2 and get back to the original state $$\alpha|000\rangle+\beta|111\rangle.$$ The game is to maintain the qubits in this encoded state, never looking at what the state is that's encoded, spotting if errors have occurred and fixing them.