Computational category-theoretic rewriting
Kristopher Brown, Evan Patterson, Tyler Hanks, James Fairbanks

TL;DR
This paper shows how category theory can be used to develop efficient, correct graph rewriting algorithms, providing an extensible open-source library that supports various categorical constructions and data structures.
Contribution
It introduces a modern, categorical framework for graph rewriting, connecting theoretical constructs to practical, efficient algorithms and software implementation.
Findings
Provides a categorical foundation for graph rewriting techniques.
Develops an open-source library supporting multiple categorical constructions.
Enables efficient algorithms for pushout and pullback complements across data structures.
Abstract
We demonstrate how category theory provides specifications that can efficiently be implemented via imperative algorithms and apply this to the field of graph rewriting. By examples, we show how this paradigm of software development makes it easy to quickly write correct and performant code. We provide a modern implementation of graph rewriting techniques at the level of abstraction of finitely-presented C-sets and clarify the connections between C-sets and the typed graphs supported in existing rewriting software. We emphasize that our open-source library is extensible: by taking new categorical constructions (such as slice categories, structured cospans, and distributed graphs) and relating their limits and colimits to those of their underlying categories, users inherit efficient algorithms for pushout complements and (final) pullback complements. This allows one to perform double-,…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Code & Models
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsSoftware Engineering Research · Model-Driven Software Engineering Techniques · Logic, programming, and type systems
