Introduction to Category Theory

Update: The lecture on 23 October is in 9220 (E3) at 15:30.
Update 2: Subsequent lectures will be held in 2202 Hauptbau (i11 seminar room)

Abstract

Category theory is an abstract mathematical language which spans many fields of research. It is used to define very general concepts, which allows one to transfer ideas from one domain to another. Although it originates in algebraic topology, its use has spread fast. Nowadays, it also plays a prominent role in theoretical computer science.

We will do the basics of category theory (see below for topics). The aim is that you will be able to read and understand work which uses it. I will try to discuss the relevant topics for computer science.

Tentative schedule

Lectures will be on Wednesdays 15:30 – 17:30 in the seminar room of i22: 2202 (Hbau).

DateTopicRoomHomework
123 October (2019)Introduction. Categories and Functors.9220 (E3)Here
230 OctoberFunctor examples. Products and Coproducts.2202 (HB)Here
36 NovemberSummary of (co)products & Naturality & Currying.2202 (HB)Here
413 NovemberAutomata, coalgebras and coinduction.2202 (HB)Here
520 NovemberAdjoints2202 (HB)Here
627 NovemberMonads2202 (HB)Here

The homework can help in getting used to the notation and ideas from the lecture. It is not mandatory.

Topics

  • Categories and Functors
  • Natural transformations
  • Products and Coproducts and …
  • Modelling Automata as Coalgebras
  • Induction and Coinduction
  • Adjoints
  • Monads
  • Limits and Colimits (if time allows)
  • The Yoneda lemma (if time allows)

Pre-requisites

We will start from the basics. So only an interest in mathematical structures is necessary.

Resources

There are many good books on the topic. This is a list of books that I am aware of (and of which I have read at least, say, a paragraph or two).

  • Category Theory – Steve Awodey. I have used this book during my studies myself. It is very neutral, in the sense that there is no emphasis on maths, but also no emphasis on compsci. It does not assume background knowledge, except for some discrete maths (sets, relations, etc).
  • Category Theory in Context – Emily Riehl. This book is loaded with examples and shows concrete results derived from category theory. I think it is really cool. However, the focus is rather mathematical. You can find a pdf online on her website.
  • Category Theory for Computing Science – Michael Barr, Charles Wells. As the name suggests, this has a focus on compsci. They define a category as a special type of graph, something I am not a huge fan of.
  • Category Theory for the Working Mathematician – Saunders Mac Lane. Great resource for looking things up. However, the title is very honest: the focus is on mathematics.
  • Category Theory for Programmers – Bartosz Milewski. This should be great for people into functional programming. There is a corresponding youtube lecture.

My notation will be more or less consistent with the books of Awodey and Riehl.

If you are feeling adventurous, you could dig up the original paper “General Theory of Natural Equivalences” by Samuel Eilenberg and Saunders Mac Lance (1945). It is of course written with algebraic topology in mind. Nevertheless, the introduction is somewhat readable without such background knowledge.

Lecturer

Joshua Moerman is currently a postdoctoral researcher in the i2 group of the RWTH. See his personal page for more information.