I have just put an update for the Gentle Introduction to category theory online. Things have been moving pretty slowly (pressure of other interests, a planned chapter not really working out, spending far too much time revising earlier chapters, etc.); but we’ve inched forward to 157 fun-packed pages. Again, this version is stopping far short of a natural break point. But I’ll not be able to return to this for a few weeks, so I thought I should at least make available the best version of the earlier chapters I now have, and I can add three new chapters. (I note the newly added Theorem 63 which corrects a terrible blunder in some remarks in an earlier version! No promises that there aren’t more blunders to be found.)

One question on the proof of Theorem 16. It seems that point 1 proves that, if f = g, then f \compose x’ = g \compose x’, with the assumption that f \compose x = g \compose x. But does that need such an elaborate proof, given equality is, well, equality?

Oops. Yes of course!

Thanks! While at nitpicking: Def. 25 doesn’t literally introduce “point elements”, but the term appears in Thm. 18, and right before Def. 30.

Also, FYI: I’m reading the early chapters because we’re currently using your notes in a small study group (CS students) ;-) — I’ll watch for feedback, but we just started, so not much yet (other than people liking the precise explanation of duality).

Thanks for this too! I do hope that your study group finds the notes helpful, and I’ll be delighted to get any feedback that you have. In particular, I’d like to know about any sections which people find less clear than they should be.

(As you know, the Gentle Intro is very much work in progress, but the story can be continued in the older Notes available from the categories page here, where I also I say how old and new fit together.)

Other comment: something looks wrong at page 48, where footnote 2 is referred to:

H = (H, ⊙)).²

Not only there’s a double closed parenthesis, but I’m guessing there’s text missing there, where you probably announce you’re going to stop distinguishing \mathcal{G} from G.

Hi, I’m a member of the study group Paolo Giarrusso mentioned, in the University of Tübingen. We’re reading about limits (chapters 8 and 9) this week. Here are some typos. Is it better to report them each week, or to collect them and report everything at once?

– Theorem 43, end of the first paragraph of its proof: u = \alpha_C should be u = \alpha_I; otherwise it’s not type-correct.

– Theorem 45, first line of the first paragraph of its proof: The cone X Y should be X X instead. Ditto for the same cone on the first line of the second paragraph.

Thanks for this (what annoying typos)! Oh yes, please send the corrections week-by-week, both for me (I’ll be putting an update online in a couple of weeks, I hope) and for others.

Another typo. The statement of Theorem 59 (2) should have C^1 is iso to C (not 1!) — which is fortunately what the ensuing proof proves. [Though I’ll rewrite the proof to separate out the quick-and-easy key idea from checking that it works.]

Some more typos in Chap. 7.

Theorem 25: V factors through W because *W* is a product, not because *V* is a product.

7.5 references Theorem 23 (4) instead of Theorem 23 (3).

Thanks again!

Time for non-typos.

Chap. 7, theorem 24.

Other examples include all categories with a null object and at least another non-isomorphic object X: if 0 = 1, 0 × X = 1 × X = X != 1. (Observed by a seminar colleague, I’m sorry I forget who).

In the given proof, you claim that “But trivially the wedge factors uniquely through itself”, but I’m not sure how trivial is “uniquely”. However, it might be trivial once you’ve fully spelled out the given category, and we pick the free one given the constraint (alternatively, we might just compute the set of all valid equations as the closure of the given ones, but I’m not sure how). The set of arrows is luckily finite, since the only loop is between f and p, and p◦f = 1 while (f ∘ p)^2 = f ∘ p (precisely, f ∘ p ∘ f ∘ p = f ∘ (p ∘ f) ∘ p = f ∘ 1 ∘ p = f ∘ p).

Then, I guess we can verify that f ∘ p != id, q ∘ f ∘ p != q, so f ∘ p is not a mediating arrow, as required.

First, I’m not sure now why I gave the (supposed) “brute force” counterexample rather than the nice general proof you mention. I certainly agree: I should use the nice proof.

Second, I fear just I may just have got myself in a tangle thinking through the supposed counterexample (I rather suspect I just muddled up p.f with f.p at a crucial point). Best deleted, then!

Very many thanks, then, for spotting this.

Sec. 10.1, Th. 49: I had trouble understanding the last proof step, namely “Rearranging part of this diagram, and unpacking again the composites f ◦ c, g ◦ c, this is just to say that there is a unique arrow v : C → E making this cut-down diagram commute:”.

In my head, I also had to “unpack” q = f ∘ e.

Also, I had trouble getting the proof structure in this step: The diagram commutes iff this rearranged diagram commutes (not clear from cut-down; I missed “this is just to say”, maybe that’s just my fault). So, v is the unique arrow making the earlier diagram commute iff it is the unique arrow making the later diagram commute. Because of the “only if” direction, we get that v is the mediating arrow.

On Chap. 10: seminar colleagues somehow didn’t find 10.2 very illuminating.

In 10.4, I wondered if Theorem 47 (on pullbacks) could be extended or had been forgotten — from nLab it seems not, I wonder why.

(1) Yes, something seems amiss with the presentation at the end of Th 49. This needs tidying as you suggest.

(2) I’ll have another look at §10.2 then!

(3) Theorem 47 isn’t exactly forgotten, but perhaps the remark at the end of 10.1 needs about it not needing a separate proof given proofs of the other results needs to be made more emphatically.

Finally, let me get to some comments on Sec. 8.3 and subobjects. (I’m separating points since they’re different “threads”). Most participants found it much harder, also because of how much material it contains — having a pullback snuck in didn’t help, but also the section contains no actual Definition marked as such.

Also, you give the presentation of subobjects from topos theory, but I find it a bit sad that you don’t give the standard definition of subobjects of Z, namely as monics into X -> Z (up to a certain equivalence relation) — I like the discussion from Barr and Wells, Category theory for computing science, Sec. 2.8.8.

Generalizing from inclusions to arbitrary monics, with this equivalence relation, seems already noteworthy. And this would already be useful for the later example of pullbacks in Set (Sec. 9.5 (b)) — you give an intuition for the pullback X ×Z Y for the special case where X, Y are subsets of Z. This intuition generalizes easily to other monics: a pullback of two subobjects is the generalization of their intersection.

Now, it is true that for topoi you can add subobjects classifiers, the truth arrow, characteristic arrows and so on, but that applies to fewer categories (that is, only topoi) and I’ve usually seen it come afterwards, while subobjects exist in most categories. (Still, if you were to come to topos theory, I’d be happy; in my last approach I got stuck on topoi for modeling intuitionistic logic, using Goldblatt).

Thanks once more …. this is

veryhelpful. I’ll rethink the presentation here. (And by the way, I agree that Barr and Wells, Category Theory for Computing Science, is a pretty terrific book!)There is an obvious garble in (F8) in §12.2: it should read “And List_arw takes a function f : X → Y to the function List(f): List(X) → List(Y) which sends the list …” or some such.