# What are some applications of the ZX calculus?

Recently, I came across ZX calculus. It is an interesting method to describe quantum circuits. However, it seems to me, too complicated for day-to-day use in circuit design (something like to program an application in assembler instead of in higher level language) because it uses only few quantum gates ($$Rx$$, $$Ry$$, $$H$$ and $$CNOT$$).

My question is for what purposes the ZX calculus was developed?

The ZX calculus was not designed to be a programming language, or a language in which to specify things at a high level. It is a language for reasoning about things on a relatively low level, albeit without digging into the actual physics.

What it was designed for is hinted at in your observations, and by the name of the ZX calculus itself.

• It can describe individual quantum gates: so it is a notation for circuits (and other quantum procedures — one of the things the ZX calculus was explicitly designed for was to analyse measurement based quantum computing [arXiv:0906.4725]; and Dom Horsman and I showed that it has a very close connection to surface code lattice surgery [arXiv:1704.08670]).

• It is a calculus : it is a notation in which you can actually do calculations. If you're good with reasoning about commutation relations, you can do this to a limited extent with ordinary circuit diagrams; for the ZX calculus you can in principle do this entirely with diagrams.

There are people who are working on higher-level ZX descriptions of procedures on multiple qubits — eg. [arXiv:1905.00041] — which might become suitable to actually program with if developed further. But the existing version of the ZX calculus is more suitable for an intermediate representation of a compiler, or indeed performing computations or analysis by hand, than as a programming language.

• Do you have some references about higher-level ZX versions? I saw this extention of ZX for multiple wires & matrices, but I'd love to here more about extensions. Feb 10 '20 at 21:41
• @tobiasBora: what you describe is exactly what I have in mind. (I'll add links to references when I get a moment later today.) I couldn't tell you what other people are working on to extend that, but I and others agree that further developments in that direction are one of the better ways to further develop the ZX calculus. If you are looking at [zxcalculus.com], then you'll be relatively up to date. Feb 11 '20 at 9:08
• Ok thanks! If you want to save some time I guess the reference is "SZX-calculus: Scalable Graphical Quantum" by Titouan Carette, Dominic Horsman and Simon Perdrix arxiv.org/pdf/1905.00041.pdf Feb 11 '20 at 10:44