Introduction
In MathOverflow, statements similar to the following two occurred in comments:
- Sets and functions do not form a category
- Categories and functors do not form a category.
I cannot find either one of them now, but I want to talk about them anyway.
If you look at the definition of categories in various works (for example references [1] through [3] below) you find that the objects and arrows of a category must each form a “collection” or “class” together with certain operations. The authors all describe the connection with Grothendieck’s concept of “universe” and define “large categories” and “small categories” in the usual way. So Statement 1 above is simply wrong.
Statement 2 is more problematic. The trouble is that if the word “categories” includes large categories then the objects do not form a set even in the second universe. You have to go to the third universe.
Now there is a way to define categories where this issue does not come up. It allows us to think about categories without having a particular system such as ZF and universes in mind.
A syntactic definition of category
A category consists of objects and arrows, together with four methods of construction M1 – M4 satisfying laws L1 -L7. I treat “object” and “arrow” as predicates: object[f] means f is an object and arrow[a] means a is an arrow. “=” means equals in the mathematical sense.
Just-in-time foundations
Mathematicians work inside the categories Set (sets and functions) and Cat (categories and functors) all the time, including functors to or from Cat or Set. When they consider a category, the use theorems that follow from the definition above. They do not have to have foundations in mind.
Once in awhile, they are frustrated because they cannot talk about the set of objects of some category. For example, Freyd’s solution set condition is required to prove the existence of a left adjoint because of that problem. The ss condition is a work-around for a familiar obstruction to an easy way to prove something. I can imagine coming up with such a work-around without ever giving a passing thought to foundations, in particular without thinking of universes.
When you work with a mathematical object, the syntax of the definitions and theorems give you all you need to justify the claim that something is a theorem. You absolutely need models of the theory to think up and understand proofs, but the models could be sets or classes with structure, or functors (as in sketch theory), or you may work with generic models which may require you to use intuitionistic reasoning. You don’t have to have any particular kind of model in mind when you work in Set or Cat.
When you do run into something like the impossibility of forming the set of objects of some category (which happens in any model theory environment that uses classical rather than intuitionistic reasonins) then you may want to consider an approach through some theory of foundations. That is what most mathematicians do: they use just-in-time foundations. For example, in a particular application you may be happy to work in a topos with a set-of-all-objects, particularly if you are a certain type of computer scientists who lives in Pittsburgh. You may be happy to explicitly consider universes, although I am not aware of any category-theoretical results that do explicitly mention universes.
But my point is that most mathematicians think about foundations only when they need to, and most mathematicians never need to think about foundations in their work. Moral: Don’t think in terms of foundations unless you have to.
This point of view is related to the recent discussions of pragmatic foundations [7] [8].
Side remark
The situation that you can’t always construct a set of somethings is analogous to the problem that you have in working with real numbers: You can’t name most real numbers. This may get in the way of some analyst wanting to do something, I don’t know. But in any branch of math, there are obstructions to things you want to do that really do get in your way. For example, in beginning linear algebra, it may have occurred to you, to your annoyance, that if you have the basis of a subspace you can extend it to the basis for the whole space, but if you have a basis of the whole space, and a subspace, the basis may not contain a basis of the subspace.
References and links
- Saunders Mac Lane, Categories for the working mathematician. Springer-Verlag, 1971.
- Wikipedia article on category theory
- Michael Barr and Charles Wells, Category Theory for Computing Science, Third Edition (1999). Les Publications CRM, Montreal (publication PM023).
- Discussion of functions in abstractmath.org.
- Definitions into Mathematical Objects 7.
- Object oriented programming in Wikipedia.
- M. Gelfand, We Do Not Choose Mathematics as Our Profession, It Chooses Us: Interview with Yuri Manin.
- Discussion in n-category cafe.
Send to Kindle
I found myself led to do something this in my study of Inquiry Driven Systems.
See, for example, § 1.3.4.12. Objective_Plans and Levels.
Forgive me if I append a self-quotation: