Hacker News new | past | comments | ask | show | jobs | submit login
Applied Category Theory (johncarlosbaez.wordpress.com)
383 points by mathgenius on Mar 26, 2018 | hide | past | web | favorite | 40 comments

David Spivak has done lots of cool work on applying category theory to many concrete systems like databases [1].

Brendan Fong has worked on applying category theory to things that act like interconnected networks, such as electrical circuits. This fits into a larger ambitious program that John Baez is part of to use category theory to understand physical systems that are still much too complicated to understand with current mathematical tools, such as ecosystems. Fong's thesis is on my reading list [2].

The two authors are doing great research, like this investigation of the algebra of backpropagation [3].

I really look forward to reading this too!

[1] https://arxiv.org/abs/0904.2012

[2] https://arxiv.org/abs/1609.05382

[3] https://arxiv.org/abs/1711.10455

I made a Haskell Postgres library inspired by David Spivak's work: https://github.com/tomjaguarpaw/haskell-opaleye/

About ML-related research, Fong also piqued my interest earlier with his categorification of almost PGMs. Though it didn't inspire him or anyone to bring effective methods of algebra to PGM and improve the base theory, making the exercise really shine. So like with many categorification research it's just a 72-page statement „it can be done”.

Brendan Fong (2012) Causal Theories: A Categorical Perspective on Bayesian Networks https://arxiv.org/abs/1301.6201

This looks like a great resource. I really think the chapter difficulty idea is a good one and wish more math books adopted this approach.

On another pedagogical note and as someone who reads a lot of math texts, I wish math textbooks would spend way more time on introducing the intuition (geometrical if in any way possible) of the ideas before or simultaneous with going into the formulas, theorems, and details. This not only vastly improves comprehension but I find having a geometrical understanding ( even if rough and partially incorrect) greatly helps in me being able to later derive the same formulas and theorems.

Having written about various math topics over the years I know its much more difficult to follow this approach, so I don't blame anyone for not going out of their way to imbue intuition, but its still something I wish more mathematicians who teach would advocate for.

This description of teaching is a lot like how 3blue1brown does his videos on YouTube: https://m.youtube.com/channel/UCYO_jab_esuFRV4b17AJtAw

I am not affiliated, just love how he geometrically visualizes the concepts of math, and how he focuses on he intuition.

One book I can think of that has a similar chapter/difficulty curve is Boyd & Vandenberghe's "Convex Optimization" book, http://stanford.edu/~boyd/cvxbook/.

i've seen a number of math-but-sort-of-CS textbooks putting the dependency graph for chapters in the introduction, so you know what you can get away with skipping and what must be done first.

i agree about geometric intuition, as long as there's a wall of separation between the intuition+motivation and the main results.

it frustrates me when an important result is only proved in the context of a motivating example where i don't have the background. usually this is when a math book dips into physics or engineering for whatever reason.

Unfortunately from reading the first couple of chapters it seems like this textbook doesn't do an excellent job of favoring graphics over formula. It's acceptable but really nothing stellar. I don't think it does the title of 'Applied Category Theory' justice. It is still very much theoretical.

Conveying intuition is about way more than using graphics. It's about storytelling. I've seen people focus on graphics and fail in a hundred ways, while overwhelming theoretical works shine due to the focus on the narrative.

Functional Programming and Category Theory: http://nikgrozev.com/2016/03/14/functional-programming-and-c...

As an interested amateur usually I find these ‘beginner’ texts laughably impenetrable, but I had no problems following this all the way through chapter one, at least.

It uses fairly simple language all the way through with lots of diagrams.

for programmer's there is this : https://bartoszmilewski.com/2014/10/28/category-theory-for-p... as well.

Having taken the course, I definitely recommend it. Great content and Bartosz is just a great guy to listen to

Bartosz is great. You can also find a filmed series of his lectures on category theory on Youtube.

I wish more PDFs written by academics had one column, not two, per page. The 2-column arrangement is harder for me to navigate when reading on a mobile device. (The OP has one column.)

I wish HTML/EPUB was as popular as PDF in academia... That would solve so many problems for mobile reading.

Two columns works great for paper, trying to read A4 or letter sized one column is painful because the lines are too long. But it doesn’t make sense for mobile (at least non tablets).

As a mathematician, usually I find attempts to apply abstract mathematical concepts to concrete real-world concepts clumsy and hurting both the abstraction and the concrete thing.

Is this the case with this text?

No, the text is awesome. I read it over the weekend.

As an amateur mathematician, don't worry about attempts to apply mathematics to the real world; mathematics is the pattern which emerges from the real world's incidental complexity, and we have always been applying maths to real-world concepts.

Category theory actually provides ways to go from abstract domains to concrete domains. Read the text; it might loosen your view a bit.

If one cannot apply mathematics to concrete things, what use does the mathematics have, besides mental gymnastics?

If mathematics is applied poorly to reality, it's usually because an inadequate model is used, not because attempting this is a wrong thing to do.

First of all, when I said concrete things I did not mean for example theoretical physics concepts. I mean things like economics[0] or philosophy[1].

I am saying that mathematical abstraction is not the right tool to get a better understanding for a lot of subjects. My questions was asking if this is an instance of someone with a categorical hammer and seeing categorical nails everywhere, or that it is a super natural fit.

Most mathematicians (I know) do mathematics for the mathematics. It is in itself a goal that does not need an external use. So yes, mathematics for a lot of mathematicians is just mental gymnastics that turned out to be very useful. Probably the reasons for some people's love for math and the usefulness are related.

[0] https://www.quora.com/Are-there-applications-of-group-theory...

[1] https://en.wikipedia.org/wiki/Alain_Badiou#Mathematics_as_on...

Category theory is a formal semantics for (or alternative to, depending on one's perspective) type theory and thus functional programming. It's been widely used (for example, in Haskell, ML, Agda, Coq, Idris, etc) not only for formal foundations but to derive many "smaller" practical applications. Many of the creations from that domain have been useful in many other languages. Are you unaware of this and asking something else?

It's an extremely good fit and highly productive, to answer your question directly.

I am aware of these applications. I am not aware of any "smaller" practical applications that are derived thanks to the categorical interpretation, can you give any examples?


In this paper we describe a functorial data migration scenario about the manufacturing service capability of a distributed supply chain. The scenario is a category-theoretic analog of an OWL ontology-based semantic enrichment scenario developed at the National Institute of Standards and Technology (NIST). The scenario is presented using, and is included with, the open-source FQL tool, available for download at categoricaldata.net/fql.html.

This is part of a series of work on applying category theory to databases. The initial work was to cast database concepts into categorical concepts, this led to a clarification of various concepts such as many kinds of SQL query being instances of limits and colimits. The theory was then used to extrapolate via category theoretic concepts to develop new database manipulation concepts.

This is a general recipe for applying category theory, though there are other approaches.

I don't have any papers on this hard drive but databases, grammar formalisms and generally many data structures (you might know about monads, comonads, arrows, zippers, etc.) If you start digging on hackage, you'll find many interesting data structures, many of which were derived categorically or at least algebraically (they often cite the papers that inspired their implementation.)

Obviously all the work can be done without category theory but since the mid-2000's I gather that many insights have been gained by exporing various categories and their relations.

Edit: I think one of the main benefits is efficiency. Even if one doesn't start from categorical formalisms, you can later use them to pare things down to what's absolutely necessary.

I think you make a good point--there is probably a natural limit or reasonable degree of extension when it comes to using mathematics as an explanatory framework or domain language. The tendency to over-extend its application probably stems from its abstract nature--the more abstract your system or calculus, the more readily it's made to fit as a potential explanatory mechanism or language for expressing problems in a particular domain. Because mathematics is so darn abstract to begin with, it's difficult, if not impossible, to refute, a priori, someone attempting something like a Marxist topology or category theory or algebra or whatever. The application of mathematical concepts is really only refutable a posteriori, after we discover it wasn't actually a useful or sufficient explanatory mechanism for the domain. Because higher level mathematics often operates at a level in which it doesn't restrict the set of entities its variable terms could resolve to or reference, it's not possible to refute its application to anything as nonsense until we discover it as such in the process of applying it.

You also get into a bit of a tangle if you believe mathematics is not some separable set of properties or things 'in the world' but an expression of some fundamental laws of human reasoning--i.e. it captures the way in which, whether we like it or not we simply must reason, because that just happens to be how the brain is constructed. If this truly is the case, and mathematics captures some fundmanetal kernel of truth about 'proper' reasoning, it should, in theory, be widely applicable in many human endeavors. For example, someone might argue, from this perspective, that something like function application doesn't only express some property or rule of reasoning with numbers, but rather indicates a form of processing or mental operation that underlies many if not all forms of conceptual reasoning. (Frege and Leibniz are two historical figures who play with some of these ideas in their pursuit of a universal language for concepts).

To me, neither philosophy nor economics are very concrete, because a lot of important information in their domains is either flimsy or unknowable.

Programming is very much unlike that; machines strictly follow known abstract principles.

"I am saying that mathematical abstraction is not the right tool to get a better understanding for a lot of subjects."

As a possible example, I found Categories for Software Engineering to be...unspectacular, both in terms of category theory and software engineering.

Mathematics is not all about models, or real world applications. Pure mathematics is an end, in an of itself, for knowledge if not anything else.

When a field is already mathematical, category theory can help clarify. When it's not mathematical to start with, category theory won't help.

This is really great! For those interested, another book on the way is: http://www.sci.brooklyn.cuny.edu/~noson/MCtext.html. I've read Noson's other book on Quantum Computing and it was really clear, with lot's of examples.

Yeah the other book is very sweet and accesible, and quantum computing is very amenable to the monoidal category treatment as Coecke shows pleasantly in 'Picturing Quantum Processes', 110710422X.

The associated video lectures can be found on the course homepage here: http://math.mit.edu/~dspivak/teaching/sp18/

I'd like to buy a hard copy of this... is it in print anywhere? Alternatively I'll just print the whole thing out I suppose.

So the text looks promising but, just as importantly, can someone just make a whole cookbook with diagrams like that?

http://www.cookingforengineers.com/ has a a slightly more primitive version in their recipes. Example: http://www.cookingforengineers.com/recipe/58/Peanut-Butter-C... (scroll down to just before the comments)

I would prefer this kind of notion with the categories:


but seems like, I am the only one who likes simplicity

Wikibooks has a very basic intro to category theory/haskell.


Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact