Hom Functor

Fret not if you’re unfamiliar with the term functor; it’s a concept in category theory we will use implicitly without delving into the specific definition. This topic is, unfortunately, a little on the dry side but it’s a necessary evil to get through.

Let R be a ring, and MN be left R-modules. The set of R-module homomorphisms MN is denoted by HomR(MN) or just Hom(MN) when the base ring is clear. This forms an abelian group under addition, where adding fgM → N just gives:

f+g : M \to N, \quad (x\in M) \mapsto (f(x) + g(x) \in N).

When R is commutative, in fact Hom(MN) is an R-module since given rRfM → N, we can define (r·f) : M → N to be the map x \mapsto r\cdot f(x). This fails when the base ring is non-commutative because (r\cdot f)(r'x) = r\cdot f(r'x) = rr'\cdot f(x) \ne r'\cdot (r\cdot f)(x).


By functoriality, we mean the following:

Lemma. If g : N → N’ is a homomorphism of R-modules, then composing gives us group homomorphisms:

\begin{aligned} g_* :\text{Hom}_R(M, N) \to \text{Hom}_R(M,N'), \qquad &(f : M\to N) \mapsto (g\circ f : M\to N')\\ g^*:\text{Hom}_R(N', M) \to \text{Hom}_R(N, M), \qquad &(f : N'\to M) \mapsto (f\circ g :N\to M).\end{aligned}

Furthermore, if h : N’ → N” is another R-module homomorphism, then composing gives:

\begin{aligned} h_* \circ g_* &= (h\circ g)_* : \text{Hom}_R(M, N) \to \text{Hom}_R(M, N''), \\ g^* \circ h^* &= (h\circ g)^* : \text{Hom}_R(N'', M) \to \text{Hom}_R(N, M). \end{aligned}

Finally, given any module N, the identity map 1N : N → N gives the identity maps for the following:

\begin{aligned} (1_N)_* : &\text{Hom}(M, N) \to \text{Hom}(M, N), \\ (1_N)^* : &\text{Hom}(N, M) \to \text{Hom}(N, M).\end{aligned}

The proofs for the above are quite easy and thus omitted. Hence, we need to bear in mind that the Hom functor is direction-reversing in the first term and direction-preserving in the second. [ At worst, just memorise it; that certainly beats getting confused by the direction all the time. ]


Under category theory, direction-reversing (resp. -preserving) is given the term contravariant (resp. covariant). It is standard notation in literature to denote a contravariant functor by g^* and covariant one by g_*. Breaking this convention will result in unnecessary confusion!


To motivate the above definition, let us look not at modules but at rings instead. Consider the following ring R:

R = \mathbf{Z}[a,b,c,d]/\left< ad-bc-1\right>.

Any ring homomorphism fRS then corresponds to picking elements wxyz ∈ S such that wz – xy = 1, i.e. a 2 × 2 matrix of determinant 1. Indeed, for such an f, we just take the images f(a), f(b), f(c), f(d) ∈ S. Furthermore, if gST is a ring homomorphism, then the map:

g_* : \text{Hom}_{\text{ring}}(R, S) \longrightarrow \text{Hom}_{\text{ring}}(R, T), \quad f \mapsto g\circ f

corresponds to mapping elements wxyz ∈ S such that wz – xy = 1 to g(w), g(x), g(y), g(z) ∈ T, which also satisfy the same equation.



When M or N is endowed with additional structure, it is possible to form a module out of Hom(MN):

Definition. Let R, S be rings. An (R, S)-bimodule is an abelian group M equipped with a left R-module and right S-module structure such that both commute, i.e. for all r∈R, s∈S, m∈M, we have (rm)s = r(ms).

One way of visualizing this is via an expression:

\overbrace{r_1 r_2 \ldots r_k}^{\in R}\overbrace{\ m\ }^{\in M} \overbrace{s_1 s_2 \ldots s_l}^{\in S}

which is associative, i.e. independent of our choice of bracketing.


  1. If R is commutative, any R-module is automatically an (RR)-bimodule.
  2. Any ring R is an (RR)-bimodule.
  3. More generally, if RS is a ring homomorphism, then S is an R-algebra and S is an (RS)-, (SR)- and (RR)-bimodule.
  4. If M is a left R-module, we can turn it into a right Rop module by defining mr’ (r’ ∈ Rop) to be rm where rR is the element corresponding to r’Rop. Does this turn M into an (R, Rop)-bimodule? [ Answer: no because the left and right actions don’t commute. ]

When either M or N is a bimodule, the resulting Hom(MN) gets a module structure.

Proposition. Let M, N be R-modules.

  • If M is an (R, S)-bimodule, then HomR(M, N) is a left S-module, via s\cdot f : M\to N, m \mapsto f(ms).
  • If N is an (R, S)-bimodule, then HomR(M, N) is a right S-module, via f\cdot s:M \to N, m\mapsto f(m)s.


We will only check the commutativity of the action of S. For the first case,

s'(s\cdot f): m \mapsto (s\cdot f)(ms') = f(ms's),\qquad (s's)\cdot f : m\mapsto f(ms's).

For the second case,

(f\cdot s)\cdot s' : m\mapsto (f\cdot s)(m)s' = f(m)ss', \qquad f\cdot (ss') : m\mapsto f(m)ss'. ♦

Here’s one way to remember this: as we mentioned earlier, Hom reverses direction in the first component by turning the right S-action into a left one, and preserves direction in the second.

Quick exercise

We know that HomR(R, M) is uniquely determined by the image of 1∈R. Thus we get a bijection M ↔ HomR(R, M). This is clearly an isomorphism of abelian groups. On the other hand, R is an (RR)-bimodule so HomR(R, M) also becomes a left R-module. Check that the bijection is an isomorphism of left R-modules.

Definition. Let M be a left R-module. From the (R, R)-bimodule structure of R, we get a right-module structure onHomR(M, R). This is called the dual of M and denoted by M*.


Linear algebra over division rings is mostly identical to that over fields, but the dual of a left vector space becomes a right vector space.


Hom Functor is Left Exact

The main result we’d like to show is:

Theorem. Suppose 0\to M' \stackrel{f}\to M \stackrel{g}\to M'' is an exact sequence of modules. Then for any module N, the following sequence is exact as well:

0 \to \text{Hom}_R(N, M') \stackrel{f_*}\to \text{Hom}_R(N, M) \stackrel{g_*}\to \text{Hom}_R(N, M'').


There are several parts to this result:

  • f_* is injective: if hN → M’ is such that fhN → M is zero, then since f is injective, h = 0.
  • Since gf = 0, we also have g_* f_* = (gf)_* = 0_* = 0. Thus \text{im}(f_*) \subseteq \text{ker}(g_*).
  • Conversely, suppose h\in \text{ker}(g_*) so hN → M is a map such that ghN → M” is the zero map. Then im(h) ⊆ ker(g) = im(f). Since fM’ → M is injective, this gives h' := f^{-1} h: N\to M' and f_*(h') = fh' = h. ♦

The following result is sometimes useful too:

Proposition. If 0\to M' \stackrel{f}\to M \stackrel{g}\to M'' is a sequence of modules such that

0 \to \text{Hom}_R(N, M') \stackrel{f_*}\to \text{Hom}_R(N, M) \stackrel{g_*}\to \text{Hom}_R(N, M'').

is exact for all N, then the sequence is exact.

Sketch of Proof

Let NR, the base ring. Then we recover the exact desired sequence. ♦


Let us briefly explain why the above results are of interest. Ideally, we would like to have a functor F such that whenever M’ → M → M” is exact, the resulting F(M’) → F(M) → F(M”) is exact too. This is tremendously convenient, since F then commutes with kernel, image, cokernel etc. However, the above result says Hom(N, -) is only “left-exact”. For example, consider the surjective map of Z-modules, Z → Z/2 → 0. Taking NZ/2 gives us Hom(Z/2, Z) → Hom(Z/2, Z/2) → 0 which is not exact since the first term is 0.

Suppose we would like to prove that some functor F is left-exact. Here’s one way:

  • Represent F using the Hom-functor, i.e. find an N such that F(M) = Hom(NM).
  • From the above result, we immediately see that F is left-exact.


Prove the above for Hom(-, N) as well: i.e. suppose M' \stackrel{f}\to M \stackrel{g}\to M'' \to 0 is an exact sequence. Then for any module N, we get an exact sequence:

0 \to \text{Hom}_R(M'', N) \stackrel{g^*}\to \text{Hom}_R(M, N) \stackrel{f^*}\to \text{Hom}_R(M', N).

Conversely, if the above sequence is exact for all N, then M' \stackrel{f}\to M \stackrel{g}\to M'' \to 0 is exact.

Thus, Hom(N, -) takes left-exact sequences to left-exact sequences and Hom(-, N) takes right-exact to left-exact sequences too. In both cases, the final outcome is left-exact and one often says in short, the Hom functor is left-exact.

This entry was posted in Notes and tagged , , , , , . Bookmark the permalink.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s