Hom is left exact
Hom preserves kernels: Hom_R(M,-) is left exact (covariant) and Hom_R(-,N) is left exact (contravariant); Ext measures the failure of exactness beyond that.
Let be a ring and write for the Hom functor.
Statement (covariant in the second variable)
Fix a left -module . If
is an exact sequence of left -modules, then
is exact.
Equivalently: preserves kernels (and monomorphisms), but it need not preserve cokernels (and epimorphisms).
Statement (contravariant in the first variable)
Fix a left -module . If
is exact, then applying yields an exact sequence
Failure of right exactness and Ext
The failure of to be exact is measured by Ext: (and higher ) are the right derived functors of , and every short exact sequence gives a long exact sequence in Ext (a special case of the long exact sequence for derived functors).
If is projective, then is exact. If is injective, then is exact.
Examples
In the cyclic-group examples, let be an integer.
Example 1: Hom need not be right exact (over )
Start from the short exact sequence
Apply . Since and , we get
The map is not surjective for , so fails to preserve the cokernel; the cokernel is
Example 2: If is free, then Hom is exact
If is free of finite rank , then
Thus is a finite product of the identity functor, hence exact (it preserves both kernels and cokernels).
Example 3: Vector spaces over a field
If is a field and is a -vector space, then is free (hence projective). Therefore is exact, and equivalently
for all -vector spaces .