Welcome to localcharts! Open to the public after a couple months of closed beta, this is a place for informal (i.e. not-necessarily-formal) technical writing about mapping the world within mathematics (usually, though not necessarily through category theory). It is also a place to discuss this writing, and to discuss writing which might be hosted elsewhere.
In this post, I intend to lay out why I think this is an important endeavor.
For the impatient, however, the important information is the following. Anyone can make an account on the forum. If you are have a blog that you think is relevant, you can message me once you’ve made an account on localcharts, and I will add the RSS feed so that your blog is automatically cross-posted. You can also write posts on this forum directly. If you are going to post, please read the FAQ about what is appropriate and welcome, and especially see tips and tricks.
We live in interesting times. The events over the 100 years before 2023 and the 100 years after 2023 have/will irrevocably defined/define the future of humanity. If this is a good future, we will probably have many lifetimes to explore the vast landscapes of art and science, and to push the limits of human excellence in whatsoever fashion we wish. If this is a bad future… we won’t have time to do much of anything. As I write this in July 2023, all the climate graphs are going crazy. It’s time for all minds on deck, and for some of the beautiful, wonderful projects of human existence to be put on hold for the time being so that there can be more beautiful, wonderful projects in the future, though I can only judge for myself what I think is more or less important for me to do, and every person must make that decision for themselves.
Fortunately, humanity has made incredible advances in scientific and technical knowledge. Unfortunately, we are limited in effective use of this knowledge by our ability to scale our understanding of basic science to large and complex systems.
For a single person to walk 500 miles in ancient times required a mix of knowledge of local wildlife, navigational ability, and friendly villages. For an army of 10,000 to make the same trip, although similar principles are involved (metabolism, the kinetics of walking, the need for shelter, navigation), managing these principles at scale requires logistical genius and an incredible amount of coordinated, cooperative, careful planning.
Everything is very simple in war, but the simplest thing is difficult. These difficulties accumulate and produce a friction, which no man can imagine exactly who has not seen war.
– Carl von Clausewitz, On War Book 1 Chapter 7
Similar principles hold in architecture, civil engineering, energy grids, software engineering, or any other discipline which applies science at scale.
Now, information-theoretically, many things in this world are irreducibly complex. I doubt anyone could design a bridge in 5 lines of code, no matter how elegant. And yet I believe that in many domains and indeed across domains there are unexploited simplicities and regularities that can vastly improve the experience of managing all of this complexity.
This can happen in multiple ways.
Standardization. The existence of technical standards like USB, train track width, or HTTP means that engineers can create products that work together without the engineers knowing of each other’s existence. Yet standardization can also be a double edged sword, as ad-hoc standards can contort the interfaces of products, and stagnate development; standards must be approached very carefully!
Compositionality. Enabled by standardization, compositionality allows engineers to pull off the shelf microchips and wire them together in unlimited ways to construct complex behaviors. No modern consumer electronics product would be feasible if the entire thing had to be designed from scratch without exploiting compositionality. But sometimes the behavior of a whole does not break down neatly into the behavior of the parts; how can we understand in what places compositionality works and doesn’t work?
Generality. Tools like matlab’s numerical ordinary differential equation solver are completely generic across an incredibly wide domain of engineering problems. The fact that new ODE solvers don’t have to be written from scratch for each domain is an incredible marvel of the power and generality of mathematics. Another example of this phenomenon is generic data structures. Instead of programming
FloatList, etc., a programmer can simply program
List<T>generically. Generality can be controversial, however, some believe that generics add unecessary complexity to languages, and they can certainly be overused to make a program far harder to understand than needed!
I believe that our ability to effectively engineer our way through the coming 100 year long eye of a needle depends more on how we can intelligently leverage the principles of standardization, compositionality, and generality than on whether we can discover new basic scientific results. Which is not to say that new science is not important; new science is incredibly important! But ability to execute at scale is essential.
Before I move on to discuss what I think will help with this problem, I should address the elephant in the room: large-scale engineering is also deeply political in nature. Should we enable 10,000 soldiers to march 500 miles? And if we should, how can we muster the political will to do so?
In full generality, this is an extremely hard question, and so I will evade it. Instead, I will say that it seems to me that large-scale engineering projects are inevitable unless we accept the deaths of billions as we shrink back to a population level sustainable by premodern technology in a world scarred by modern technology. I do not wish to do this. And if we are to engineer at scale, it is better that it be done well.
I cannot see the path through the eye of the needle, but I think I can see somewhere I can help.
And taking care of other people can be a good cure for nightmares…
– Lauren Olamina, from Parable of the Sower by Octavia Butler
I hope that when someone like Lauren Olamina brings the will and the ethics for action, we will have built the capability to bring their dreams to life.
How can we gain the benefits of standardization, compositionality and generality? There is no one answer, except perhaps “with maximum effort.” There is no silver bullet of complexity management. However, I believe that the nearly 80 year old intellectual tradition called category theory may be of some use.
Why do I believe this? I will borrow the form of my argument from a better writer than myself: G. K. Chesterton.
This, therefore, is, in conclusion, my reason for accepting the religion and not merely the scattered and secular truths out of the religion. I do it because the thing has not merely told this truth or that truth, but has revealed itself as a truth-telling thing. All other philosophies say the things that plainly seem to be true; only this philosophy has again and again said the thing that does not seem to be true, but is true. Alone of all creeds it is convincing where it is not attractive; it turns out to be right, like my father in the garden. Theosophists for instance will preach an obviously attractive idea like re-incarnation; but if we wait for its logical results, they are spiritual superciliousness and the cruelty of caste. For if a man is a beggar by his own pre-natal sins, people will tend to despise the beggar. But Christianity preaches an obviously unattractive idea, such as original sin; but when we wait for its results, they are pathos and brotherhood, and a thunder of laughter and pity; for only with original sin we can at once pity the beggar and distrust the king.
– G. K. Chesterton, Orthodoxy, pg. 291
To me, category theory has revealed itself to be a complexity-taming thing. However, I quote Chesterton, because I want to emphasize that just as I appreciate Chesterton while disagreeing with him, I don’t expect others to unthinkingly agree with me (though I hope they can still appreciate my point of view). What seems elegant to one person might be hideous overcomplication to another, and vice versa. You must make your own determination of what aspects of category theory can help in your corner of the world; a dogmatic hype for category theory helps no one.
In the experience of category theory practitioners, however, the process of interrogating some domain of mathematics, science, or engineering through a category-theoretic lens nearly always reveals some unexploited simplicity, some principle of compositionality or generality that pulls things together. And once something is phrased in the language of category theory, it enjoys the benefits of standardization, as all other concepts which have gone through this process can be more easily related to it.
As an concrete example, I will give the modern field of probabilistic programming languages. These languages are used to build advanced and yet rigorous tools for reasoning under uncertain conditions, as happens every time we collect data that we are not fully sure of, which is all data. Probabilistic programming languages use category theory as the bedrock of their formal semantics. These semantics allow us to be confident in the behavior of complex probabilistic programs because we can prove that the behavior of these probabilistic programs follows logically from the combination of the behavior of their parts and the pattern of interconnection between those parts. Moreover, once we have a formal idea of “what a semantics for a probabilistic programming language even is”, we can conceptualize the difference between different semantics, and compare the benefits that each give.
Other formulations of an idea may be attractive on the surface, while category theory is baroque and unfamiliar. But then in a flash, you will realize that three things that were separate in the traditional formulations are all different facets of the same concept in category theory.
I could go on at length about other examples, but my goal here is for you to understand why I think this important and to make you curious, not to fully convince you. The ability of category theory to unlock hidden simplicities is hard to explain without actually learning category theory, a task that is somewhat daunting and a task that I hope that localcharts will help with. Instead, I want to talk about localcharts itself, the ostensible topic of this post.
First, an explanation of the name localcharts. In differential geometry, which is the study of curves, surfaces, and spaces, mathematicians model a non-flat surface (like a sphere) by wrapping several flat blobs around them and stiching them together, like how a baseball is covered by two interlocking flat strips of leather. They call each of these flat pieces a “local chart”, and cutely enough the collection of local charts covering the whole surface is an “atlas”. So “localcharts” is a nod to this picture; we seek to map the world within mathematics in such a way that each piece of the puzzle can be glued together into a cohesive whole.
And this forum is simply a place to conduct this mapping process, and to support the community of people that are engaged in this mapping process. Currently, the community most aligned with this goal is the applied category theory community. However, there is a reason that I did not name this “the applied category theory forum”. Well, there are several reasons. One is that it’s too long, another is that I don’t want to claim that I represent the applied category theory community. But the most important one is that this is not a forum for a subject, it is a forum for a goal; the goal of complexity taming. I expect category theory to be useful for that goal, but if other approaches turn out to also work, I will happily adopt them as well. And additionally, category theory needs people to work out specifics, to look at topics from an ant’s eye view, before it can generalize. Larger charts are built by consulting smaller charts, and this forum is a place for both of them.
For a more technical overview of some of the work I hope this forum facilitates, see Towards a Research Program on Compositional World-Modeling.
But what does it mean to do this work on a forum? I like this goal, you say, but why is a forum useful?
I claim that informal, medium-length prose is a good medium for some types of mathematics communication. To back up this claim, I cite the popularity of John Baez’s blog, which many in the ACT community (including me) give as a reason for getting into category theory.
John Baez’s blog contains both exposition of published results and development of new math; the theory of open electrical circuits and open Petri nets started as a series of blog posts. This series of blog posts laid the foundations for some of the ways that we think about open systems in category theory today, in accordance with the quote cited at the end of the linked page:
To understand ecosystems, ultimately will be to understand networks.
– B. C. Patten and M. Witkamp
(Incidentally, the RSS feed from John Baez’s blog is linked to localcharts, so you can keep up with new posts on localcharts.)
At all stages in the mathematical process it is useful to communicate, from ideation, to writing about things that you have developed, to writing about things that you are learning.
But not everyone is prolific enough to build a following for an individual blog. Many in the applied category theory community already have blogs where they write informally about their work, but don’t post frequently enough to build a big readership. To solve this, blogs can be connected to localcharts via RSS, so that one can discover and keep up to date with new posts.
Finally, the native (i.e. not RSS-posted) posts in localcharts are a default place for informal, medium length pieces that I don’t think exists anywhere else, and gives a home for those who aren’t technical enough to set up a blog. I see people contorting things that would be blog posts into twitter threads or mathoverflow questions for lack of an easy-to-use, widely read place for longform writing. To this end, I hope that localcharts can fill a niche and complement other places for writing, like journal articles and the nLab.
Before I move on to the last section, I’d like to thank everyone who has helped and advised me on the direction of localcharts, and everyone who has participated in the closed beta. I’d also especially like to thank James Fairbanks and Davidad for providing feedback on this post.
And now we return back to you dear reader. I don’t know who you are. You could be a mathematician, you could be an engineer, you could be an English teacher. You could be a highschool student or a retiree. You could already be a category theory expert, or you could have never heard of it before you somehow got linked to this post.
But if somehow this vision speaks to you, what should you do? There are three easy steps.
Step 1: make an account!
Step 2: read and respond to some posts!
Step 3: write some posts!
And why should you post, what do you have to contribute? If you are a researcher, then you can use this to test out or communicate new ideas. If you are learning category theory, then your perspective as a learner, your confusions, your aha-moments, are actually useful, for other learners and for teachers! If you are an expert in some field of science, math or engineering then teach us your field so that we can try and connect it with other things. And of course your questions are more than welcome. Nobody comes into this world knowing category theory; everything is new to everyone at some point.
So once again, welcome.