Double pushout rewriting of C-sets
We generalize a pushout complement algorithm from graph rewriting to finitely-presented C-sets and structured cospans, allowing us to perform double pushout rewrites generically over a broad class of combinatorial data structures and open systems thereof. As part of this work, we present a general algorithm for pattern matching in C-sets via the construction of C-set homomorphisms, which generalizes the computation of graph homomorphisms. We demonstrate the utility of this generalization through applications to Petri net model space exploration, rewriting of wiring diagrams with symmetric monoidal structure, and open Petri net rewriting. These applications highlight the important productivity gains due to our implementation of C-set rewriting for arbitrary C, which allows us to easily extend our implementation to new categorical constructions, including slice categories and cospan categories.
READ FULL TEXT