# Diagrammatic language for fault-tolerance: I don't understand the difference between preparation correctness and propagation properties

I am learning the diagrammatic language for fault-tolerance which allows to show in an "easy" manner if circuits are fault-tolerant. I first put a reminder of the definitions and then I ask my question.

The following symbol represents an $$s$$-filter. The Horizontal line behind it represents a logical qubit encoded with physical qubits.

What an $$s$$ filter does is that it takes the qubit at its input, and project it on the subspace spanned by all codewords impacted by $$0,1...$$ up to $$s$$ errors.

Then, I can define a preparation having $$s$$ faults with the following symbol.

This is the gadget that will initialize a logical qubit in a given logical state. There is no line "on the left" as there is no logical qubit before the preparation.

I can define an ideal decoder with the following symbol:

An ideal decoder will (perfectly) measure the syndrome, perform the appropriate correction and then decode the logical qubit (the green line represent an "un-encoded" qubit).

Finally, I define an ideal preparation:

This is basically a preparation having no fault and acting as you see on an un-encoded qubit.

## My question:

On this lecture (at min 44:31) or this talk at min 35:37, Daniel Gottesman introduces the preparation and correctness properties as follow.

The variable $$t$$ is the number of errors that the code can correct.

I don't understand why PPP doesn't imply PCP.

Indeed, "in my own words" $$PPP=True$$ means "For a preparation having less than $$t$$ faults, the output state will have less than $$t$$ errors" (we ask the errors to not propagate "too much" during the preparation).

$$PCP=True$$ means "If the preparation has less than $$t$$ faults, a perfect syndrome measurement+recovery would create the exact state that should have been prepared in an ideal world where no faults and errors exist".

But then, if $$PPP=True$$, a perfect syndrome measurement+recovery will create the exact same that should have been prepared. Because of that shouldn't we have $$PPP \Rightarrow PCP$$ ?

It seems that those are two completely un-related properties and I don't understand why.

The s-filter projects onto ALL states that are within s of SOME code word. It doesn’t tell you that you’re within s of the specific code word you started with. Even if PPP is true, it doesn’t eliminate the possibility that you try to prepare the logical $$|0\rangle$$, have s errors during the perpetration, and therefore accidentally prepare a state that is within s of $$|1\rangle$$. You need to separately enforce that not only does your preparation take you to some state that is close to a code word, it takes you to a state that is close to the code word you wanted to prepare! This is what PCP enforces.
• Hello. Thank you for your answer. Actually, I totally agree with the first part of your message, and this is why I am even more confused. Both in PPP and PCP, there is the condition $s \leq t$, where $t$ is the number of errors that the code can correct. For me, this condition exactly ensures that if you tried to prepare the logical $|0\rangle$, and have $s$ errors during its preparation, you are within $s$ errors of $|0\rangle$ but "further away" from $|1\rangle$. Hence I don't see how we could be closer to another codeword than the one we prepared. Hence, for me PPP $\Rightarrow$ PCP Mar 6 at 12:20
• Thanks. Would you agree with the following? (i) PPP doesn't always ensure that errors do not propagate. For instance for $s=t=1$, I could imagine that my preparation created a logical error (in this case one fault induced many errors but the resulting space being in the code space, PPP will be verified). (ii) PCP says that for $s \leq t$, the preparation "does the job it is supposed to do". Then, PPP does not imply PCP from my example (i). Also, PCP does not imply PPP because in PCP we could have one fault inducing two errors conceptually possible. Mar 6 at 18:28