Applied Category Theory

Applied Category Theory is an online course being taught by John Baez based on this free book:

- Brendan Fong and David Spivak,
*Seven Sketches in Compositionality*. See also the website with videos.

It’s an invitation to advanced topics in category theory through concrete, real-world examples. It aims to give a tour: a gentle, quick introduction to guide later exploration. The tour takes place over seven sketches, each pairing an evocative application, such as databases, electric circuits, or dynamical systems, with the exploration of a categorical structure, such as adjoint functors, enriched categories, or toposes. No prior knowledge of category theory is assumed.

The primary purpose of this page is to help you navigate the course, which is being held in the Applied Category Theory Course section of the Azimuth Forum. For a quick overview, try this:

Start the course here:

The motivation for choosing preorders as our first kind of category for study is to illustrate “generative effects”. To read and join discussions on Chapter 1 go here:

You can also do Exercises and Puzzles. Here are the lectures on Chapter 1:

- Lecture 3 - Chapter 1: Preorders
- Lecture 4 - Chapter 1: Galois Connections
- Lecture 5 - Chapter 1: Galois Connections
- Lecture 6 - Chapter 1: Computing Adjoints
- Lecture 7 - Chapter 1: Logic
- Lecture 8 - Chapter 1: The Logic of Subsets
- Lecture 9 - Chapter 1: Adjoints and the Logic of Subsets
- Lecture 10 - Chapter 1: The Logic of Partitions
- Lecture 11 - Chapter 1: The Poset of Partitions
- Lecture 12 - Chapter 1: Generative Effects
- Lecture 13 - Chapter 1: Pulling Back Partitions
- Lecture 14 - Chapter 1: Adjoints, Joins and Meets
- Lecture 15 - Chapter 1: Preserving Joins and Meets
- Lecture 16 - Chapter 1: The Adjoint Functor Theorem for Posets
- Lecture 17 - Chapter 1: The Grand Synthesis

Chapter 2 is about resource theories. These allow us to tackle questions like:

- Given what I have, is it possible to get what I want?
- Given what I have, what is the minimum cost to get what I want?
- Given what I have, what is the set of ways to get what I want?

The technical tools you’ll learn in this chapter include string diagrams, monoidal preorders and enrichment. To read and join discussions on Chapter 2 go here:

You can also do Exercises and puzzles. Here are the lectures on Chapter 2:

- Lecture 18 - Chapter 2: Resource Theories
- Lecture 19 - Chapter 2: Chemistry and Scheduling
- Lecture 20 - Chapter 2: Manufacturing
- Lecture 21 - Chapter 2: Monoidal Preorders
- Lecture 22 - Chapter 2: Symmetric Monoidal Preorders
- Lecture 23 - Chapter 2: Commutative Monoidal Posets
- Lecture 24 - Chapter 2: Pricing Resources
- Lecture 25 - Chapter 2: Reaction Networks
- Lecture 26 - Chapter 2: Monoidal Monotones
- Lecture 27 - Chapter 2: Adjoints of Monoidal Monotones
- Lecture 28 - Chapter 2: Ignoring Externalities
- Lecture 29 - Chapter 2: Enriched Categories
- Lecture 30 - Chapter 2: Preorders as Enriched Categories
- Lecture 31 - Chapter 2: Lawvere Metric Spaces
- Lecture 32 - Chapter 2: Enriched Functors
- Lecture 33 - Chapter 2: Tying Up Loose Ends

Chapter 3 is about databases - and now we will finally meet categories, functors, adjoint functors, and Kan extensions.

To read and join discussions on Chapter 3 go here:

You can also do Exercises and puzzles. Here are the lectures on Chapter 3:

- Lecture 34 - Chapter 3: Categories
- Lecture 35 - Chapter 3: Categories versus Preorders
- Lecture 36 - Chapter 3: Categories from Graphs
- Lecture 37 - Chapter 3: Presentations of Categories
- Lecture 38 - Chapter 3: Functors
- Lecture 39 - Chapter 3: Databases
- Lecture 40 - Chapter 3: Relations
- Lecture 41 - Chapter 3: Composing Functors
- Lecture 42 - Chapter 3: Transforming Databases
- Lecture 43 - Chapter 3: Natural Transformations
- Lecture 44 - Chapter 3: Categories, Functors and Natural Transformations
- Lecture 45 - Chapter 3: Composing Natural Transformations
- Lecture 46 - Chapter 3: Isomorphisms
- Lecture 47 - Chapter 3: Adjoint Functors
- Lecture 48 - Chapter 3: Adjoint Functors
- Lecture 49 - Chapter 3: Kan Extensions
- Lecture 50 - Chapter 3: Left Kan Extensions
- Lecture 51 - Chapter 3: Right Kan Extensions
- Lecture 52 - Chapter 3: The Hom-Functor
- Lecture 53 - Chapter 3: Free and Forgetful Functors
- Lecture 54 - Chapter 3: Tying Up Loose Ends

Chapter 4 is about collaborative design, and how we can use enriched profunctors to relate resources to requirements.

To read and join discussions on Chapter 4 go here:

You can also do Exercises and puzzles.

- Lecture 55 - Chapter 4: Enriched Profunctors and Collaborative Design
- Lecture 56 - Chapter 4: Feasibility Relations
- Lecture 57 - Chapter 4: Feasibility Relations
- Lecture 58 - Chapter 4: Composing Feasibility Relations
- Lecture 59 - Chapter 4: Cost-Enriched Profunctors
- Lecture 60 - Chapter 4: Closed Monoidal Preorders
- Lecture 61 - Chapter 4: Closed Monoidal Preorders
- Lecture 62 - Chapter 4: Enriched Profunctors
- Lecture 63 - Chapter 4: Composing Enriched Profunctors
- Lecture 64 - Chapter 4: The Category of Enriched Profunctors
- Lecture 65 - Chapter 4: Collaborative Design
- Lecture 66 - Chapter 4: Collaborative Design
- Lecture 67 - Chapter 4: Feedback in Collaborative Design
- Lecture 68 - Chapter 4: Feedback in Collaborative Design
- Lecture 69 - Chapter 4: Feedback in Collaborative Design
- Lecture 70 - Chapter 4: Tensoring Enriched Profunctors
- Lecture 71 - Chapter 4: Caps and Cups for Enriched Profunctors
- Lecture 72 - Chapter 4: Monoidal Categories
- Lecture 73 - Chapter 4: String Diagrams and Strictification
- Lecture 74 - Chapter 4: Compact Closed Categories
- Lecture 75 - Chapter 5: The Grand Synthesis

Puzzles are created by class members.

Here are the exercises from the book, often with solutions:

For information on how the Azimuth Forum works, see:

A discussion was started but the proper place to record and track errors in the text is here.

By John Baez:

By others:

Candidates for becoming wiki pages include:

These are fun digressions:

category: courses