# Is there benefit to extra stabilizers in a rotated surface code?

I'm reading Horsman et al. "Surface code quantum computing by lattice surgery" and I'm wondering about the rotated surface code.

Consider Figure 13:

This is supposed to have distance 5. But in (c), an $$X$$ error on the top left qubit and the qubit beneath it would be undetectable (brown plaquettes are $$X$$-stabilizer measurements). If there were a stabilizer measurement on every outside edge, this problem wouldn't occur. What am I misunderstanding?

an X error on the top left qubit and the qubit beneath it would be undetectable

That error would be detected by the flipping of the four body Z stabilizer adjacent to the lower qubit you operated on:

If you or I got X and Z mixed up, then the error is undetectable, but it corresponds to a topologically trivial cycle from a boundary to itself, so it has no effect on the logical qubit:

The 𝑋 error on the top left qubit and the qubit beneath it indeed produce the same measurement syndrome, but this does not mean they are uncorrectable. Lets call 𝑋 on the top left qubit $$𝑋_{topleft}$$ and 𝑋 beneath it $$X_{beneath}$$. $$X_{topleft} 𝑋_{beneath}$$ is a stabilizer and acts as the identity gate on the logical qubit. So we can choose to correct both errors with either $$𝑋_{topleft}$$ of $$X_{beneath}$$.

Take a look at: How does Surface-17 tell apart Z errors on Db and Dc?

• How can I see that $X_{topleft}X_{beneath}$ is a stabilizer? May 6 '20 at 17:12

I guess you are confusing Stabilizer types.

Brown plaquettes(X Stabilizer) & Yellow plaquettes(Z Stabilizer)

So if there is Error Z_topleft or Error Z_beneath, it gives same Syndrome. if this is your question,

Imagine if there are only Z Error occurred on the Rotated Surface Code ( Figure c).

Z_topleft Z_beneath is one of stabilizer. So we can choose Z_topleft or Z_beneath as a correction operator

1. Z_topleft Error
• Correction Operator (Z_topleft)

Z_topleft*Z_topleft = I

• Correction Operator (Z_beneath)

Z_topleft*Z_beneath -> Stabilizer

1. Z_beneath
• Correction Operator (Z_topleft)

Z_beneath*Z_topleft -> Stabilizer

• Correction Operator (Z_beneath)

Z_beneath*Z_beneath = I