Homomorphisms vs Functors

What really is the difference between a Homomorphism between categories and a Functor? I understand that they are both structure preserving mapping of the objects and arrows between the categories or am i missing something ?


You are correct, functors are the structure preserving entities between categories. They could have been called homomorphisms. I don't know much about the reason for the terminology used, but I think that Mac Lane and Eilenberg, when inventing category theory, borrowed terminology from philosophy where category and functor are known (at least to some).

Polymorphism is common in mathematics. For instance, the structure preserving entities between topological spaces (though some may say these should actually be considered to be between frames) are called continuous rather than homomorphisms. And an invertible continuous function with continuous inverse is called a homeomorphism rather than an isomorphism. A structure preserving entity between vectors spaces is called a linear transformation. A structure preserving mappings between metric spaces is called a short map. And an invertible one is called an isometry rather than an isomorphism. Clearly, historical reasons play a role.

Specifically regarding categories, since categories don't have to be small, one can argue that a functor is not really a function. One can argue that a homomorphism must be a function that preserves structure, and thus one may claim that functors should not be called homomorphisms. In any case, the terminology, while not set in stone, is certainly well-established but that does not mean other possibilities do not make sense. Sometimes they make more sense.


If I understand your question and definitions correctly: no, a homomorphism of categories and a functor are not the same thing.

Your definition of "homomorphism of categories" seems to be: given categories $M$ and $N$, a homomorphism $h:M\to N$ is

  • a mapping from $\mathsf{ob}(M)$ to $\mathsf{ob}(N)$, together with
  • for every $x,y\in\mathsf{ob}(M)$, a mapping from $\mathrm{Hom}_M(x,y)$ to $\mathrm{Hom}_N(h(x),h(y))$ such that $$h(a\circ b)=h(a)\circ h(b)$$ for all $a,b\in \mathrm{Hom}_M(x,y)$.

A functor is then a homomorphism of categories that satisfies the additional requirement that

  • $h(\mathrm{id}_x)=\mathrm{id}_{h(x)}$ for all $x\in\mathsf{ob}(M)$.

Thus, being a functor is a strictly stronger property than being a homomorphism of categories. For example, let $M$ be the category with

  • $\mathsf{ob}(M)=\{x,y\}$
  • $\mathrm{Hom}_M(x,x)=\{\mathrm{id}_x\},\quad \mathrm{Hom}_M(x,y)=\{a\}, \quad \mathrm{Hom}_M(y,x)=\varnothing,\quad \mathrm{Hom}_M(y,y)=\{\mathrm{id}_y\}$

and let $N$ be the category with

  • $\mathsf{ob}(N)=\{z\}$
  • $\mathrm{Hom}_N(z,z)=\{\mathrm{id}_z,c\}$ where $c\circ c=c$.

Then the homomorphism of categories $h:M\to N$ defined by

  • $h(x)=z,\quad h(y)=z$
  • $h(\mathrm{id}_x)=c,\quad h(a)=c,\quad h(\mathrm{id}_y)=c$

is not a functor.