Research

I am interested in using category theory to study interconnected networks in computer science, chemistry, and linguistics. What follows is a brief introduction to my research interests.

Open Petri Nets

Petri nets are diagrams like the following where tokens (black dots) go through transitions (black bars) to go between different places (white circles).

A Petri net like this could be used to model a chemical reaction or the flow of a concurrent computer program. A simple example of a concurrent process that Petri nets can represent is the operation of a vending machine.

A possible explanation for why Petri nets show up in so many places is that they are presentations of symmetric monoidal categories. To design and analyze complex systems it's useful to be able to construct large complicated Petri nets from smaller onces. With this goal in mind we defined open Petri nets with specified inputs and outputs so they can be glued together along their boundaries. Details of this can be found in my paper Open Petri Nets with John Baez.

A well known problem in the study of Petri nets is reachability. This asks, given two markings of a Petri net whether you can reach one from the other via some finite sequence of firing the transitions. This problem is decidable but only in exponential time. It is also equivalent to many other problems in logic and computer science. A good survey of these results can be found in Esparza and Nielsens Decidability Issues for Petri Nets.

In Open Petri Nets we interpret reachability as a choice of semantics for open Petri nets. This takes the form of an almost functorial construction which sends an open Petri net to the relation which relates markings on the inputs to reachable markings on the outputs. Our paper does this from a 2-categorical point of view; our framework for open Petri nets involves 2-morphisms which represent changes between two open Petri nets. This allows us to study the effect of coarse-graining and black-boxing on the reachability of open Petri nets.

Open Petri nets and their reachability semantics are useful for constructing complex and concurrent programs in a formally verifiable way. These techniques are already being implemented in the Statebox language.

DisCoCat

I attended the Adjoint Category School 2018. This involved a research project with experts in the field of compositional distributional models of meaning (DisCoCat for short) and I wrote the following paper with Martha Lewis, Tae-Danae Bradley, and Brad Theilman:

Translating and Evolving: Towards a Model of Language Change in DisCoCat


A compositional distributional categorical model of meaning is a method of mathematically representing meaning in a natural language. The essential idea is to impose grammatical structure on specific, distributional meanings of words via a monoidal functor

F: G -> FVect

Here G is a category representing the grammatical structure of your language and FVect is category of finite dimensional vector spaces and linear transformations. A more thorough explanation of this can be found in this blog post which reviews this paper. In Translating and Evolving we defined a categorical notion of language change or translation between two compositional distributional categorical models of meaning. We worked through some examples of this and explicated a connection between these language models and their product space representation; a notion introduced in Mathematical Foundations for a Compositional Distributional Model of Meaning. We hope that our mathematical formalism will be useful for making DisCoCat models more compatible with machine learning and for automated translation.