Picturing Quantum Software
An Introduction to the ZX-Calculus and Quantum Compilation
[ Preprint Version 1.1.0 September 2024 ]

Aleks Kissinger and John van de Wetering

October 21, 2024
Contents
0.1 About This Version
1 Introduction
1.1 How to read this book
1.2 Organisation
2 The Quantum Circuit Model
2.1 Preliminaries
2.2 A blufferā€™s intro to quantum theory
2.3 Gates and circuits
2.4 A dash of quantum algorithms
2.5 A dash of complexity theory
2.6 Summary: What to remember
2.7 Advanced Material*
2.8 References and further reading
3 The ZX-Calculus
3.1 ZX-diagrams
3.2 The rules of the ZX-calculus
3.3 ZX in action
3.4 Extracting circuits from ZX-diagrams
3.5 Summary: What to remember
3.6 Advanced Material*
3.7 References and further reading
4 CNOT circuits and phase-free ZX-diagrams
4.1 CNOT circuits and parity matrices
4.2 The phase-free ZX calculus
4.3 Phase-free states and š¯”½2 linear subspaces
4.4 Summary: What to remember
4.5 Advanced Material*
4.6 References and further reading
5 Clifford circuits and diagrams
5.1 Clifford circuits and Clifford ZX-diagrams
5.2 Simplifying Clifford diagrams
5.3 Clifford normal forms
5.4 Classical simulation of Clifford circuits
5.5 Completeness of Clifford ZX-diagrams
5.6 Summary: What to remember
5.7 References and further reading
6 Stabiliser theory
6.1 Paulis and stabilisers
6.2 Stabiliser measurements
6.3 Stabiliser states and the Clifford group
6.4 Stabiliser tableaux
6.5 The Clifford hierarchy
6.6 Summary: What to remember
6.7 References and further reading
7 Universal circuits
7.1 Path sums
7.2 Circuit synthesis and path sums
7.3 Pauli exponentials
7.4 Pauli exponential compilation
7.5 Hamiltonian simulation
7.6 Simplifying universal diagrams
7.7 Summary: What to remember
7.8 Advanced material*
7.9 References and further reading
8 Measurement-based quantum computation
8.1 Measurement fragments
8.2 Determinism and gflow
8.3 Optimising deterministic measurement patterns
8.4 From measurement patterns to circuits
8.5 Measurements in three planes
8.6 There and back again
8.7 Summary: What to remember
8.8 References and further reading
9 Controlled gates and classical oracles
9.1 Controlled unitaries
9.2 H-boxes
9.3 Reversible Logic synthesis
9.4 Constructing Toffoli gates with many controls
9.5 Adders
9.6 Summary: what to remember
9.7 Advanced Material*
9.8 References and further reading
10 Clifford+T
10.1 Universality of Clifford+T circuits
10.2 Scalable ZX notation
10.3 Rewriting Clifford+T diagrams
10.4 Advanced T-count optimisation
10.5 Catalysis
10.6 Summary: What to remember
10.7 Advanced Material*
10.8 References and further reading
11 Quantum error correction
11.1 Classical codes and parameters
11.2 Quantum stabiliser codes
11.3 CSS codes
11.4 Fault-tolerance
11.5 Magic state distillation
11.6 Summary: What to remember
11.7 References and Further Reading
Bibliography

[next]