AlgebraicJulia / Catlab.jl

A framework for applied category theory in the Julia language
https://www.algebraicjulia.org
MIT License
599 stars 56 forks source link

Dynamical Systems as a Functor Category #154

Open jpfairbanks opened 4 years ago

jpfairbanks commented 4 years ago

According to this blog post by Jade we can represent dynamical systems as a functor category from the reals to differentiable manifolds where the objects are ϕ: ℝ→Diff and the morphisms are natural transformations. Does this mean we could build a GAT for dynamical systems? Could we then take a presentation of a subcategory where we can express the natural transformations algebraically and then generate big dynamical systems compositionally?

epatters commented 4 years ago

Background info: This is a nice blog post by Jade. Many different kinds of dynamical systems can be seen as functors from a monoid (viewed as a one-object category) to a large category. Here are the ones that I know of:

I assume you can also do continuous-time Markov chains, but I haven't thought about this carefully. In all cases, natural transformations give a notion of morphism between the systems.

IIRC, Jade once told me that this definition of morphism for dynamical systems is somehow too strong. I don't remember the details, but we could ask her.

epatters commented 4 years ago

Presenting dynamical systems algebraically and/or composing them is an interesting idea. I'm not sure how to do it though. Where would the composition happen? In the underlying spaces of the dynamical systems? It would be good to come up with a few concrete examples where composition makes sense.

jpfairbanks commented 4 years ago

I think the discrete versions will be way easier especially the discrete time ones. We should use your suggestion about putting arbitrary Julia types into GATexpressions in order to implement all these dynamical systems as Functors. This is more evidence that GAT oriented programming is really cool.

jpfairbanks commented 4 years ago

If the Dynamical systems are functors, then the morphisms are natural transformations, right? So we can create cospan categories by taking two natural transformations with the same codomain? Ideally the structured/decorated cospan construction works and gives you the right kind of compositional structure.

epatters commented 4 years ago

Interesting, so if that works, composing the structured/decorated cospans would correspond to gluing along parts of the state spaces in a way that respects the dynamics.

We should ask Jade or John Baez whether they've thought about this. Seems like they might have.

jpfairbanks commented 4 years ago

I just started watching this talk: https://www.youtube.com/watch?v=8T-Km3taNko&feature=youtu.be