On March 6-8, a number of members of the Topos institute will be visiting the Oxford computer science department to have discussions around the topic of "systems theory and systems practice". A small number of Topos-affiliated guests will also join. This trip is supported by a grant from Atlas Computing.

While this is not an open workshop, as there was not time or funding to invite a larger group of participants, we intend to share the content of the meetings as much as is possible, in the spirit of open collaboration with the larger applied category theory community.

To this end, we will have some lectures open to anyone in Oxford at the beginning of the workshop, which may or may not be recorded depending on preference of participants and availability of recording equipment.

This page lays out a rough schedule, and also serves as a place to link notes produced from the meeting.

Location: Room 051.

Organizer: Owen Lynch

Note: there may be a break in the schedule for attending a talk by Thorsten Altenkirch in the afternoon.

- 9:30am-12pm introductory talks on systems theory and probabilistic programming.
- 9:30am-9:45am Owen Lynch: What is this workshop about?
- 9:45am-10:45am David Jaz Myers, Categorical Systems Theory
- 10:45am-11:00am Coffee Break.
- 11:00am-12:00pm Sam Staton, LazyPPL

- 12pm-1pm lunch
- 1pm-2:30pm focused discussion in smaller groups.
- 2:30pm-3pm break and reformation of groups.
- 3pm-4pm focused discussion in smaller groups.
- 4pm-5pm A talk by Thorsten Altenkirch with the following description
What is equality? I want to discuss the role of equality in Type Theory in the context of Homotopy Type Theory and recent work with Ambrus Kaposi and Mike Shulman on Higher observational Type Theory.

- 5pm-6pm: An opportunity to write up notes from the day or discuss further.

Location: Tony Hoare room 8am-12pm, lecture theatre A 3pm-6pm

Organizer: David Jaz Myers

- 9am-10am group discussion of research directions from Wednesday, rereading what we wrote.
- 10am-12pm focused discussion in smaller groups.
- 12pm-3pm lunch and excursion (perhaps to the Botanical Gardens, optional)
- 3pm-4:30pm focused discussion in smaller groups.
- 4:30pm-6pm writing notes from focused discussion.

Location: Tony Hoare room 8am-12pm, room 051 3pm-6pm

Organizer: Paolo Perrone

- 9am-10am group discussion of research directions from Wednesday+Thursday, rereading what we wrote.
- 10am-11am (tentative) recorded panel discussion of interesting topics from the past two days.
- 11am-12pm focused discussion in smaller groups.
- 12pm-2pm lunch and free time.
- 2pm-3pm Elena Di Lavore talk in Lecture Theatre A.
- 3pm-4:30pm focused discussion in smaller groups.
- 4:30pm-5:30pm final writing session.
- 5:30pm-6:00pm discussion of research directions for Topos and Oxford CS going forward into the future.

The overall theme of this workshop is the idea of "models as formal objects". Within this theme, there are several subtopics that we might pursue.

Double-operadic systems theory provides an abstract structure for the affordances of *composing* and *comparing* models. It is currently under development by Matteo Capucci and David Jaz Myers. Open areas of research to discuss include:

*Doctrines of hybrid systems*. This would be a development of theory along the lines of the the theory already developed for continuous systems and discrete systems that allows for systems that display both discrete and continuous behavior.*Nondeterminism+probability*. How can we incorporate infrabayesian ideas into dynamical systems?*Approximate decomposition*. How can we relate a system to a proposed decomposition of it, and measure how assumptions of causality, etc. implicit within a given decomposition lose or do not lose details about the original system. We can think of this like “graphical causal models,” but for dynamical systems rather than just Markov kernels.

This topic works towards a vision for scientific computing where model specifications, theoretically backed by Categorical Systems Theory, can be serialized and passed between different programming languages for different analysis tasks. Open areas of research to discuss include:

*Type theory for serializable models*. Certain type formers (producs, sums, recursive types, etc.) are amenable to serialization, while others (function types, streams, etc.) are not. David Jaz Myers has suggested that this distinction comes down to*inductive*vs.*coinductive*type formers. How detailed can our type specification language be while remaining practical?*Symmetries*. Scientific models often have natural symmetries, due to the ability to rename variables. How can we capture these symmetries, and tell when two models are "isomorphic"?*Version control*. If we are to store scientific models on disk, rather than just in transit between programming languages, we need to version them. And this versioning should be high-level: I shouldn't have to wade through a git diff of JSON that I didn't write.

When models are data, it is natural to think of searching over the space of models as part of Bayesian statistical inference. Searching over large combinatorial spaces has a lot of difficulties: how can we use our knowledge of structure to help here?

*Symmetries*. If the type theory naturally affords a definition of symmetry, can we use this to avoid sampling isomorphic models?*Composition/decompostion*. How does composition interact with model search? Can we use composition/decomposition as a "divide and conquer" strategy?*Ensemble models*. The result of a Bayesian inference is a posterior over model space, not a specific models. Can we treat this within a doctrine of "ensemble models"?

Systems are ubiquitous, in science as in life. People regularly deal with physical systems, political systems, economical systems, living systems, learning systems, writing systems, voting systems, computing systems, etc. As we zoom into a thing, we inevitably realize it is comprised of smaller interacting parts. As we zoom out, we realize it is itself part of an even more complex system.

Given the staggering variety systems come in, it is no surprise the existing scientific and mathematical frameworks to describe them are manifold and often incompatible with one another.
Studying each of these frameworks by themselves is surely a useful endeavour, but that doesn't mean there is nothing to learn from a generalist approach which aims to distill the common motifs underpinning each paradigm.
Hence in approaching the study of systems theory, the category theorist (a label that indicates a philosophy more than a subject of study) asks: **what are the formal structures underlying all the different approaches to systems?**

An important consequence of this approach is *removing opacity*.
In fact, each framework created to deal with systems makes certain assumptions regarding the structure of these systems, the way they compose and the way they relate, as well as what behaviour they are interested in and what even means to display a certain behaviour.
It's easy to get lost in these questions, and to miss important insight because of Blindness to Structure.
So an important contribution of categorical systems theory is to clarify, within each individual framework, what are the choices that have been made.

Categorical Systems Theory has an old tradition, probably starting wtih Rosen's 1958 paper. It lived in a pre-paradigmatic phase for a long time, until David Jaz Myers tied up some loose ends and produced an organized theory, expounded in his book Categorical Systems Theory.

In Greek, the word `system' means `composite'. Categorical systems theory takes this etymology very seriously, approaching the study of systems as the study of `things that compose'. Thankfully, the mathematical theory of composition is rich and has been abundantly studied before, under the guise of **operads**. The idea that systems are algebras of operads is more than a decade old now, being first proposed by Spivak in his 2013 paper.

This is the *algebraic* aspect of systems theory: it concerns the way systems are put together by operations (incidentally, also the word *algebra* is etymologically related to composition)!
There is also a *geometric* aspect to systems theory, if we might abuse the algebro-geometric duality.
Systems are objects with an internal structure, which can be probed by morphisms which compare systems to each other.
Having this extra geometric structure is quite important, albeit often overlooked. It is not overlooked in coalgebraic automata theory, where the algebraic aspect is neglected but the idea that systems shall be objects of a category is taken in great consideration.

The narratology of categorical systems theory can be organized in three levels of decreasing abstraction. It's easier to start from the topmost level:

- What kind of
*comparisons*between systems we want to ponder? - What kind of
*compositions*of systems we want to ponder?

The most familiar paradigms in applied category theory are the following:

One could conceive other paradigms. For instance, one might want to compare systems by quantifying their similarity with a number, a cohomology class, or some other extensive measurement. One could compose them in different ways, for instance by glueing them instead of wiring them.

Mathematically, the answers to the questions posed by a choice of paradigm correspond to the following:

From a paradigm, we can build a 2-category of theories, whose objects are theories of systems and whose maps are lax maps thereof.

However, the concept of theory at the minute is underspecified. Most times we describe a theory we are actually giving a description of class of theories all parametrized by some common data (e.g. a category with pullbacks, a category together with a monad, etc.). So a theory is often just some data we can use to get an operad and an algebra in a specified way. Informally, one defines a doctrine as follows (this one is straight from David's book Categorical Systems Theory):

- What does it mean to be a system? Does it have a notion of states, or of behaviors? Or is it a diagram describing the way some primitive parts are organized?
- What should the interface of a system be?
- How can interfaces be connected in composition patterns?
- How are systems composed through composition patterns between their interfaces?
- What is a map between systems, and how does it affect their interfaces?
- When can maps between systems be composed along the same composition patterns as the systems?

Thus a doctrine is a *uniform*, meaning *functorial*, *way of building theories*:

See Matteo Capucci or my blog.

Sam Staton, Paolo Perrone and I organized a small meeting between Topos Institute and the Oxford CS department. It was kind of like a workshop, but because of the short time frame that we planned it on and limited funding, we didn't invite all the people we'd like to invite or have it open to applications, so we called it a "meeting." Anyways, we managed to make some good progress on some open problems within categorical systems theory, and it was a lot of fun, so this is a short retrospective on what worked, what didn't work, and directions to pursue in the future.

The meeting was fairly loosely structured. We had two talks at the beginning, one from David Jaz on double categorical systems theory, and another from Sam Staton on LazyPPL. The rest of the time was spent on:

- Talking in small groups about math.
- Writing up what we talked about on the LocalCharts forest.
- Explaining things we talked about to the whole group.

I opened the meeting by asking participants to do three things.

- As much as possible, attempt to ground any new theory with concrete examples.
- Write things down on the forest
*on the day*that you discussed them, so that you won't forget them, and so that people interested in the topics of the meeting who didn't attend the meeting wouldn't be too left out. - Be comfortable with the idea that you might spend three hours teaching existing theory to people who aren't familiar with it yet. Transmitting knowledge is a good outcome of the workshop and not at all a waste of time.

The last request was I think the most successful idea; people were pretty happy at the end of the workshop about things that they had learned. For the second request, I tried to set aside time at the end of each day to write, but it was very tempting to continue conversations into this time instead of writing, and also it was somewhat hard to write at the end of the day, when everyone was tired from doing math all day and looking forward to dinner. The first request I think was a good idea, but very easy to forget when you are a category theorist! So I think that it's worth asking people to do in the future, even though we weren't very good at living up to it.

We gathered together things that people wrote at the workshop into Oxford-Topos Meeting 2024 - Outcomes. Some people ended up writing a lot, others none at all. I ended up not writing very much because I was hovering around helping people install forester. Hopefully in future events, everyone will have forester installed and be used to forester syntax before designated writing times.

So my dream of having all of the discussions captured on paper for those who weren't present didn't quite materialize. But fortunately I can talk a little bit now about some of the topics of the discussions that I participated in.

Note: I'm not putting the list of people in each discussion in case people wish to keep that private, but if you were in a discussion and you want to add your name, please just edit this!

I ended up in two discussions on port-Hamiltonian systems. Both of these discussions were somewhat one-sided, in that they mostly consisted of me explaining what I did in my masters thesis. I want to emphasize that I did not set out for this meeting to consist of me shilling for my own work, but it seemed like people were interested and enjoyed learning about it.

However, I was especially pleased that after I went through some of the big gaps in my thesis which had to do with my lack of knowledge of differential geometry: Paolo Perrone was kind enough to teach me some intuition about integrable forms. Specifically, the kernel of an integrable 1-form

Then, as far as I understand it, the idea Paolo was proposing was to replace the relations that I use in my thesis with something like forms which vanish on the relations. The problem that I was running into in my thesis is that, when thought of as relations, linear subbundles of vector bundles don't necessarily compose because of constant-rank issues. Perhaps moving to forms would allow me to talk about non-constant-rank linear subbundles? Anyways, I'm excited to investigate this direction, and not having a good intuition for integrable forms was something that had bothered me for a while so I was happy to learn about that.

Another group I participated in tackled the problem of stochastic behavior of dynamical systems. There is a good story for "representable behaviors" within categorical systems theory, but it was unknown how to generalize this to talk about behaviors of a Markov chain.

We were able to come up with a definition for representable stochastic behavior which mimicked the classical notion of "a stochastic process adapted to a filtration" using some techiniques from quasi-Borel spaces. I wrote up some preliminary notes on this here, but that does not capture where we ended up going on this topic, and hopefully there may end up being a paper on this.

Funnily enough, our group was originally interested in trying to make a categorical systems theory for stochastic differential equations, but we ended up getting sidetracked after we slogged through an hour of half-remembering functional analysis. There were some promising directions here that I hope we circle back around to though.

I was not in the group that discussed double operads, and in fact to a certain extent, I don't think it was a group, it was a one-man show of Kevin Arlin sitting down and grinding out higher category theory, and the result are here: kda-0003.

This was especially cool because in David Jaz's opening talk he said that he's wanted a good definition for double operad for years.

I think the lesson from this is that sometimes it's OK to have a group of 1! Working with other people can spark ideas that it is best to work out individually.

It was a lucky coincidence that Thorsten Altenkirch happened to have been scheduled to give a talk during the meeting, because I learned about the concept of observational type theory and higher observational type theory from this talk.

Or rather, what really happened is that Thorsten gave a talk, and then later on, David Jaz explained to me why it was really cool.

As far as I can understand, the idea of higher observational type theory is that each type constructor in a type theory (i.e. sigma, pi, etc.) should come along with a *definitional equality* for what the equality type on that type is equivalent to. For instance, equality for the universe type should be *definitionally* equal to isomorphism, so univalence becomes definitional instead of propositional.

This seems really cool to me, because it is exactly what I want for combinatorial type theory. Namely, if I write down a combinatorial type, I want to automatically *compute* a definition for identifications between two elements of that combinatorial type: I want to automatically derive from the definition of a graph a definition of graph isomorphism!

I also want to take this one step further: from the definition of a graph, I want to automatically derive a notion of *edit* of a graph!

Unfortunately, it seems like there hasn't been much published on Higher Observational Type Theory yet: it's being kept somewhat under wraps as it develops.

I think I only really need a fragment of the full power of Higher Observational Type Theory to do what I want, so David Jaz and I discussed some ways of doing HOTT "on the cheap".

But these were not all of the topics discussed at the meeting: these are only the topics that I know about and participated in! I encourage anyone who attended the meeting but didn't get much of a chance to write during the meeting to write up thoughts while the thoughts are still fresh, and if they feel comfortable, share those thoughts!

- When you are organizing something for academics, it's good to have a half-hour buffer at the beginning and tell people to show up at the beginning of it, so that when they inevitably show up late, the rest of the schedule doesn't have to be shifted.
- Keeping to a schedule is hard. But that's OK: you don't necessarily need to keep to a strict schedule in order to get things done!
- Small is powerful. Generally the most productive discussions involved 2-3 participants, even if there were more than 3 in the group. That being said, there is a balance between "everyone contributes" and "people who don't have the same level of experience get to be a fly on the wall and see how people with more experience handle a subject", and I think that sometimes it is more productive to slow down a discussion and keep everyone following, to accomplish the "learning things" objective. All that being said, I think that it is very hard to do math in a group of >5.

Overall, people said that they had a good time at the meeting, so I hope to do this again some time. I honestly think both the small discussion groups and the overall small number of people were both assets, and in fact the small number of days was also somewhat of an asset because it forced people to focus. So I think "scaling this up" doesn't look like inviting more people for a longer time: I think it looks like inviting different groups of people semi-frequently. Of course, this is only practical when the groups of people happen to be in the same place, but perhaps this is possible if small meetings like this can "piggyback" over other events like conferences. And I encourage other people to organize similar small events and not invite me, but still write up the results on localcharts: I think the ideal number of this kind of event is much larger than would be practical for me to attend!

This page is the research output of the meeting Systems Theory and Systems Practice Discussions.

Consider the quantale *sums* and *harmonic sums*, the latter being defined as
**internal sums and cosums**:

Let **sum** of a finite collection **cosum** is the object

So sums seems to be `limity' and cosums `colimity'.

Sums are known to be associative and commutative. Harmonic sums are too:

Sums and harmonic sums lie in a spectrum which includes ** p-sum** to be

{ \sum }^{- \infty } is\inf and{ \sum }^ \infty is\sup ,{ \sum }^{1} is just sum and{ \sum }^{-1} is harmonic sum.

One can define a

**Claims.** Some of this need one to work with

- This virtual double category is an equipment
- This virtual double category has all units and composites, given by Chapman--Kolmogorov
- Right Kan extensions are weighting of measures
- Right Kan lifts are Radon--Nikodym derivatives (not checked)
- The Cauchy-completion of an object
A is the set of measures onA

This afternoon at the Topos-Oxford workshop we had in effect a talk from Owen on port Hamiltonian systems. I hadn't had the slightest idea about the latter before now so it was good to get a bit of a start.

The foundation is the standard Hamiltonian mechanics, with a configuration space

This situation can be abstracted using the notion of Dirac relation. A Bond bundle is an even-dimensional vector bundle equipped with a quadratic form

Then, port Hamiltonians add a new trivial Bond bundle

David Jaz wants a definition of double (coloured) operads/multicategories. These should be guys such that
vertical morphisms are unary, horizontal morphisms are

The most obvious way to get these things seemed to be to generalize Cruttwell-Shulman to the pseudo case, so that a double operad would be something like a normalized pseudo-monoid in the horizontal Kleisli double category of the free (symmetric) monoidal category monad on the double category of profunctors. But you can't define pseudo-monoids in a (virtual) double category! If you think about spans of categories, you might note that this is more than a mere double category, and try to think about some kind of double category with maps between the cells. But this is exhausting.

A quite different approach is to generalize the definition of *pseudo-double categories* as pseudo-algebras for the free category monad on the double category of categories internal to graphs! Thus let a *internal categories in *

You should picture an internal category in *its* edges drawn horizontally as families of squares. We can compose these vertical edges and the squares come along for the ride. But there's no way to compose
horizontal edges, yet. An actual algebra for the free

There's an extra complication when you want symmetric double operads, since then *relative* monad

Let

A virtual

The double category of

I am not quite sure about the profunctors of

In categorical systems theory, one of the great features is that trajectories are representable. That is, a trajectory of a certain system is a morphism from a special "clock system" into that system. Different choices of clock systems can give you different notions of trajectory, i.e. trajectory for all of

However, we don't yet have a good notion of trajectory for systems defined by stockastic kernels

Classically, such a trajectory is a collection of random variables

Or, in other words, for all

We were thinking about representing the data of a trajectory as a map

In order for this to work, commutativity of the above square needs to be equivalent to the condition above involving conditional expectation.

Two things that don't work are sending

The problem is that we need some notion of

David Jaz Myers proposed an interesting idea, which is to have a "review" taxon that shows up in a different section than backlinks. Then people can leave reviews by writing a tree with taxon "review" that links to the tree with which they find problems.

When the review is addressed, it can be marked as such.