So, since Sanath (S.D) already has quite a few posts about higher category theory, I figured someone should probably stop and introduce the notion of category theory. In the 1940’s Eilenberg and Lane introduced the notion of categories and functors as a means of studying algebraic topology. Since then, the language of category theory has found applications in various fields of mathematics, including commutative algebra, algebraic geometry, algebraic topology, and even computer science.
What is a Category?
Before formally introducing the notion of a category, I’d like to give an analogy explaining categories. Suppose I consider the set of all people currently living on earth. I’ll pair these people off by bloodline relationships that I’ll call “morphisms”. So, there’s a morphism mapping you to your biological mother, a morphism mapping your biological mother to your biological father, and so on. We can take compositions of these mappings. So, maps you to your biological father. Also, these relationships are associative and there exists a morphism that maps you to yourself. Now, take the set of all car brands on this earth. I again have morphisms relating these cars to each other. Say, I map a car brand to a brand that was created before it (chronologically speaking). So, maybe I have the morphism that takes Lamborghinis to Ferraris. Composition and associativity also hold here, as well as the existence of an identity morphism.
Now, let’s call the collection of all people and bloodline “morphisms” the category and the collection of all car brands and “morphisms” between them the category . We’d like to have a mapping . But how do we define such a mapping? Well, let’s define a mapping that takes you to a Lamborghini and your mother to a Ferrari. Let’s also say that . That is, takes the morphism between you and your mother to the morphism between the Lamborghini and Ferrari. This is natural, as we’re just mapping people to cars and maps between people to maps between cars. This mapping is called a Covariant Functor.
We’re now ready to formally introduce a category:
Definition 1: A category is a collection consisting of:
- “Objects” denoted by .
- For any two objects, there exists a set of morphisms between them, . (i.e. ) means ).
- Compositions of morphisms is well defined. That is, if and , then . In other words, taking .
- For each object , there exists an identity morphism . (i.e. .)
- The composition law is unital and associative. Explicitly, this means that, if then . Moreover, if we have two other morphisms and , then .
Notice that this is simply a formalization of the example given above, and the notion of an object is just an abstract sense of the word. Now that we have a formal definition, it would be cool to have some formal examples, yeah?
Here are a few simple examples:
- where the objects are entire groups, so our morphisms are just homomorphisms.
- where the objects are topological spaces, and the morphisms are continuous (with respect to the topology in each space) mappings.
- where the objects are vector spaces over a field and the morphisms are linear maps.
- where the objects are sets and the morphisms are functions in the usual sense.
It should be noted that in these examples, the collection of objects need not form a set. For example, the collection of all topological spaces does not form set. Another (ironic) example is that the collection of objects in does not form a set. We say that a category is small if the objects in a category form a set. For example, the first example of the people on earth is a small category.
An interesting (although highly unnecessary) formalization of a single finite group as a category. Let be a finite group. Then we may represent as a (small) category with a single formal object , with morphisms so that . So what we’re doing here is sort of odd. We’re letting be a “dummy” object, and letting the “morphisms” be the elements of the group, all acting as identity morphisms on our dummy object. Thus, composition of morphisms in this case is just group multiplication.
It should be noted that the language of category theory is a sort of “meta-language” in the sense that nothing in the language of categories allows for one to discuss the properties within objects. For example, a topological space is simply this: the shell of a topological space. Doing category theory is like manipulating planets in the universe without ever seeing the surface of the planets. However, for , we may identify the “points” of with the mappings from one point topological spaces into . That is, we write .
Another example of this is the category , of abelian groups with morphisms as homomorphisms. We can use only the objects and morphisms of this category to recover the elements of an abelian group with the Hom-set and seeing where maps. This makes sense since, obviously,
In mathematics, there’s a common trend with the word “sub”. We take a subset of something, and impose the structure of the larger entity and obtain the notion of a “sub-thing”. As usual, we have the notion of a subcategory.
We call a subcategory of if
- for we have with composition of the morphisms in induced from .
We call a full subcategory if, for , .
For example, the category is a subcategory of . (Verify this quickly).
We should note that in categories, there is no notion of “equivalence” of objects (except for the morphism ) so it is meaningless to write for . What we do have is the notion of an isomorphism. In abstract algebra, the notion of an isomorphism is simply a bijection that preserves the group structure (i.e. the binary operation). Though, in, say, a topological space, we need the morphism to be continuous and preserve the topology of the spaces (i.e. a homeomorphism). Thus, we need a uniform notion that acts as the “isomorphism” in each space. Luckily, these notions all have something in common: when you map “isomorphically” between objects, and take the inverse isomorphism, you get the “identity” morphism on that object. Formally,
We call an isomorphism (with inverse ) if and .
In category theory, if two objects are isomorphic, then there is a bijection between the Hom-sets containing each. For example, if then there is a bijection as well as a bijection . The notion of an isomorphism motivates the definition of a groupoid. A groupoid is simply a category in which all morphisms are isomorphisms. For example, in a groupoid , the one object Hom-sets are groups. That is, for , is group. (check this, though it’s straightforward. )
I’ll stop here for now, and end with just a little teaser of what’s to come. Well, in the informal example, we had a mapping . This is formally known as a functor, or a mapping between categories. In the next post I’ll introduce the notion of a functor and discuss their properties.