ZXCalculus.jl
A implementation of ZX-calculus in Julia.
ZX-calculus is a graphical language for quantum computing. One can represent quantum states and operators as ZX-diagrams, and manipulate them with ZX-calculus rules. As an application of ZX-calculus, one can simplify quantum circuits with it. For more details about ZX-calculus, one can check this website.
GSoC
This package is a Google Summer of Code 2020 project.
Package Features
As an implementation of ZX-calculus, these following features are available similar to the Python implementation PyZX.
- Building up and manipulating ZX-diagrams
- Simplifying ZX-diagrams with specific rules
- Simplifying quantum circuits with ZX-calculus based algorithms including Clifford simplification and phase teleportation.
- Visualization for ZX-diagrams.
ZXCalculus.jl can be integrated into the quantum compiler YaoLang.jl. This makes the following features.
- Reading or outputting quantum circuits in various forms (for example, QASM, YaoBlock instructions, and so on).
- A compiler level circuit simplification engine.
Installation
To install ZXCalculus.jl, please open Julia's interactive session (known as REPL) and press ] key in the REPL to use the package mode, then type the following command
pkg> add ZXCalculusFor plotting, please install YaoPlots.jl in addition.
pkg> add YaoPlotsContents
Index
ZXCalculus.MatchZXCalculus.RuleZXCalculus.ZXDiagramZXCalculus.ZXDiagramZXCalculus.ZXDiagramZXCalculus.ZXGraphZXCalculus.ZXGraphZXCalculus.ZXGraphZXCalculus.ZXLayoutBase.matchBase.matchBase.replace!Base.replace!ZXCalculus.add_spider!ZXCalculus.circuit_extractionZXCalculus.clifford_simplificationZXCalculus.clifford_simplificationZXCalculus.insert_spider!ZXCalculus.is_interiorZXCalculus.phaseZXCalculus.phase_teleportationZXCalculus.phase_teleportationZXCalculus.push_gate!ZXCalculus.push_gate!ZXCalculus.pushfirst_gate!ZXCalculus.pushfirst_gate!ZXCalculus.qubit_locZXCalculus.rem_spider!ZXCalculus.rem_spiders!ZXCalculus.rewrite!ZXCalculus.rewrite!ZXCalculus.simplify!ZXCalculus.simplify!ZXCalculus.spider_type