You're reading the public-facing archive of the Category Theory Zulip server.
To join the server you need an invite. Anybody can get an invite by contacting Matteo Capucci at name dot surname at gmail dot com.
For all things related to this archive refer to the same person.
I've accepted a postdoc position at CalTech. I'll be working with Aaron Ames on using category theory to gain a deeper understanding of stability and control of dynamical systems.
Congrats Joe!
Thanks! I'm super excited to work on really interesting ideas and at such a cool place. Cherry on top is that I'm back home in SoCal.
That's cool to hear! I'm curious what the approach is.
I think we should have a paper out within a reasonable amount of time. I'll sorta randomly throw "end of summer" out there. So the approach will be revealed then!
Congrats!! Sounds interesting!
John and Todd and I finally finished the sequel to our Schur functors paper:
2-rig extensions and the splitting principle
John Baez, Joe Moeller, Todd Trimble
Classically, the splitting principle says how to pull back a vector bundle in such a way that it splits into line bundles and the pullback map induces an injection on K-theory. Here we categorify the splitting principle and generalize it to the context of 2-rigs. A 2-rig is a kind of categorified "ring without negatives", such as a category of vector bundles with ⊕ as addition and ⊗ as multiplication. Technically, we define a 2-rig to be a Cauchy complete k-linear symmetric monoidal category where k has characteristic zero. We conjecture that for any suitably finite-dimensional object r of a 2-rig R, there is a 2-rig map E:R→R′ such that E(r) splits as a direct sum of finitely many "subline objects" and E has various good properties: it is faithful, conservative, essentially injective, and the induced map of Grothendieck rings K(E):K(R)→K(R′) is injective. We prove this conjecture for the free 2-rig on one object, namely the category of Schur functors, whose Grothendieck ring is the free λ-ring on one generator, also known as the ring of symmetric functions. We use this task as an excuse to develop the representation theory of affine categories - that is, categories enriched in affine schemes - using the theory of 2-rigs.
My pseudo-promised deadline of "end of summer" for my first paper with Aaron Ames has probably passed, though you couldn't tell from the weather. We are almost done. The basic theory is complete, we're just working on some more examples to include.
Please finish soon so the weather here cools down! :sunglasses:
Ok, here’s part one!
https://arxiv.org/abs/2502.15276
Categorical Lyapunov Theory I: Stability of Flows
Aaron D. Ames, Joe Moeller, Paulo Tabuada
Lyapunov's theorem provides a fundamental characterization of the stability of dynamical systems. This paper presents a categorical framework for Lyapunov theory, generalizing stability analysis with Lyapunov functions categorically. Core to our approach is the set of axioms underlying a setting for stability, which give the necessary ingredients for “doing Lyapunov theory'' in a category of interest. With these minimal assumptions, we define the stability of equilibria, formulate Lyapunov morphisms, and demonstrate that the existence of Lyapunov morphisms is necessary and sufficient for establishing the stability of flows. To illustrate these constructions, we show how classical notions of stability, e.g., for continuous and discrete time dynamical systems, are captured by this categorical framework for Lyapunov theory. Finally, to demonstrate the extensibility of our framework, we illustrate how enriched categories, e.g., Lawvere metric spaces, yield settings for stability enabling one to “do Lyapunov theory'' in enriched categories.
What ended up happening is we kept adding and adding to the paper until it became a monster. This part one is ironically what we had done at the end of summer :upside_down:
I'm also speaking about this project in the Topos Institute's online colloquium on Thursday:
https://topos.institute/events/topos-colloquium/
Here's my talk at the Topos Institute's online colloquium:
https://www.youtube.com/live/dI033-TjymA?si=9C153AvSuKTYiwzy
Here's our second paper on Lyapunov theory:
Categorical Lyapunov Theory II: Stability of Systems
https://arxiv.org/abs/2505.22968
again with Aaron Ames, but this time with Sébastien Mattenet, grad student at UC Louvain.
Lyapunov's theorem provides a foundational characterization of stable equilibrium points in dynamical systems. In this paper, we develop a framework for stability for F-coalgebras. We give two definitions for a categorical setting in which we can study the stability of a coalgebra for an endofunctor F. One is minimal and better suited for concrete settings, while the other is more intricate and provides a richer theory. We prove a Lyapunov theorem for both notions of setting for stability, and a converse Lyapunov theorem for the second.
Each paper has it's own mini story, but the two combined tell the complete story of our categorical approach to Lyapunov theory.
An equilibrium point in a dynamical system is stable if every trajectory approaches it over time (or more generally, if it does not get too far away over time). That's easy enough to say, but actually checking this property directly means solving the system, which is generally very difficult and not practical if you are, for instance, telling a computer to do it over and over in real time on a walking robot that you don't want to fall over.
Lyapunov realized you can certify the stability of an equilibrium point if you can find a function on your space which satisfies two properties:
This has a nice visual intuition where the function (called a Lyapunov function) is basically this paraboloid, and the dynamics of the system is essentially a ball rolling down. Stability is then just the noticing that the ball is going towards the low point in the long run, even if it's actual distance from it fluctuates in some particular interval of time.
Gijs_Hilhorst - Lyapunovfn.png
In our first paper, we study systems as actions of a monoid $T$ (for time) on some other object in a category. From this, we prove that the existence of a Lyapunov morphism (relative to the action and an equilibrium) implies stability of the equilibrium. This perspective essentially assumes that we've solved the system, which I've already pointed out is not realistic.
Our second paper treats systems as coalgebras of an endofunctor F. This perspective generalizes vector fields which are coalgebras of the tangent bundle functor on the category of smooth manifolds (satisfying an extra property). In this setup, we prove that a Lyapunov morphism (now relative to a coalgebra and an equilibrium) is a Lyapunov morphism for any monoid action which is a "solution" of it.
Taken together, these tell us that a Lyapunov morphism for a coalgebra implies the stability of the equilibrium point, i.e. Lyapunov's theorem, but at a super generalized level.
This sounds very nice! You explained it very well here. Do you have some example applications of your super generalized Lyapunov theory?
Very nice Joe!
I guess from a very general point of view, one can interpret Lyapunov's insight as the fact that if you need to show that some state of a system is a stable fixpoint, it suffices to exhibit a map of systems where is a system known to have a stable fixpoint , and show that . Lyapunov's actual insight was that, for differential systems, a nice class of systems with known stable fixpoints are the gradient flows of smooth functions with a local minimum (at ).
Remarkably the way I told this story above isn't using at all the fact we are talking about attracting stable fixpoints. The above technique works for any kind of behaviour* of any kind of system. So perhaps I generalized too far?
*as long as it's functorially determined
Matteo Capucci (he/him) said:
So perhaps I generalized too far?
Perhaps I didn't, but I just moved the 'meat' of the problem to defining the right setting in which the concept of 'stable fixpoint' of a system makes sense (i.e. it is defined and it is functorial on the maps)... which is what you address in your papers.
John Baez said:
This sounds very nice! You explained it very well here. Do you have some example applications of your super generalized Lyapunov theory?
Sorry, travel + just forgetting prevented me from answering. Besides the classical continuous and discrete time settings, we also talk a bit about quantale-enriched categories (generalizing from Lawvere metric spaces) in the first paper, and labeled transition systems in the second paper. We have a few other examples that only get interesting in the asymptotic case, which we have worked out, but are writing a separate paper for.
Interestingly, we can write down examples that are non-deterministic/stochastic etc, but the definitions force us to only consider deterministic behaviors of those. My gut says something influencing this is the fact that our very first assumption is that we have a cartesian category, and maybe redoing things in a Markov category would result in something interesting. If anybody has thoughts, I'd love to talk.
A stone unturned is finding an example of a quantale Q for which the category of Q-enriched categories admits an endofunctor whose coalgebras are particularly interesting. As soon as we have such an example in hand, we have already proved a Lyapunov theorem for it. Again, if anybody has any ideas, I'd love to talk.
Matteo Capucci (he/him) said:
Very nice Joe!
I guess from a very general point of view, one can interpret Lyapunov's insight as the fact that if you need to show that some state of a system is a stable fixpoint, it suffices to exhibit a map of systems where is a system known to have a stable fixpoint , and show that . Lyapunov's actual insight was that, for differential systems, a nice class of systems with known stable fixpoints are the gradient flows of smooth functions with a local minimum (at ).
Unless I misunderstand what you mean, I think I'd say the first part is backwards. It's more like your certifying the stability of a system by mapping it into a simple stable system (changing the letters just in case I am misunderstanding your point).
It is true that this does fit a more general theme of behavior classification through mapping into simple representatives of that behavior. There's a whole subfield of people studying "Lyapunov methods", essentially instantiating this for various notions of system and various notions of stability.
Joe Moeller said:
It's more like your certifying the stability of a system by mapping it into a simple stable system
Like Grodin and Harper certifying amortized cost by mapping into a simple coalgebra on a cost algebra here.
I looked at exactly this paper around a year ago, but I clearly missed something!
Joe Moeller said:
Matteo Capucci (he/him) said:
Very nice Joe!
I guess from a very general point of view, one can interpret Lyapunov's insight as the fact that if you need to show that some state of a system is a stable fixpoint, it suffices to exhibit a map of systems where is a system known to have a stable fixpoint , and show that . Lyapunov's actual insight was that, for differential systems, a nice class of systems with known stable fixpoints are the gradient flows of smooth functions with a local minimum (at ).
Unless I misunderstand what you mean, I think I'd say the first part is backwards. It's more like your certifying the stability of a system by mapping it into a simple stable system (changing the letters just in case I am misunderstanding your point).
I think I'm saying something different, the map V is only used to construct the simple system L, namely by taking it's gradient flow. Then you map L to S.
What I mean by map matters. If I naively do that for 'differential Moore machines', clearly I don't get a map which exactly commutes with the vector field, ie it's not true that around the stable fixpoint, S is the gradient flow of V. Instead one has a weaker notion of map in which one only checks that the two vector fields are always 'oriented in the same direction', thus the first requirement of a Lyapunov function...
I'm thinking about two different ways of talking about a poset inside a category. I wrote this blog post and it ends with some questions:
https://joe-moeller.com/2025/09/02/posets-inside-of-categories/
In the winter quarter I'm going to teach an introduction to category theory aimed at mathematically inclined engineers. To be clear what I mean by that, they seem to often be comfortable with the notion of defining inequalities on stuff other than subsets of the reals, but they aren't familiar with the concept of a partially ordered set!
Great! Are you going to use a text and/or wing it?
I'm going to do a mix. One of my main goals is to get them to understand my recent papers so hopefully they can work on this stuff too. The other goal is to expose them to bits and pieces of ACT. So I have a structure in my mind of what I want to cover, but I'm also going to draw from a few sources for examples, and to remind me which facts I take for granted are things you actually ought to prove to newbies. So I'll be looking at Mac Lane, Riehl, Borceaux, Seven Sketches, Paolo Perrone's new book, Compositional Thinking for Engineers, but the bottom line will be my own arrangement.
I'm on my way back to Los Angeles from Rio de Janeiro, Brazil. I spoke at the Conference on Decision and Control.
https://cdc2025.ieeecss.org/
I'm happy to report that more often than not, when I introduced myself to someone, it turned out they had in fact heard of category theory, and were not surprised that a category theorist was there.
This is not too say that there were a ton of category people, probably a handful or two at most. Instead I think it's a combination of several factors, not a small one being that my boss Aaron Ames is a big shot in control, and has been expressing his interest in CT for years, with some uptick asking in the past two years.
I just tried to see what your talk was about, but couldn't find it in the program. Categorical Lyapunov Theory?
It was in a workshop rather than a normal session, and they didn't update the main website on speakers in the workshop since a very early stage. The workshop's page has the up to date info: https://cat-cdc25.github.io/
The workshop was on layered control architectures. So I was talking about categorical Lyapunov, but including some new work that's not public yet: hybrid systems and control systems.
By the way, I just read that MetaAI has found some Lyapunov functions using AI:
For the simplest systems, known as polynomial systems, the AI was able to find Lyapunov functions 10.1 per cent of the time, compared to a success rate of 2.1 per cent using traditional computational methods.
Joe Moeller said:
I'm happy to report that more often than not, when I introduced myself to someone, it turned out they had in fact heard of category theory, and were not surprised that a category theorist was there.
TBT to "category theory corner"
for context, @Joe Moeller and I were sitting at table in the main break room with a hand-written sign and "explained categories" to many a control engineer
I submitted a proposal for a workshop at the next American Control Conference and it was accepted. The title of the workshop is "Applied Category Theory for Compositional Decision Making". My co-organizers are Gioele Zardini, Hans Riess, James Fairbanks, and Aaron Ames. ACC 2026 will be held in New Orleans.
Somehow I missed that this final step happened the day after Christmas. My paper Extensions of representation stable categories was published in New York Journal of Mathematics.
Representation stability is built on the observation that many things that give you a sequence of representations for all the symmetric groups actually also give you a representation of FI = finite sets and injections, and if this is the case, it gives you some sort of control over the irrep decomposition. Beyond FI, people have found other categories which give similar "Noetherianity" properties. In this paper I show that the Grothendieck construction can be used to build such categories from others.
Congratulations!
Joe Moeller said:
The workshop was on layered control architectures. So I was talking about categorical Lyapunov, but including some new work that's not public yet: hybrid systems and control systems.
Is there something happening like a double operadic approach to layered control? In Towards a double operadic theory of systems the authors stress the importance of using the tight direction, so maps between systems, for reasons which include representing "Lyapunov and control-barrier functions which witness certain properties of the behavior of systems". This tallies with Categorical Lyapunov theory I: stability of flows:
Lyapunov functions can be viewed as a map from the dynamical system to the “simplest” stable system.
You'd think it would be useful to look at both ways around the double category's squares: operadically compose subsystems and then map via Lyapunov function to a simple stable system, and map subsystems via Lyapunov functions to simple stable systems and then operadically compose.
There's work on Stability of Interconnections of ISS Systems. But some kind of wiring diagram approach would be interesting.
Something relevant is envisaged in future work in the DOTS paper:
Explore assume-guarantee reasoning and compositional system validation using slice systems theories. Since maps between systems not only represent behaviors of those systems but also can express the satisfaction of certain properties (for example, Lyapunov functions [AMT25] which witness stability), we can form certified systems theories as slices (comma objects) in the 2-category of systems theories. Compositionality within these certified systems theories gives a form of assume-guarantee reasoning, or compositional model checking.
Is there any connection here with your approach?
Yes , there is already some connection in the approach. In some recent work that isn't public yet, we use charts as a base category for thinking about hybrid systems, a first step in the correction of layered control. And in some work in progress, we essentially use lenses to talk about control systems. I think your suggestion of how to use operadic composition is interesting. We've recently been working on using sheaves for something similar, but I like operads a lot, so I'll think about how they're connected. Honestly, the control community is catching up to 1-categories right now. So if I were to write something explicitly using double categories for that crowd, it would have to be a very strong result.
we use charts as a base category for thinking about hybrid systems
What are "charts" here?
Cool stuff, by the way. Just so everyone knows: I visited the robot lab that Joe sometimes works in, and saw the space where they plan to test a little floating robot which will serve as a simplified model of a satellite in orbit. Just a patch of empty floor right now, but someday we'll see robots explicitly controlled with help of category theory, and Joe will be involved.
Chart is DJM's word for a morphism in the ordinary Grothendieck construction, whereas lenses are morphisms in the pointwise opposite GC.
As defined in Categorical Systems Theory:
How is a "morphism in the ordinary Grothendieck construction" an example of a chart as in Definition 3.3.0.1?
The charts defined in the picture are morphisms in the Grothendieck construction of where has the same objects as C, but the morphisms are maps in of the form .
I use a slight variation of that where my base category is and the indexed category sends a manifold to the category with objects being sets, and maps being ordinary functions of the form , where is the underlying set of the manifold.
So you end up with a double category of arenas, charts and lenses from the double Grothendieck construction, the standard case being the indexed category Joe mentioned:
Got it! Thanks!
Just a quick blog post about my experience teaching CT to engineers. I'm hoping to write something like this after each lecture, but we'll see.
https://joe-moeller.com/2026/01/20/teaching-category-theory-to-engineers/
I really like how you described your experience so far!
You may try giving them the definition of category tersely so it doesn't look long and drawn out, or mysterious. Here's how I do it: "You have a bunch of objects, you have a bunch of morphisms for any objects and , you can compose any with any and get a morphism called , composition is associative, and any object has a morphism that acts as the identity for composition". Sometimes I say it even more tersely, but when I write it, I'd write at least this.
In a course I'd say the definition a few times, in greater and greater formality; right now I'm talking about the first time, where it should seem lightweight. I typically postpone discussion of "homsets" until later, because everyone finds it easier to think about a thing than the set of all such things.
That's interesting. I think I can incorporate this approach moving forward.
There are some more things I learned from the first lecture that I want to share. I'll put it in the next post I guess. One student was very confused about the hom sets, so its good that you mention that.
I explain a bit in this post about the robot I'm helping build.
https://joe-moeller.com/2026/01/22/were-building-a-space-robot/
My thoughts on my second lecture of category theory for engineers:
https://joe-moeller.com/2026/01/23/teaching-category-theory-to-engineers-part-2/
I find that actually building or fixing machines involves all sort of activities I wouldn't have expected at first. In your case, looking for a working waterjet that's large enough!
I guess a thing we could have done is send the DXF files to the company we ordered the polycarbonate from, but we didn't know that at the time, so we just got raw 24x24 in squares.
Eric Dolores asked me to speak in his seminar at Yonsei University, Seoul, South Korea (on Zoom). I'm speaking at 9am Monday Feb 2nd in Korea time, which means 4pm Sunday Feb 1st in California time. He specifically wants to hear about Schur functors and categorified plethysm. It's been a little while since I talked about that paper, but I have tons of notes from past talks.
I'm also going to be speaking at UCR (in person) in David Weisbart's seminar. I'll be speaking about my current program of categorical Lyapunov theory.
Tell me when your UCR talk is, and I'll try to come to it!
Feb 3rd at 3:30
Darn, I may be driving back from visiting my aunt.
Joe Moeller said:
My thoughts on my second lecture of category theory for engineers:
https://joe-moeller.com/2026/01/23/teaching-category-theory-to-engineers-part-2/
Another thing I wanted to mention about the first lecture is that some students were not picking up precisely what I meant when I was saying that a category has morphisms. It’s hard for me to convey precisely what the confusion was, but I think they weren’t sure if a category has a morphism vs has a set of morphisms vs has a function vs I don’t know what else.
This reminds me of when I was learning some concepts of category theory while studying as an undergrad in an engineering program. I was taken aback by the incredible flexibility in the definition of a category, particularly with regards to morphisms. Somehow I wanted morphisms to "be" something appropriate, and I remember in frustration writing out a set something like and trying to see if I could make a category where those were the morphisms. Eventually I realized that morphisms weren't required to be anything in particular; they just had to obey the rules and requirements specified in the definition of a category.
Right, and this can be difficult to convey. I'm hoping drowning them in examples helps. But I also want to get on to functors for the same reason. It will make more sense why the definition is so flexible when you see how a category like Set and a category like a monoid as a one object category can interact with each other to give more interesting structures.
I think that's a great idea! One of the things I find most beautiful and compelling about category theory is this: the wealth of somewhat mechanical operations one can perform, which can lead to interesting structures that one might not have easily thought of otherwise. So, I suspect my engineering undergrad past self would have found the notion of functor category quite inspiring (and a bit intimidating, but less so with examples like monoid actions!).
I initially found constructions that mixed levels rather mind-bending, like "functor category", "object of objects", etc. But these ideas are powerful precisely because they mix levels.
I always tell students to expect category theory to hurt their brains: this is the feeling of growing new neurons, rewiring connections, and they will become smarter when they do this. I tell them they can learn to enjoy this feeling. It's like the saying "no pain, no gain" in weightlifting: the pain accompanies the growth of your muscle fibers. (But not new muscle fibers, just bigger ones.)
I forgot to post this here, Part 3 of my reflections on teaching category theory to engineers.
https://joe-moeller.com/2026/01/31/teaching-category-theory-to-engineers-part-3/
I have a question at the end. How do you motivate early on in such a course the utility of realizing that some structures they've learned about are categories, or some constructions are functors. That fact on its own can be of interest to a mathematician, but an engineer wants practical payoffs. I don't think it even has to be significant, they just need something more than "this thing is a functor". In Emily Riehl's book, she gives a proof of Brouwer's fixed point theorem in the section on functoriality. This is the sort of thing I'm looking for, except that I'm specifically avoiding all homotopy at this stage.
What about rearranging a sequence of computations to improve efficiency? Suppose we have a finite ordinal mapping into Vect. If the dimensions of the spaces decrease as we go along, there can be substantial reduction in arithmetic operations by computing matrix products back-to-front instead of front-to-back.
What is the motivation for this example? It seems like this is first a sequence of matrices you want to multiply, and then functoriality is automatic if you say that skipping ahead by more than one in the ordinal should be assigned the matrix which is the product of the corresponding subsequence of matrices. I'm just having trouble inventing a story for that.
Possibly a silly example, but one thing that category theory genuinely helped me with early on is finally understanding "active" versus "passive" transformations, as well as changes of basis. These were concepts that were always frustrating to compute with because I kept getting mixed up about whether I was supposed to use or .
In this case, the key insight is that a basis of an -dimensional real vector space corresponds precisely to a choice of coordinate system on , i.e. a choice of isomorphism . This gives:
After learning this, I never messed up a change-of-basis calculation again - which, for a physicist, was extremely helpful. The idea of breaking complicated things down into small, easy-to-understand steps that you can compose is quite central to category theory, after all.
I also feel like universal properties like products are a good motivating example for why considering categories and functors can be helpful.
Another example I quite like is covered in my article on preimages. Here, I explain how, in predicate-world, preimage is just function composition - specifically, you precompose with to obtain . The fact that preimages preserve subset operations then just falls out (mostly) as a consequence of precomposition commuting with postcomposition.
Finally, I think the example that Riehl provides regarding "topological data analysis" seems pretty practical! It's right after the proof of Brouwer in her book.
Another fun example of a functor is the derivative - this is essentially the content of the chain rule. It lets you compute the change to an output given a change in input by summing over all possible ways that the input can affect the output, a "sum over paths" if you will.
I like the derivative as she wrote it out. But that does fit into the situation where I'm only reframing a known thing without getting anything for doing so. I don't think the base change example will grab them. The TDA example doesn't actually have any details written out. I could go to the cited sources, but that's more work than I'm willing to do for an example that I'm not going to carry very far through the course.
How about the connected components functor? You can use this to show that two spaces are not homeomorphic if they have different amounts of connected components, potentially.
Another idea I had in mind is databases as functors from schema into Set - then, functors between schema give you a consistent way to translate between databases of two different shapes.
Riehl's argument for Brouwer is an instance of the general fact that "functors preserve commutative diagrams", and thus (by taking the contrapositive) "reflect non-commutative diagrams". Perhaps you can find an analogous application for the latter - show that two things are unequal by showing they get mapped to different things under a functor.
In my experience expositing category theory, people have found it pretty useful to represent linear maps and bases by arrows in the way I described, as well as subsets in terms of predicates, hence why I suggested those examples. Of course, you know your students better than me.
I also like Oliver Lugg's summary that functors are about "rotations in perspective" - this is a sense in which recognising something is a functor already gives you something useful.
Ruby Khondaker (she/her) said:
Another idea I had in mind is databases as functors from schema into Set - then, functors between schema give you a consistent way to translate between databases of two different shapes.
This is definitely one of the examples I'm going to give in the next lecture (tomorrow).
I'll reconsider the change of basis example.
I know this doesn't really fit your requirements, but when I was a kid I didn't understand why a function couldn't output sets. Functors valued in Set felt like a surprisingly deep answer to this question for me.
So like I think my "undergrad question" here is "why are set valued functors good, but set valued functions aren't adequate?"
The short hand is functorial but I remember books being like "it's shorthand don't worry about it". So when it was spelled out as "the direct image functor" I appreciated all these aspects I didn't see as important before - it's a weird slow burn.
Functions that return lists in programming languages have functor vibes to me. I know Haskell folks like List as a type function valued in type, but functions that return lists are halfway to functors right?
I suppose my point is, most of the physics I did throughout undergrad was about the simplest structures. Functions that returned , products of such, or if I was really lucky we thought about manifolds. It seems to me like functors provide an opportunity to dramatically broaden what your functions, and arrows, are allowed to work between.
There's always the question of "what super powers does this give me", but I genuinely appreciate being capable of thinking about more things than I could before.
Joe Moeller said:
How do you motivate early on in such a course the utility of realizing that some structures they've learned about are categories, or some constructions are functors. That fact on its own can be of interest to a mathematician, but an engineer wants practical payoffs.
I believe we should deliver ourselves from such worries, and approach the problem from a different perspective.
Yours is probably the question for mathematics, not just category theory. Engineering fares quite well without advanced mathematics already, as a quick tour of Rome can testify. Most of engineering has traditionally been, and mostly still is, empirical: we try building something and see how it fares. Even with advanced mathematical models, the standard practice is often to build practical models and test them, rather than model them in silico. That is, engineering is an inductive endeavour first and foremost.
Rather, the main role of mathematics is that of guidance, understanding, and communication. Why do we build in a certain way? How do I approach a problem? How do I motivate a certain solution? These are all mathematical questions, in my opinion, since they require a rigorous hygiene of thought and a certain deal of self-reflection, as well as the cultivation of a shared library of motifs to recognize and return to. Clearly, some mathematical tools have also a more immediate practical worth, enabling computation for instance that would not be possible otherwise---but it's important to realize that's the exception rather than the rule.
Category theory has proven to be an extraordinarily successful language for mathematics, in the sense that so many ideas, structures, and patterns can be expressed meaningfully in terms of category theory, which is receptive and fertile (in a way that e.g. set theory is not). It is receptive in the sense that many fields can be reformulated categorically, and it is fertile since such reformulations are not lifeless encodings but categorical concepts prove salient for them.
Category theory is stubbornly resistant to being dismissed as a clever trick to apply in some situations, rather than being used as a wise philosophy to apply consistently. It teaches some really useful problem solving skills.
The relative point of view forces us to take mathematical objects honestly and makes us realize the biases and the unsubstantiated beliefs we approach them with. It also invites to think interoperably, to declutter abstractions, and to patiently attend to our language primitives.
Thus, rather than parade 'killer applications', I think we should reject that frame and communicate the actual value of category theory, and mathematics at large.
Spencer Breiner said:
What about rearranging a sequence of computations to improve efficiency? Suppose we have a finite ordinal mapping into Vect. If the dimensions of the spaces decrease as we go along, there can be substantial reduction in arithmetic operations by computing matrix products back-to-front instead of front-to-back.
This is well-studied: https://en.wikipedia.org/wiki/Matrix_chain_multiplication
@Matteo Capucci (he/him) wrote:
Thus, rather than parade 'killer applications', I think we should reject that frame and communicate the actual value of category theory, and mathematics at large.
Yeah, if I were trying to teach category theory to engineers I would not try to convince them that it was useful for what they're doing. I'd first try to convince them that math in general, and category theory in particular, is more fun than what they're doing. :laughing: But I'd also try to convince them that by bringing new math into engineering, they can revolutionize the world.
I would not separate category theory from other math, since most engineers don't know enough math to suddenly burrow down into category theory without learning other related branches of math, like abstract algebra, topology, differential geometry, etc.
On this line, I think it's interesting to keep in mind that even subjects like calculus and linear algebra are not "really useful" for most engineers in the strongest sense: hardly anybody, I think it's fair to say, has to solve a differential equation or diagonalizes a matrix with their bare hands during day-to-day engineering work. Instead one justifies the insistence on teaching every engineer these subjects on the basis that somebody had to learn them to implement all the software they'll actually use, and we suppose professionals ought to understand a bit more about their tools than the bare minimum to operate them.
So I'd try to take some inspiration for how to think about applications pedagogically from 250 years of experience by calculus instructors. I don't think in calculus courses we try all that seriously to get across to students how calculus is "really" used in modern engineering; we give little toy examples about spinning lasers and such that vaguely indicate the basis for the genuine applications. And I think even the use of "genuine" here is potentially slightly question-begging: as Matteo says, you can do most engineering tasks without an a priori mathematical analysis, so many of the genuine applications are genuine ways to understand why something works, rather than genuine ways to actually do it.
All that said, I still think most of the applications of category theory outside of math that are closest in flavor to the spinning lasers, i.e. a calculation or construction that's very difficult to do and impossible to properly understand without the relevant mathematics, lie in functional PL. This is probably out of reach of your students, as are applications within math, but I think the databases example, while probably in the end unrealistically "toy" relative to most real database theory, will at least get some of the right generalizable ideas across while suggesting plenty of concrete exercises (here is a partial database, what's the best completion? how many sub-databases does this inconsistent "database" have? is there a migration from this schema to that one? how to model relational databases with set-functors, and functional ones with rel-functors?) which ought to make the engineer feel a bit more at home.
I don't think in calculus courses we try all that seriously to get across to students how calculus is "really" used in modern engineering; we give little toy examples about spinning lasers and such that vaguely indicate the basis for the genuine applications.
Of course there are some (not students, actual grownups) who complain mightily about this approach. I don't have a better one, for introductory courses like this.
But I get the impression that Joe's students are not the inchoate fresher masses who get fed into calculus courses and forced to solve problems created in the 1800s: I think they're more like engineering grad students who are interested in category theory. So he can treat them with a bit differently.
I've never really understood the feeling that "math isn't useful". As far as the "liberal arts" are concerned, I've learned more magic tricks from math than anywhere else.
It's definitely an odd sort of usefulness - I'll be entirely unhelpful for friends and family, but then occasionally I'll see a math trick works, apply it, and folks will be shocked at how I can do something better than a pro.
Engineers are also curious about math even if they say they aren't. At least in American culture what counts as math is a sliding scale of how much the person knows, so they'll frequently notice some simple pattern and might ask me why it's true. So I'll whip out a proof and they go "OHHH that's what proofs are for!"
I dunno, I have a weird insecurity around this topic, because I love math so much but struggle to think mathematically unless I ground the ideas in extremely concrete examples. I think this might limit me, but it hasn't limited me in a way that has meaningfully impeded me from learning abstract math.
@Kevin Carlson what's with the spinning lasers? lol
Haha, for some reason that’s the problem that came to mind, understanding how fast the light of a laser shining onto a plane is moving in terms of its rate of change of angle at some fixed point.
I can definitely see this in a physics/applied calculus exam :laughing:
In America, all calculus is applied :innocent:
I find the light running example more evocative when thinking about a light house. If you're far away it looks more like a blip etc.
On Bluesky, Barbara Fantechi was acting shocked that US students don't see proofs until long after they're good at taking derivatives. The Italian approach seems more heavily theoretical. I'm not at all convinced that people should do anything with epsilons and deltas until after they're good at doing derivatives and integrals. But proofs... well, it would be nice to have proofs here and there.
Oh, you can't see the comment she was responding to unless you sign in to Bluesky. It said
In the US, mathematical education typically doesn't include any proofs, for anything other than a few months of geometry, up until several years into university. Typically, an analysis or linear algebra course in like year 2 of uni is the first time US students actually have to prove stuff.
Haha, analysis in year 2, imagine.
And of course the year 2 linear algebra course for engineers is also typically proof-free.
It is a bit strange that we do some proofs in 10th grade and then stop for five years, at which point essentially everyone has finished with math.
The big reason you might want at least teachers to understand proofs in K-12, is because kids are constantly trying to make up new arguments, and proofs are how you tell them whether their ideas work or not.
Otherwise you're stuck grading kids on whether they "did what the book said".
It's the difference between believing an authority vs productively thinking for yourself.
Well, an American secondary math education major will certainly have to get through a handful of courses involving some proofs. But I’m pretty dubious they internalize it well enough to be able to usefully explain why some algebra student’s approach is or isn’t valid once “on the ground.”
I think it'd be good to introduce proofs early on where you get kids to prove facts that are not obviously true. At U.C. Riverside we had an introduction to proof course where the students proved facts like . I think proving things so obvious as this does little to explain the reason proofs are important. It's more like a game. In fact the main challenge with proofs like this is figuring out what results you're allowed to use i the proof! This highly formal exercise is good to do at some point in a mathematician's career, but maybe not at first.
Yeah, I think there’s a lot of mental friction with that kind of problem of just getting to understand, yes, they’re really asking me to justify a statement whose “proof” it’s kind of impossible not to intuit as soon as you’ve understood its meaning. This is an advantage of Euclidean geometry, which unfortunately is not cool enough for university students anymore. A lot of math majors don’t really do any proofs until analysis, which in a typical case also involves mainly proving extremely obvious things like the continuity of some particular quadratic.
You can make it all the way out of undergrad without ever writing a proof for a statement you weren’t already sure of!
Well I would say real analysis has two halves to it - proving things that are intuitively true, and disproving things that are intuitively true :P
Well, if you’re getting as far as continuity of sums of infinite series and such, you’re doing much better than the typical American undergrad. I’m not sure they really get much of the latter kind.
Spivak's calculus is an interesting counter example! But I agree, part of the appeal of calculus is how much nicer differentiabilty makes everything, but usually you can't really appreciate that until later.
If you're really lucky you see how much better complex differentiabilty makes things.
Complex analysis has a lot of nice proofs, like the formulas that say what a function is doing here if you know what it's doing far away.
That's true complex analysis has surprisingly good results with satisfying proofs.
I will clarify that my students are not engineers in the sense of the civil engineer who works for the city checking that the architect's designs are up to code. They are mainly control theorists who know a lot about dynamical systems, optimization, sometimes a bit of differential geometry, maybe real analysis, usually no abstract algebra. I would say this is the crowd who certainly use calculus on a daily basis.
Ah, yes, I had very much the wrong picture. Especially considering that you’re at Cal Tech.
I know this example is too much, but when I took algebraic topology, it seemed clear that functors, like the fundamental group, were how you had "a function having spaces as values".
Then there was a fun puzzle to motivate the fundamental group "hang a picture with two tacks in such a way, so that when you remove one tack, the picture falls".
I think for me here the question again is why a functor for calculating structural features of spaces? Why aren't functions taking spaces as values a thing?
Matteo Capucci (he/him) said:
Joe Moeller said:
How do you motivate early on in such a course the utility of realizing that some structures they've learned about are categories, or some constructions are functors. That fact on its own can be of interest to a mathematician, but an engineer wants practical payoffs.
I believe we should deliver ourselves from such worries, and approach the problem from a different perspective.
Yours is probably the question for mathematics, not just category theory. Engineering fares quite well without advanced mathematics already, as a quick tour of Rome can testify. Most of engineering has traditionally been, and mostly still is, empirical: we try building something and see how it fares. Even with advanced mathematical models, the standard practice is often to build practical models and test them, rather than model them in silico. That is, engineering is an inductive endeavour first and foremost.
Rather, the main role of mathematics is that of guidance, understanding, and communication. Why do we build in a certain way? How do I approach a problem? How do I motivate a certain solution? These are all mathematical questions, in my opinion, since they require a rigorous hygiene of thought and a certain deal of self-reflection, as well as the cultivation of a shared library of motifs to recognize and return to. Clearly, some mathematical tools have also a more immediate practical worth, enabling computation for instance that would not be possible otherwise---but it's important to realize that's the exception rather than the rule.
Category theory has proven to be an extraordinarily successful language for mathematics, in the sense that so many ideas, structures, and patterns can be expressed meaningfully in terms of category theory, which is receptive and fertile (in a way that e.g. set theory is not). It is receptive in the sense that many fields can be reformulated categorically, and it is fertile since such reformulations are not lifeless encodings but categorical concepts prove salient for them.
Category theory is stubbornly resistant to being dismissed as a clever trick to apply in some situations, rather than being used as a wise philosophy to apply consistently. It teaches some really useful problem solving skills.
The relative point of view forces us to take mathematical objects honestly and makes us realize the biases and the unsubstantiated beliefs we approach them with. It also invites to think interoperably, to declutter abstractions, and to patiently attend to our language primitives.
Thus, rather than parade 'killer applications', I think we should reject that frame and communicate the actual value of category theory, and mathematics at large.
This is interesting, I agree with it, and I don't think it's hitting the point I'm thinking about. Let me try to pick apart things to find the distinction.
I think these students have accepted that mathematics is useful. I think they have even on some level accepted that category theory is useful. If for no other reason, then at least because Aaron Ames is a bigshot, their boss, and likes category theory. Something being abstractly useful to some people doesn't mean that it's a good use of your time to learn it. So I could imagine students dropping off if they don't get a bit of meat once in a while.
I'm a category theorist, but this is a downstream effect of being the sort of person who is fundamentally motivated by trying to understand in a visceral way why things are true. So for me, particularly while learning CT for the first time, statements like "look at how all these different things are functors" or whatever is a piece of meat for me. It's just not for them, but abstraction as a value is not the problem. I pointed to Brouwer's as an example that would have been good in a slightly different situation. Saying that a bunch of stuff has a property isn't good enough until I can show one way that that property was useful for one thing.
After you know a bunch of category theory, you know that functoriality feeds into a million other structures and properties, and adds up to grand edifices that eventually solve problems, or clarify things. I'm looking for a thing to say in the lecture introducing functors, but before natural transformations that makes the notion of functor feel active.
John Baez said:
that math in general, and category theory in particular, is more fun than what they're doing. :laughing: But I'd also try to convince them that by bringing new math into engineering, they can revolutionize the world.
I would not separate category theory from other math, since most engineers don't know enough math to suddenly burrow down into category theory without learning other related branches of math, like abstract algebra, topology, differential geometry, etc.
It's interesting that you say this, because following this experience of teaching ct, I'm realizing a much better class for the long-run of this department (Caltech has a control and dynamical systems department, housed in the computing a mathematical sciences division) would be a course introducing to someone with a background in dynamical systems etc some topics in topology, basic group theory, homology, and the right chunk of category theory to support those. So a grad student, Max de Sa, and I came up with a curriculum for such a class. My supervisor is going to help us try to get it approved and then we'll teach it next year!
Replying to some part in the middle of this conversation: I've always thought that elementary number theory would be a good topic to use for first introducing proofs. I also believe it should be mandatory for all math majors: applied, pure, education. The statements are not as drab as , but the proofs are still pretty simple, and go through all the basic logical techniques.
Number theory gives lots of nice categorical examples too! My most recent article went through a bunch of number-theoretic adjunctions.
Does it make sense to foreshadow how functors interact with limits? It seems like an educational solution needs to illustrate how the arrows in a category do stuff.
Explaining why functors are useful without limits feels like trying to explain why symmetries in geometry are useful before knowing what angles are.
That's an interesting point. In an earlier draft of the sequence of topics, I put products and terminal objects before functors. I don't know how I chose to do the other way around.
I worked for years on topological quantum field theory and its connection to physics using categories, braided monoidal categories and then n-categories without giving a darn about limit or colimits. So there are chunks of applied category theory where limits are not the focus.
On the other hand there's an approach to learning math where you work inside one category for as long as possible, and here you can develop a lot of intuition for particular kinds of limits and colimits without thinking much about functors.
But both these approaches are unbalanced, like trying to avoid putting your weight on one foot.
I guess a monoidal product doesn't have to be a limit or a colimit, I didn't realize that.
Are there cool nontrivial things you can do with how functors interact with isomorphisms, split epimorphisms, sections, etc? The spirit of my point is that functors track categorically meaningful features when relating categories, how do you make that obvious?
It's easy to see that all functors preserve all isomorphisms, split epimorphisms, and sections. You just write down the definition of the concept, and notice that it only involves composition of morphisms, identity morphisms, and equations between morphisms - all of which are preserved by functors!
Prove three things like this and you'll get the pattern.
Limits and colimits are not preserved by all functors, but that's because they involve universal quantification over all morphisms going to or from something, and a functor carries you over to some other category where there may be more morphisms: that is, morphisms not in the range of that functor.
This more subtle "global" nature of limits and colimits is one reason I shunned them for so long. I'm a pathetically simple-minded guy: I like "purely equational" concepts because they're preserved by everything.
Joe Moeller said:
Something being abstractly useful to some people doesn't mean that it's a good use of your time to learn it.
Indeed. Probably this is best motivated through many examples then: CT is useful precisely because it is able to host so many disciplines, and supercharges your ability to make connections and build up complexity. The last point is also another common 'pitfall': CT elementary concepts and examples rarely instantiate immediately to something fantastic, rather they require some fair amount of labour, and the most interesting results often dip toes in many different disciplines, so it's hard to give 'toy applications' in a laboratory setting. You need to get your hands dirty!
But I guess that's precisely the point you raise...
I still contend that the main value proposition of CT is its philosophy, i.e. the way it invites you to approach mathematical thinking. I like this Leinster's essay about it.
BTW, if they are interested in control theory/dynamical systems, I may recommend:
Sophie has a good example of a functor, the functor of attractors, if you're looking specifically for those.
Joe Moeller said:
If for no other reason, then at least because Aaron Ames is a bigshot, their boss, and likes category theory.
I'd be nice to ask Aaron! I'd be interested to know his answer.