So I want to take some time to talk about universal properties. I personally think they’re awesome because if you look hard enough, you start to see them everywhere in mathematics. Especially in abstract algebra and algebraic geometry. They admit a fairly intuitive explanation, but the actual details of their definition require a lot of work. A lot.
Universal properties are used to define certain “special” objects in a category. That is, a universal property, in a sense, picks out the “best possible” object in a category that satisfies a certain property. Any other object that satisfies this property then has a morphism to/from (depending on the type of property) this “best possible” object. The nicest thing is then that an object satisfying a universal property is unique up to unique isomorphism. Yes, there are two “uniques” there.
For example (still working intuitively), let’s look at the kernel of a group homomorphism. If is a group homomorphism, then we usually define the kernel to be the normal subgroup of . Easy enough. This also relies on the fact that groups are also sets. Another way of looking at the kernel: It is the largest group that is “killed off” by , i.e. if is a group homomorphism, then , the map that sends everything in to 0 in . The same idea holds for the cokernel of , and tons of other special objects that you’ve undoubtedly run into before.
The technical details of the universal property are in the “largest group such that…” part. Here, this means that for any other group and homomorphism such that , there is a unique group , homomorphism , and homomorphism such that .
Yes, that is a bit wordy, it’s not just you. The point of this post (and probably the next as well), is to unravel that mess of words into something tractable. The first step to understanding these properties is to understand initial and terminal objects.
Initial and Terminal Objects
These aren’t too bad. Let C be some category. An initial object in C is an object such that for any other object , there is a unique morphism . A simple example to keep in mind is the empty set in the category Set. Since the empty set is a subset of every set, it admits a unique map into any set (there’s only one way to send nothing to nothing!).
A terminal object in C is an object such that for any other object , there is a unique morphism . Again, a simple example is any singleton set in the category of sets. To see this, if is any set, there is a unique map that sends everything everything in to the singleton set. I’m lying a tiny bit here (in what the “universal ” object is), and I’ll tell you later what it was. Is “the” singleton set unique? Of course not. It is, however, unique up to a unique isomorphism.
The lesson here is that initial objects capture the idea of “the most efficient” or “the smallest such that” and that terminal objects capture the idea of “the largest such that.” The key, however, is to define them in the right category.