Identity functors, isofunctors and equivalent categories

Exercise 105 (Chapter 17, “Functors”):

Define the identity functor from a category to that same category. What do you suppose is meant by equivalent categories?

Identity functors

We have encountered two flavors of identity definitions. Identity mappings on sets are defined by the way they act on set elements, namely that they don’t change them. Identities in abstract categories, on the other hand, are defined by the way they behave respective to the composition of morphisms.

Categories are a bit like sets, in that they have “elements”, or rather two kinds of such: objects and morphisms. Inspired by this, we can define identity functors in a category \mathcal C as the functor \mathcal I from itself to itself that maps each object to itself and each morphism to itself. Such a functor always exists, and, since its effect is completely specified, it is unique.

But since we also have composition of functors, we can also try to define the identity functor on category \mathcal C as a functor, if it exists, \mathcal I_\circ from \mathcal C to \mathcal C such that for any category \mathcal C', for any functor \mathcal F from \mathcal C to \mathcal C', \mathcal F \circ \mathcal I_\circ = \mathcal F and for any functor \mathcal F' from \mathcal C' to \mathcal C, \mathcal I_\circ \circ \mathcal F' = \mathcal F.

It is immediate that the functor \mathcal I from the first definition satisfies the second. Since the former always exists, so does the latter. Furthermore, if there were two identity functors following the second definition, \mathcal I_\circ and \mathcal I'_\circ, we would have both \mathcal I_\circ \circ \mathcal I'_\circ = \mathcal I_\circ and \mathcal I_\circ \circ \mathcal I'_\circ = \mathcal I'_\circ, hence \mathcal I'_\circ = \mathcal I_\circ.

Thus the two definitions are equivalent; one and only one identity functor exists for each category.

Isofunctors and equivalent categories

The same exercise asks us to define the notion of equivalent categories.

We may first want to define an isofunctor between two categories:

A functor \mathcal F from category \mathcal C to category \mathcal C' is an isofunctor if and only if there exists a functor \mathcal F' from \mathcal C' to \mathcal C such that \mathcal F' \circ \mathcal F is the identity functor on \mathcal C and \mathcal F \circ \mathcal F' is the identity functor on \mathcal C'.

We can then, of course, define equivalent categories as categories between which there exists at least one isofunctor.

Free objects following an isofunctor

If \mathcal C and \mathcal C' are equivalent categories and \mathcal F is an isofunctor from \mathcal C to \mathcal C' with \mathcal F' its inverse isofunctor from \mathcal C' to \mathcal C, then we have:

If A is an object of \mathcal C and A' = \mathcal F(A), then (A', \iota_A) (with \iota_A the identity morphism on A) is a free \mathcal C' object on A following the functor \mathcal F'.

The proof is easy. If B' is any object of \mathcal C' and \beta a \mathcal C-morphism A \to \mathcal F'(B'), then for a \mathcal C'-morphism \gamma: A' \to B' to be such that \mathcal F'(\gamma) \circ \iota_A = \beta, necessarily \mathcal F'(\gamma) = \beta, that is (applying \mathcal F to each side) \gamma = \mathcal F(\beta). We can check that this \gamma = \mathcal F(\beta) indeed satisfies \mathcal F'(\gamma) \circ \iota_A = \beta. Hence there is one and only one \mathcal C'-morphism \gamma: A' \to B' such that \mathcal F'(\gamma) \circ \iota_A = \beta. This being the case for any object B' of \mathcal C' and any \beta \mathcal C-morphism A \to \mathcal F'(B'), the pair (A', \iota_A) is a free \mathcal C' object on A following \mathcal F'.

The “free object functor” in this case thus simply maps objects of \mathcal C to the same as \mathcal F does. It is easy to check that the effect of this free object functor on morphisms of \mathcal C is too just the same as that of \mathcal F. Thus, the free object functor in the case of equivalent categories following an isomorphism between them is just the inverse of that isomorphism.