Alexis Toumi
Alexis Toumi
Quantum circuits should be drawn as closely as possible to the standard notation for controlled gates, bra and kets, measurements etc.  Ideally, we want identity wires for bits and...
The dagger of bubbles is broken. Indeed, `Bubble.dagger` is inherited from `Box.dagger` which assumes that the subclasses keep the same arguments `name, dom, cod, _dagger` for initialisation. ``` >>> f...
For now, the `Diagram` class is based on lists of boxes and offsets, it allows only to encode planar diagrams. In order to encode diagrams in compact categories, we would...
We can already draw arbitrary permutations as sequences of swaps, but this can clutter diagrams unnecessarily. An easy fix is to define `Permutation` boxes, with an appropriate refactoring of the...
For now, DisCoPy has two ways to define diagrams: either directly as a list of boxes and offsets, or as an expression involving composition, tensor and identities. When drawing diagrams...
Pattern matching and rewriting methods would be needed. That is, given a `diagram` and a pair of parallel diagrams `left` and `right`, we want: 1. A method `diagram.match(left)` which generates...
Hello PyZX people! Just dropping by to let you know I've just added a back-and-forth interface between [DisCoPy](https://github.com/oxford-quantum-group/discopy) and PyZX. Also, I've started using [nbsphinx](https://nbsphinx.readthedocs.io/) for including jupyter notebooks into...
DisCoPy already has JSON de/serialisation for the `Diagram` class, see [dumps](https://docs.discopy.org/en/main/_api/discopy.cat.dumps.html) and [loads](https://docs.discopy.org/en/main/_api/discopy.cat.loads.html). We need the same feature for the `Hypergraph` class.
Smallest example to reproduce the bug: ```python >>> from discopy.frobenius import Ty, Box, Id >>> f = Box('f', Ty('x'), Ty('y')) >>> assert f == f @ Id() >>> hash(f) ==...
Every time we do `Functor.__call__(self, other)`, we dispatch on `self` which then goes through the whole hierarchy of classes. It would be more efficient to dispatch on `other` instead, e.g....