Skip to main content
KetQat

Appearance

Syndrome explorer

A stabilizer code never looks at the state it protects — measuring it would destroy the superposition. It measures only whether each of its generators was disturbed. Apply an error below and follow what happens: which generators fire, what the decoder concludes from that alone, and whether the correction restored the logical state or silently changed it.

Five-qubit perfect code, error ZZZZZ

Undetected — silent logical error

This error commutes with every generator, so the syndrome is blank and the decoder does nothing -- yet the operator is not a stabilizer, so it has altered the logical state. Silent logical failure, which is what it means for Five-qubit perfect to have distance 3: some weight-5 error is invisible to it.

What each generator measured

Each row is a stabilizer generator, each column a qubit. A cell is marked when the error and the generator disagree on that qubit in a way that costs a sign. The syndrome bit is the parity of the marked cells in that row — so two marks cancel and read 0.

Stabilizer generators of the Five-qubit perfect code against the error ZZZZZ, showing which qubits contribute to each syndrome bit and the resulting bit.
Generatorq0q1q2q3q4MarksBit
ErrorZZZZZweight 5
XZZXI[X]ZZ[X]·20
IXZZX·[X]ZZ[X]20
XIXZZ[X]·[X]ZZ20
ZXIXZZ[X]·[X]Z20

Syndrome 0000 — every generator commuted with this error, so the measurement returned nothing at all.

Decode and correct

The error applied, the syndrome measured, the correction the decoder inferred, and the operator left on the state afterwards.
Error appliedZZZZZweight 5; never observed by the decoder
Syndrome measured0000the only thing the decoder sees
Correction inferredIIIIIa different operator with the same syndrome
ResidualZZZZZa logical operator, so the encoded state has changed

Success is the residual being a stabilizer, not the decoder naming the error. Those differ: on a degenerate code the decoder routinely names a different operator and restores the state perfectly, and scoring by equality would count that as a failure.

Every error of weight 1 and 2

All Pauli errors of each weight on the Five-qubit perfect code, classified by outcome. Computed exhaustively, not sampled.
WeightErrorsCorrectedMiscorrectedUndetectedTrivial
11515000
29009000

“Trivial” counts operators that are themselves stabilizers — they act as the identity, so there is nothing to detect. Every weight-1 error here has its own syndrome, so the decoder can always name the operator that occurred.

The decoder’s lookup table

The lowest-weight error consistent with each syndrome the Five-qubit perfect code can report. This is minimum-weight decoding done exhaustively, which is honest at this size and is not a substitute for matching on a large code.
SyndromeCorrection appliedWeight
0000← measuredIIIII0
0001XIIII1
0010IIZII1
0011IIIIX1
0100IIIIZ1
0101IZIII1
0110IIIXI1
0111IIIIY1
1000IXIII1
1001IIIZI1
1010ZIIII1
1011YIIII1
1100IIXII1
1101IYIII1
1110IIYII1
1111IIIYI1

Decoder benchmarks measured under identical conditions live in the QEC Lab. This page computes exactly and exhaustively on codes small enough for that to be honest; it is a way to see what a syndrome is, not a decoder benchmark.