Blog / Technical reports

Symbolic presentations of dynamical systems

Author

Owen Lynch

Published

2023-05-08

Abstract

A follow-up to “Algebraic Geometry for the Working Programmer”, this post explains a category-theoretic approach to symbolic open dynamical systems.

This is a crosspost from the AlgebraicJulia blog.

1 Open dynamical systems

We begin this post by talking about open dynamical systems. Open dynamical systems have been studied extensively within applied category theory (see Myers (2022)), and additionally have been a part of AlgebraicJulia for a while, with AlgebraicDynamics, accompanying blog post.

In this post, I sketch out an approach to doing open dynamical systems symbolically. This means that the vector fields for open dynamical systems are given by symbolic expressions, rather than arbitrary Julia functions.

This has the following advantages.

  1. Expressions can be serialized and stored in a database.
  2. Expressions can be compared for equality modulo the laws of a theory.
  3. The execution of expressions can be optimized in different ways, or translated into other formats.
  4. Expressions can have metadata attached.
  5. Expressions can be input from non-Julia programs.
  6. Expressions can be displayed in a nice format to the user.

In my previous blog post, I lay out the mathematics behind symbolic representation of functions between spaces. Here I now apply that theory to the specific case of open dynamical systems.

We start out by reviewing open dynamical systems.

In this section we use the word “space” and don’t define what a space is. This is because in a certain sense, we are agnostic as to the exact definition of space. All we really care is that the space supports some notion of derivative, as we are doing continuous-time dynamical systems. In order of increasing generality, a space could mean:

Pick whichever level of generality you are comfortable with, and mentally replace every time I say “space” with that choice. I’ll generally give examples with \mathbb{R}^n; if you know about the more general types of spaces then you should know enough to generalize what I am saying.

The important thing is that any space X supports a notion of tangent space at a point x, denoted by T_x X, and tangent bundle denoted by T X. The tangent bundle consists of all of the tangent spaces put together, i.e. as sets TX = \sum_{x \in X} T_x X If X = \mathbb{R}^n, then T_x X \cong \mathbb{R}^n and T X \cong \mathbb{R}^n \times \mathbb{R}^n.

A vector field on a space X consists of a section of the tangent bundle v \colon X \to T X, i.e. a function v such that v(x) \in T_x X for all x \in X. This gives a tangent vector at each point; you can visualize this by searching “vector field” in google images.

Finally, I will behave like a physicist in that I will not overburden myself with saying precisely how differentiable all my functions are. If a function needs to be differentiable, then you can assume that it is.

With these preliminaries out of the way, we can start talking about dynamical systems.

Definition 1 A closed dynamical system consists of:

  1. A space X, called the state space
  2. A vector field v \colon X \to T X, with v(x) \in T_x X for all x \in X.

We often refer to v as the “dynamics” of the system. Applied mathematicians and physicists might be more used to seeing such a system written using the equation

\dot{x} = v(x)

However, as a mathematical object, the “data” of this equation is simply the function v.

Example 1 Given any Petri net P (where P(S) is the set of species and P(T) is the set of transitions), with fixed positive rates r \in \mathbb{R}^{P(T)}_{>0}, there is a closed dynamical system (X_P, v_P), where

  • X_P = \mathbb{R}^{P(S)}_{>0}
  • v_P \colon X_P \to T X_P is given by the mass action formula

In the real world, systems are rarely closed; other parts of the world have influence on the system. Classically, we might capture this with the equation

\dot{x} = v(x, u)

where u is some other variable. However, this only captures part of “openness”; this system might also affect other systems, or we may only observe some part of a system. So we also have an “output” equation

y = f(x)

Our system might affect other systems through y.

We now state this more formally.

Definition 2 An open dynamical system consists of three spaces and two functions. The spaces are:

  • A state space X
  • An input space I
  • An output space O

The functions are:

  • v \colon X \times I \to T X, such that v(x,u) \in T_x X.
  • f \colon X \to O

Example 2 Given a Petri net P, there is an open system with

  • X_P = \mathbb{R}^{P(S)}_{>0}
  • I_P = \mathbb{R}^{P(T)}_{>0}
  • O_P = \mathbb{R}^{P(S)}_{>0}

and

  • v_P \colon X_P \times I_P \to T X_P given by mass action with rate parameters u \in I_P
  • f_P \colon X_P \to O_P given by the identity

Example 3 An open dynamical system with I=1, O=1 is a closed dynamical system.

2 Composition of dynamical systems

In this section, we learn about how to compose dynamical systems with a construction from category theory called lenses. If you have learned about lenses before from functional programming, you may have some preconceived notion that lens are a way of accessing nested fields in a data structure. However, here we are using lens in a very different way; it might be useful to just think about “lens” as a new word. The two uses of lenses are formally the same, but have a different feel.

Lenses are morphisms in a certain category, so before we can define lenses we have to define the objects in that category.

Definition 3 An arena consists of a space X and a bundle over it, which is a space E and a map p \colon E \to X.1

We think about an arena as a generalized specification of the inputs/outputs of a system. At each output x \in X, there are allowed inputs E_x := p^{-1}(x). We write an arena as \begin{pmatrix}E \\ X\end{pmatrix}. In a special case, the “output” of a system is its state, and the “input” is the direction that you tell it to go in, i.e. a tangent vector.

Example 4 Given any space X, there is an arena \begin{pmatrix}TX \\ X\end{pmatrix}, where p \colon TX \to X sends v \in T_x X to x (recall that T X = \sum_{x \in X} T_x X).

Example 5 Given any two spaces O and I, there is an arena \begin{pmatrix}O \times I \\ O\end{pmatrix}, where p \colon O \times I \to O is the projection (y, u) \mapsto y. This is known as a simple arena, because the inputs don’t depend on the outputs at all; they are the same everywhere. A lens between two simple arenas is known as a simple lens.

Lenses are then a way of mapping outputs forward and inputs backward.

Definition 4 Suppose that \begin{pmatrix}B \\ A\end{pmatrix} and \begin{pmatrix}D \\ C\end{pmatrix} are arenas. Then a lens between them consists of a function f \colon A \to C, and then for every x \in A, a function f^{\sharp}_x \colon D_{f(x)} \to B_x. We visualize this as

Example 6 An open dynamical system is a lens of the form

It takes a bit of unpacking here to see exactly why this is true. The forwards map f \colon X \to O is the same, but the backwards map is in a slightly different form. Namely, if we unpack the definition of a lens, then we have for every x \in X, v_x \colon (O \times I)_{f(x)} \to T_x X. This looks different from our earlier definition of open dynamical system, but we recover that earlier definition when we recall that (O \times I)_{f(x)} = I, because \begin{pmatrix}O \times I \\ O\end{pmatrix} is a trivial bundle. Thus, for every x we have a map v_x \colon I \to T_x X. We can then rearrange the parameters to get v \colon X \times I \to T X, with the additional condition that v(x,u) \in T_x X, which is precisely what we said an open dynamical system was!

There are two ways of composing lenses: composing in parallel and in series. We start with composition in parallel, because that has a more immediate application in terms of open dynamical systems.

Definition 5 Given two arenas \begin{pmatrix}B \\ A\end{pmatrix} and \begin{pmatrix}B' \\ A'\end{pmatrix} (with projections p and p'), there is an arena \begin{pmatrix}B \\ A\end{pmatrix} \otimes \begin{pmatrix}B' \\ A'\end{pmatrix} defined by

\begin{pmatrix}B \\ A\end{pmatrix} \otimes \begin{pmatrix}B' \\ A'\end{pmatrix} = \begin{pmatrix}B \times B' \\ A \times A'\end{pmatrix}

where the map p \times p' \colon B \times B' \to A \times A' is defined by (p \times p')(b,b') = (p(b), p(b')).

Definition 6 Given two lenses

their parallel composite is given by the following lens.

The functions f \times g and f^\sharp \times g^\sharp have types

f \times g \colon A \times A' \to C \times C'

(f^\sharp \times g^\sharp)_{x,x'} \colon D_{f(x)} \times D'_{g(x')} \to B_x \times B'_{x'}

and are defined via

(f \times g)(x,x') = (f(x), g(x))

(f^\sharp \times g^\sharp)_{x,x'}(u,u') = (f^\sharp_x(u), g^\sharp_{x'}(u'))

Example 7 We can use parallel composites to take two open dynamical systems and “run them in parallel”. That is, suppose that we have open dynamical systems

Then we can make an open dynamical system

This corresponds to the ODE consisting of two equations:

\dot{x} = v(x,u) \dot{x}' = v'(x', u')

and output y = f(x), y' = f'(x'). This may seem like a “trivial” operation, but the first step to making two open dynamical systems interact is to produce this parallel composite; we then use serial composition to make the systems interact.

Serial composition of lenses, roughly speaking “just composes the backwards and forwards maps”. But let’s spell that out in more detail.

Definition 7 Suppose that we have the following setup of arenas and lenses:

We can compose them to form

On the bottom, the function g \circ f \colon A \to E is just the composite of f and g. Then on top, we have

(f^\sharp \circ g^\sharp)_x = F_{g(f(x))} \xrightarrow{g^{\sharp}_{f(x)}} D_{f(x)} \xrightarrow{f^\sharp_x} B_x

Example 8 Let A, B, X, X' be spaces, and suppose that we have two open dynamical systems

We can then make a lens

where g \colon A \times B \to 1 sends (a,b) to the single element \ast \in 1, and w_{a,b} \colon 1 \to A \times B \times B \times A sends the single element \ast \in 1 to (a,b,b,a).

When we compose (v,f) and (v', f') in parallel, and then compose in series with (w,g), we get

This is a closed dynamical system, which can be written as a pair of coupled ODEs in the following way:

\dot{x} = v(x, f'(x')) \dot{x}' = v'(x', f(x))

The point is that after composing in parallel, composing with further lenses can couple two systems together.

3 Symbolic lenses

In the first blog post in this series, we learned how to make a “symbolic category of spaces” via algebraic theories, and the mantra “algebra is dual to geometry”.

We are now going to use this to build symbolic models of dynamical systems. Essentially, this boils down to “do the constructions of the above section starting from a symbolic category of spaces”, but there’s some elaboration that should take place.

Let’s start by taking the simplest algebraic theory: the theory with one type and no operations. The category of finitely presented algebras of this theory is just \mathsf{FinSet}. So then the question become, what are lenses in \mathsf{FinSet}^\mathrm{op}?

For the sake of brevity, we will only cover simple lenses. This will suffice to do dynamical systems with basic state spaces, because T \mathbb{R}^n \cong \mathbb{R}^n \times \mathbb{R}^n.

A simple arena is something of the form \begin{pmatrix}X + Y \\ X\end{pmatrix}, with the injection map X \to X+Y. This is because the product and projection of lenses become coproduct and injection when we dualize.

Then, when we dualize our recipe for a simple lens, we get that a simple lens in \mathsf{FinSet}^\mathrm{op} from \begin{pmatrix}X + Y \\ X\end{pmatrix} to \begin{pmatrix}A + B \\ A\end{pmatrix} consists of a function f \colon A \to X along with a function f^\sharp \colon Y \to B + X.

Such a lens is also known as a wiring diagram with one box.

A wiring diagram

A wiring diagram

In this wiring diagram:

  • X is the set of output ports for the inner box
  • Y is the set of input ports for the inner box
  • A is the set of output ports for the outer box
  • B is the set of input ports for the outer box

We can see that each element of A (there is only one in this case) is assigned an element in X, and each element of Y is assigned an element in X + B.

A model of this algebraic theory is just a set. Suppose that Q is such a model, i.e. a set. Then from a lens in \mathsf{FinSet}^{\mathrm{op}},

where f \colon A \to X, f^\sharp \colon Y \to B + X, we get a lens in \mathsf{Set}

where Q^f \colon Q^X \to Q^A, and Q^{f^\sharp} \colon Q^X \times Q^B \to Q^Y are given by precomposition.

Now suppose that we work in a richer algebraic theory. For example, suppose that we work with the theory of \mathbb{R}-algebras. For simplicity, let’s just consider free \mathbb{R}-algebras. The category of finitely generated free \mathbb{R}-algebras has as objects finite sets, and a morphism f from X to Y consists of a polynomial f_x \in \mathbb{R}[Y] for each x \in X.

A lens (f,f^\sharp) in the dual category to this from \begin{pmatrix}X+Y \\ X\end{pmatrix} to \begin{pmatrix}A+B \\ A\end{pmatrix} consists of a polynomial f_a \in \mathbb{R}[X] for every a \in A, and a polynomial f_y^\sharp \in \mathbb{R}[X+B] for every y \in Y. You can think of f_a as a description of “how to compute” the variable a, given values for all the variables in X, i.e. it’s a dual map X \to A. Likewise f_y^\sharp is a description of “how to compute” the variable y, given values for the variables in X and the variables in B, i.e. it’s a dual map X \times B \to Y.

Example 9 The lens for mass-action semantics corresponding to a Petri net can be written in such a form, because the ODEs corresponding to mass-action semantics have polynomial right hand sides.

Just like with wiring diagrams, if we take any model of the theory of \mathbb{R}-algebras, for instance \mathbb{R}, then we can turn any lens in the opposite category of free \mathbb{R}-algebras into an actual geometric lens, by interpreting a map \mathbb{R}[x_1,\ldots,x_n] \to \mathbb{R}[y_1,\ldots,y_m] as a map \mathbb{R}^m \to \mathbb{R}^n to get:

It is no great stretch from here to consider similar constructions where we allow more operations than just multiplication, addition, and scalar multiplication. For instance, we could also allow \sin, \cos, \exp. The most extreme extension of this is to allow any smooth function \mathbb{R}^n \to \mathbb{R} as an operation; models of such a theory are known as C^\infty-rings, and are very nice from a mathematical standpoint (though completely impractical to represent on a computer).

The complications start to come when we consider

  • Non-free finitely presented algebras, such as \mathbb{R}[x,y,z]/(x^2+y^2+z^2-1), which allow us to look at spaces that are not just Euclidian space
  • Dependent lenses, where the map in the arena is not just a projection. This allows us to look at non-trivial vector bundles.

This delves farther into algebraic geometry than we wish to go in this blog post, but the interested reader is encouraged to look into the subject themselves.

4 Take-aways

One thing I want to emphasize in this post is that there were very few “choices” to make. It was some work to make this all fit together and work out the details, but starting from the premise of “I want to do symbolic dynamical systems” and knowing the two slogans

  • algebra is dual to geometry
  • open dynamical systems are lenses

was sufficient to come up with this. This is one of the things I like about category theory; sometimes it really can feel like discovery not invention, because once you know what you are looking for, there’s often a canonical way of doing things.

I’m excited to be working on implementing this, and I hope to talk about that in a future post where I will talk about Gatlab, a rewrite of the core of Catlab to be more “morphism-first” with respect to computer algebra.

References

Alagic, Suad, and Mara Alagic. 1991. “Joins as Pullbacks.” In Third Workshop on Foundations of Models and Languages for Data and Objects, Aigen, Austria, 23.-27. September 1991, edited by Jutta Göers, Andreas Heuer, and Gunter Saake, 91/3:197–207. Informatik-Berichte Des IfI. Technische Universität Clausthal.
Awodey, Steve. 2010. Category Theory. 2nd ed. Oxford Logic Guides. London, England: Oxford University Press.
Baez, John C., and Kenny Courser. 2019. “Structured Cospans.”
Baez, John C., and Jade Master. 2020. “Open Petri Nets.” Mathematical Structures in Computer Science 30 (3): 314–41. https://doi.org/10.1017/s0960129520000043.
Baez, John C., and Blake S. Pollard. 2017. “A Compositional Framework for Reaction Networks.” https://doi.org/10.1142/S0129055X17500283.
Baez, John, and Mike Stay. 2011. Physics, Topology, Logic and Computation: A Rosetta Stone. Springer.
Bailer-Jones, Daniela M. 2009. Scientific Models in Philosophy of Science. University of Pittsburgh Press. https://doi.org/10.2307/j.ctt5vkdnq.
Benedikt, Michael, George Konstantinidis, Giansalvatore Mecca, Boris Motik, Paolo Papotti, Donatello Santoro, and Efthymia Tsamoura. 2017. “Benchmarking the Chase.” In Proceedings of the 36th ACM SIGMOD-SIGACT-SIGAI Symposium on Principles of Database Systems. ACM. https://doi.org/10.1145/3034786.3034796.
Bonchi, Filippo, Fabio Gadducci, Aleks Kissinger, Pawel Sobocinski, and Fabio Zanasi. 2020. “String Diagram Rewrite Theory i: Rewriting with Frobenius Structure.”
Brachman, Ronald, and Hector Levesque. 2004. Knowledge Representation and Reasoning. Elsevier. https://doi.org/10.1016/b978-1-55860-932-7.x5083-3.
Brown, Kristopher, Evan Patterson, Tyler Hanks, and James Fairbanks. 2022. “Computational Category-Theoretic Rewriting.” In Graph Transformation, 155–72. Springer International Publishing. https://doi.org/10.1007/978-3-031-09843-7_9.
———. 2023. “Computational Category-Theoretic Rewriting.” Journal of Logical and Algebraic Methods in Programming, 100888. https://doi.org/10.1016/j.jlamp.2023.100888.
Brown, Kristopher, and David I. Spivak. 2023. “Dynamic Tracing: A Graphical Language for Rewriting Protocols.” https://arxiv.org/abs/2304.14950.
Cartmell, John. 1986. “Generalised Algebraic Theories and Contextual Categories.” Annals of Pure and Applied Logic 32: 209–43. https://doi.org/10.1016/0168-0072(86)90053-9.
Cicala, Daniel. 2020. “Rewriting Structured Cospans.”
Courser, Kenny. 2020. “Open Systems: A Double Categorical Perspective.”
Datseris, George, Jonas Isensee, Sebastian Pech, and Tamás Gál. 2020. “DrWatson: The Perfect Sidekick for Your Scientific Inquiries.” Journal of Open Source Software 5 (54): 2673. https://doi.org/10.21105/joss.02673.
DeVille, Lee, and Eugene Lerman. 2012. “Dynamics on Networks of Manifolds.” https://doi.org/10.3842/SIGMA.2015.022.
Ehrig, H., M. Pfender, and H. J. Schneider. 1973. “Graph-Grammars: An Algebraic Approach.” In 14th Annual Symposium on Switching and Automata Theory (Swat 1973). IEEE. https://doi.org/10.1109/swat.1973.11.
Eisenbud, David, and Joe Harris. 2000. The Geometry of Schemes. Vol. 197. Graduate Texts in Mathematics. New York: Springer-Verlag. https://doi.org/10.1007/b97680.
Ellis-Monaghan, Joanna A., and Iain Moffatt. 2013. Graphs on Surfaces. Springer New York. https://doi.org/10.1007/978-1-4614-6971-1.
Fong, Brendan. 2015. “Decorated Cospans.”
Fong, Brendan, and David I Spivak. 2018a. “Graphical Regular Logic.”
———. 2018b. “Seven Sketches in Compositionality: An Invitation to Applied Category Theory.”
Fong, Brendan, and David I. Spivak. 2019. “Hypergraph Categories.” Journal of Pure and Applied Algebra 223 (11): 4746–77. https://doi.org/10.1016/j.jpaa.2019.02.014.
Ghallab, Malik, Adele E. Howe, Craig A. Knoblock, Drew McDermott, Ashwin Ram, Manuela M. Veloso, Daniel S. Weld, and David E. Wilkins. 1998. “PDDL-the Planning Domain Definition Language.” In.
Ghallab, Malik, Dana Nau, and Paolo Traverso. 2004. Automated Planning. Elsevier. https://doi.org/10.1016/b978-1-55860-856-6.x5000-5.
Goguen, Joseph A. 2021. “Theorem Proving and Algebra.” arXiv:2101.02690 [Cs], January. http://arxiv.org/abs/2101.02690.
Gross, Jonathan L., and Thomas W. Tucker. 1987. Topological Graph Theory. USA: Wiley-Interscience.
Hammack, Richard, Wilfried Imrich, and Sandi Klavžar. 2011. Handbook of Product Graphs. CRC Press. https://doi.org/10.1201/b10959.
Hartke, Stephen G., and A. J. Radcliffe. 2009. “McKay’s Canonical Graph Labeling Algorithm.” American Mathematical Society. https://doi.org/10.1090/conm/479/09345.
Hell, Pavol, and Jaroslav Nesetril. 2004. Graphs and Homomorphisms. Oxford University Press. https://doi.org/10.1093/acprof:oso/9780198528173.001.0001.
Johnstone, Peter T. 2002. Sketches of an Elephant: A Topos Theory Compendium, Volume 1. Oxford, England: Clarendon Press.
Kato, Akihiko. 1983. “AN ABSTRACT RELATIONAL MODEL AND NATURAL JOIN FUNCTORS .” Bulletin of Informatics and Cybernetics 20 (3/4): 95–106. https://doi.org/10.5109/13349.
Kock, Joachim. 2020. “Whole-Grain Petri Nets and Processes.” https://doi.org/10.1145/3559103.
Lando, Sergei K., and Alexander K. Zvonkin. 2004. Graphs on Surfaces and Their Applications. Springer Berlin Heidelberg. https://doi.org/10.1007/978-3-540-38361-1.
Lane, Saunders Mac. 1978. Categories for the Working Mathematician. Springer New York. https://doi.org/10.1007/978-1-4757-4721-8.
Lawvere, F. William. 1973. “Metric Spaces, Generalized Logic, and Closed Categories.” Rendiconti Del Seminario Matematico e Fisico Di Milano 43 (1): 135–66. https://doi.org/10.1007/bf02924844.
———. 1986. “Categories of Spaces May Not Be Generalized Spaces as Exemplified by Directed Graphs.” In. http://tac.mta.ca/tac/reprints/articles/9/tr9abs.html.
Libkind, Sophie. 2020. “An Algebra of Resource Sharing Machines.”
Marcolli, Matilde, and Alexander Port. 2015. “Graph Grammars, Insertion Lie Algebras, and Quantum Field Theory.” Mathematics in Computer Science 9 (4): 391–408. https://doi.org/10.1007/s11786-015-0236-y.
Markl, M., S. Merkulov, and S. Shadrin. 2009. “Wheeled PROPs, Graph Complexes and the Master Equation.” Journal of Pure and Applied Algebra 213 (4): 496–535. https://doi.org/10.1016/j.jpaa.2008.08.007.
McKay, Brendan D., and Adolfo Piperno. 2014. “Practical Graph Isomorphism, II.” Journal of Symbolic Computation 60 (January): 94–112. https://doi.org/10.1016/j.jsc.2013.09.003.
Mishra, Priti, and Margaret H. Eich. 1992. “Join Processing in Relational Databases.” ACM Computing Surveys 24 (1): 63–113. https://doi.org/10.1145/128762.128764.
Mohar, Bojan, and Carsten Thomassen. 2001. “Graphs on Surfaces.” In Johns Hopkins Series in the Mathematical Sciences.
Myers, David Jaz. 2022. Categorical Systems Theory. https://github.com/DavidJaz/DynamicalSystemsBook.
Niu, Nelson, and David I Spivak. n.d. “Polynomial Functors: A General Theory of Interaction.”
Patterson, Evan. 2017. “Knowledge Representation in Bicategories of Relations.”
Patterson, Evan, Owen Lynch, and James Fairbanks. 2021. “Categorical Data Structures for Technical Computing.” https://doi.org/10.32408/compositionality-4-5.
Reyes, Gonzalo E., and Houman Zolfaghari. 1996. “Bi-Heyting Algebras, Toposes and Modalities.” Journal of Philosophical Logic 25 (1): 25–43. https://doi.org/10.1007/bf00357841.
Reyes, Marie La Palme, Gonzalo E. Reyes, and Houman Zolfaghari. 2004. “Generic Figures and Their Glueings: A Constructive Approach to Functor Categories.” In. https://marieetgonzalo.files.wordpress.com/2004/06/generic-figures.pdf.
Riehl, Emily. 2016. Category Theory in Context. Mineola, NY: Dover Publications. http://www.math.jhu.edu/~eriehl/context.pdf.
Schultz, Patrick, David I. Spivak, and Christina Vasilakopoulou. 2016. “Dynamical Systems and Sheaves.”
Schultz, Patrick, David I. Spivak, Christina Vasilakopoulou, and Ryan Wisnesky. 2016. “Algebraic Databases.”
Selinger, Peter. 2011. “A Survey of Graphical Languages for Monoidal Categories.” New Structures for Physics, 289–355.
Simon, Herbert A. 1988. “The Science of Design: Creating the Artificial.” Design Issues 4 (1/2): 67. https://doi.org/10.2307/1511391.
Spivak, David I. 2014. Category Theory for the Sciences. The MIT Press. London, England: MIT Press.
Spivak, David I. 2009. “Higher-Dimensional Models of Networks.”
———. 2012. “Functorial Data Migration.” Information and Computation 217 (August): 31–51. https://doi.org/10.1016/j.ic.2012.05.001.
———. 2013. “The Operad of Wiring Diagrams: Formalizing a Graphical Language for Databases, Recursion, and Plug-and-Play Circuits.”
Spivak, David I., and Robert E. Kent. 2012. “Ologs: A Categorical Framework for Knowledge Representation.” Edited by Chris Mavergames. PLoS ONE 7 (1): e24274. https://doi.org/10.1371/journal.pone.0024274.
Tarski, Alfred. 1994. Introduction to Logic and to the Methodology of Deductive Sciences. 4th ed. Oxford Logic Guides. New York, NY: Oxford University Press.
“The Structure of Scientific Revolutions, (Third Edition).” 1997. Computers & Mathematics with Applications 33 (5): 129. https://doi.org/10.1016/s0898-1221(97)82935-5.
Vagner, Dmitry, David I. Spivak, and Eugene Lerman. 2014. “Algebras of Open Dynamical Systems on the Operad of Wiring Diagrams.”
Vakil, Ravi. 2017. “The Rising Sea.” https://math.stanford.edu/~vakil/216blog/FOAGnov1817public.pdf.

Footnotes

  1. There is also an additional technical requirement on arenas which is that the bundle is locally trivial. This requirement will not be relevant for the level of detail we work in here, so we will not go into precisely what this means.↩︎

Comments