## Full and Faithful Functors

We could try to adapt the definitions of epics and monics to functors, but it turns out they’re not really the most useful. Really what we’re most concerned with in transforming one category into another is their morphisms. The more useful notions are best phrased specifically with regard to the hom-sets of the categories involved.

Remember that a functor between two (locally small) categories defines a function for each hom set: . We now apply our standard definitions to these functions.

We say that a functor is “full” if for every pair of objects and in the function is surjective. Similarly, we say that a functor is “faithful” if each function is injective. When we apply these definitions to monoids (considered as categories with one object) we recover monomorphisms and epimorphisms of monoids, so we know we’re on the right track.

Now a subcategory of a category consists of a subclass of the objects of and a subclass of the morphisms of so that

- For each arrow in both its source and target objects are in .
- For each object in its identity arrow is in .
- For each pair of composable arrows in their composite is in .

These conditions are enough to ensure that is a category in its own right. There is an inclusion functor sending each object and morphism of to itself in . Clearly it’s faithful, since any two distinct arrows in are distinct in .

What if this inclusion functor is also full? Then given any two objects and in , every morphism in is included in . We say that is a “full subcategory” of . In practice, this means that we’ve restricted which objects of we care about, but we keep all the morphisms between the objects we keep. For example, the category of abelian groups is a full subcategory of .

Note that we have not given any conditions on the map of objects induced by a functor. In fact, the (unique) functor from the category to the category is faithful, even though it appears to lose a lot of information. Indeed, though we identify both objects from in the image, the function on each hom-set is injective. Similarly, either functor from to is full. One condition on the object map that’s useful is that a functor be “essentially surjective”. A functor has this property if each object in the target category is *isomorphic* to an object in the image of .

Now, let functors and furnish an equivalence of categories. I say that (and, by symmetry, ) is full, faithful, and essentially surjective. Indeed, since we have an isomorphism for each object , so is essentially surjective. The natural isomorphism says that for every arrow we have . The right side of this equation is a bijection from to , and the left side is the composite . If were not full then the left side could not be always surjective, while if were not faithful then the right side could not be always injective. Since the right side is always a bijection, must be full and must be faithful. By symmetry is essentially surjective and faithful, and is full.

On the other hand, if a functor is full, faithful, and essentially surjective, then it is one side of an equivalence of categories. The proof is a bit more involved, but basically it proceeds by building a functor . Since each object of is isomorphic to some object in the image of we pick such an object for each and set . Then we have to find mappings of the hom-sets of in a coherent way so that the resulting composites and are *naturally* isomorphic to the identity functors. I won’t fill in all the details here, but suffice it to say it can be done.

This, then, characterizes equivalences of categories the way injectivity and surjectivity of functions characterize isomorphisms of sets.