4
$\begingroup$

Many algebraic structures, such as Frobenius algebras, or quasi-triangular Hopf algebras, can be formulated in an arbitrary symmetric monoidal category. They are given by a collection of morphisms, and a collection of axioms, which are equations between two different string diagrams.

There are many theorems which hold for any symmetric monoidal category, such as that the antipode of a quasi-triangular Hopf algebra is involutive. Such theorems are themselves equations between two string diagrams. They can be proven by a sequence of axioms translating the one string diagram into the other. Applying an axiom $A=B$ to a string diagram $X$ means identifying $A$ with a part of $X$, and replacing this part by $B$.

Are there any implementations for algorithms which automatically find such a sequence proving an algebraic statement?

I'm aware that something very similar is known as "double-pushout graph rewriting", for which some implementations exist. However, there is a subtle difference between string diagrams and graphs: Whereas in a string diagram, each morphism has different input and output components (e.g., the multiplication of an algebra has a "left" and a "right" input, and we cannot exchange left and right if the algebra is not commutative), there is no distinction between the different edges adjacent to a vertex in a graph.

Is there any implementation of graph rewriting which allows distinguishing the edges adjacent to a vertex?

$\endgroup$

1 Answer 1

1
$\begingroup$

Double-pushout graph rewriting is actually the basis of a long line of work on automated rewriting techniques for string diagrams: for a very thorough introduction I recommend Aleks Kissinger's PhD thesis.

TL;DR Both morphisms and objects are represented by nodes of a multigraph, edges between them endcode information about which objects are inputs/outputs of which morphisms, and edge labels are used to carry additional information such as ordering.

An implementation of these techniques is available in Quantomatic, currently in the process of being replaced by PyZX.

$\endgroup$

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .