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.

enter image description here

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.

enter image description here

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:

enter image description here

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:

enter image description here

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.

enter image description here

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.


1 Answer 1


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.

  • $\begingroup$ 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 $\endgroup$ Mar 6, 2022 at 12:20
  • 1
    $\begingroup$ @Starbuck you’re assuming that the preparation step doesn’t spread errors badly. But this is precisely what PPP and PCP are trying to enforce. $\endgroup$ Mar 6, 2022 at 15:38
  • 1
    $\begingroup$ @StarBucK if a SINGLE error occurs early on in a state preparation, and the state preparation procedure happens to spread errors, then a single error early on could result in, say, a high-weight Pauli error on the overall state. PPP and PCP are precisely the conditions that say this doesn’t happen. $\endgroup$ Mar 6, 2022 at 15:40
  • $\begingroup$ 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. $\endgroup$ Mar 6, 2022 at 18:28
  • $\begingroup$ Overall, PCP+PPP means "the preparation does the job it is supposed to do AND errors "somehow" do not propagate". Only "somehow" because of my example (i) in which propagation is present. Those are two independent properties. But the most "important one" for a computer would be PCP I guess (however for proof purposes we might need PPP as well). $\endgroup$ Mar 6, 2022 at 18:29

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.