ZXCalculus.jl
ZXCalculus.jl copied to clipboard
An implementation of ZX-calculus in Julia
Dear Maintainers, This pull request introduces several improvements, including the addition of optional plotting functionality for ZXDiagrams and ZXGraphs and closes #101 and fixes #100. The plotting function uses Vega...
See https://mathplus.de/topic-development-lab/tes-summer-2024/qoc-workshop/ Just talked with @contra-bit about this - this is the issue to send you the link. In case I can put you in contact with some of the...
We need an automatic test for equivalent checking. Previously I used YaoZX to test manually. Now, can we use BQCESubroutine? @Roger-luo
We need to support `DInv` which is the inverse of `D` to make it more expressive.
Avoid using the first 2n indices for inputs and outputs as a pattern.
```julia @adt public struct SimpleExpr Literal(::Number) Variable(::Symbol, ::Type) Minus(::SimpleExpr) Add(::Vector{SimpleExpr}) PiImExp(::SimpleExpr) end ```
We need to support typed symbolic expressions in `PiUnit` to handle potential use cases (symbolic circuit simplification).
`ZXLayout` is not necessary when rewriting. It is only used when plotting. It should be removed. And generate dynamically when plotting.
* [ ] `simplify!(Rule{:lc}(), ::ZXDiagram)` should not work, but it does not give an error. * [x] the `_ctrl` in `push_ctrl_gate!` looks not necessary. * [ ] the naming of...