Aleks Kissinger
PsiQuantum/USyd Fault-tolerance seminar, 2025
ZX := a handy tool for working with quantum
computations using graph rewriting
![]() |
![]() |
![]() |
Optimisation | Simulation & Verification | Error Correction |
$:=$ | $\ \ |0...0\rangle\langle 0...0| + e^{i \alpha} |1...1\rangle\langle 1...1|$ | |
$:=$ | $\ \ |{+}...{+}\rangle\langle {+}...{+}| + e^{i \alpha} |{-}...{-}\rangle\langle {-}...{-}|$ |
$\textit{CNOT} :=$
$\sqrt{X} :=$
$Z_\alpha :=$
A complete set of equations for qubit QC
A complete set of equations for qubit Clifford QC
efficient synthesis, equality checking, classical simulation, ...
$\approx$ "graphical stabiliser theory"
$CNOT =$
$CZ =$
$H =$
$:=$
$R_Z[\alpha] =$
$R_X[\alpha] =$
$|k\rangle\langle k| \propto$
...collapse the quantum state to a fixed one,
depending on the outcome $k \in \{0,1\}$:
$k = 0$
$\Rightarrow$
$+1$ eigenspace of $Z \otimes \ldots \otimes Z$
$k = 1$
$\Rightarrow$
$-1$ eigenspace of $Z \otimes \ldots \otimes Z$
$\propto$
Any other multi-qubit measurement can be obtained by conjugating with local Cliffords, e.g.
Pauli errors are modelled by introducing X, Y, or Z
flips on edges in a ZX-diagram:
Anti-commuting errors flip measurement outcomes:
...give us a simple dictionary between QEC codes and ZX-diagrams, e.g. the GHZ code can be fully represented as:
For any CSS code, we can compute the graphical encoder from stabilisers and logicals. This computation is efficient and easy.
AK. "Phase free ZX diagrams are CSS Codes (...or how to graphically grok the surface code)". arXiv:2204.14038
For any stabiliser code, this computation is still efficient,
but it takes a bit more work.
Khesin, Lu, Shor: arXiv:2301.02356 | Khesin & Li: arXiv:2406.12083
But codes are only half the story in FTQC. We also need to know how to implement operations fault-tolerantly.
Q: Is the LHS really equivalent to the RHS?
A: It depends on what "equivalent" means.
They both give the same linear map, i.e. the behave the same in the absence of errors.
But they behave differently in the presence of errors, e.g.
$D \ \hat{=}\ E$
$D\ \hat{=}\ E \implies D = E$
$D = E \ \ \not\!\!\!\implies D\ \hat{=}\ E$
Similar to space-time codes, we can model faults by tracking their locations in a circuit or ZX-diagram.
$F \in \mathcal P^{|\mathcal L|}$
basic faults $:=$ all single-qubit Paulis
basic faults $:=$ all single-qubit Paulis (memory errors) +
some multi-qubit Paulis (correlated gate/measurement errors)
Ex: sub-models, where we remove some basic faults to represent components we assume are noise-free:
Definition: Two circuits (or ZX-diagrams) $C, D$ are called fault-equivalent:
$C \ \hat{=}\ D$
if for any undetectable fault $F$ of weight $w$ on $C$, there exists an undetectable fault $F'$ of weight $\leq w$ on $D$ such that $C[F] = D[F']$
Idea: start with an idealised computation (i.e. specification) and refine it with fault-equivalent rewrites until it is implementable on hardware.
Specification/refinement has been used in formal methods for classical software dev since the 1970s. Why not for FTQC?
"Fault Tolerance by Construction". Rodatz, Poór, Kissinger
arXiv:2506.17181