Title: Paradigms of composition
Abstract: Scientists and engineers manage the blistering complexity of the natural world by telling simplified stories which we call systems. Every different field has a different notion of system tailored the kinds of questions its practitioners are asking, and the kinds of interventions they seek to make. Electrical engineers use circuit diagrams, epidemiologists and chemists use Petri nets, biologists use continuous time Markov processes, physicists use Lagrangians and Hamiltonians, computer scientists use deterministic automata, decision theorists use Markov decision processes, and everyone uses systems of differential equations.
These fields also have a sense of how their systems can be put together — composed — to form more complex systems. Circuits may be plugged into one another, Petri nets may share species, Markov processes may share places, Lagrangian and Hamiltonian systems may share variables, the output of one automaton may be fed into the input of another, and parameters of differential equations may be set by the variables of other differential equations. In each of these paradigms of composition, there are many different specific doctrines of system: circuits, Petri nets, Markov processes in the port plugging paradigm; Hamiltonian and Lagrangian mechanics in the variable sharing paradigm; deterministic automata, Markov decision processes, and systems of differential equations in the input/output paradigm; etc.
Applied category theorists have set out to make formal the ways these systems can be composed to study the way the behaviors — trajectories, solutions, steady states, operational semantics, etc — of composite systems relate to the behaviors of component systems. In this talk, I will argue that the basic algebra of composing open systems is a doubly indexed category (a.k.a. double copresheaf), and give examples of doubly indexed categories of systems. These examples are produced through a single, abstract cartesian 2-functor: the vertical slice construction, taking a double functor to a “vertical slice” doubly indexed category. We will then see how behaviors of systems can be organized into lax doubly indexed functors by constructing representables.