Left exact in both variables, exact in neither
Hom(M, −) is covariant and Hom(−, N) is contravariant, and both are left exact: they carry a short exact sequence to a sequence exact except at the right-hand end. The obstruction at that end is a lifting or extension problem, and it is precisely what Ext1 records. Recognising which variable is being varied, and which direction the arrows then run, is the single most common source of confusion in early homological algebra.
Learning objectives
- State left exactness of Hom in each variable.
- Produce an example where the last map fails to be surjective.
- Explain the arrow reversal in the contravariant variable.
- Identify additivity and why it is needed.
Section 01The two variables
gives two induced sequences, and the direction of the arrows differs:
In both cases exactness holds at the two left positions and can fail at the right. The contravariant version reverses the sequence, so it is the map out of the submodule that may fail to be hit: not every homomorphism A → N extends to B.
Covariantly the question is lifting: does a map into C lift to B? Contravariantly it is extension: does a map out of A extend over B? Both are measured by Ext1, in different variables, which is why Ext is a functor of two arguments.
Section 02A concrete failure
Take the short exact sequence of abelian groups
and apply Hom(ℤ/2ℤ, −). Since Hom(ℤ/2ℤ, ℤ) = 0 but Hom(ℤ/2ℤ, ℤ/2ℤ) = ℤ/2ℤ, the induced sequence is
and the final map is visibly not surjective. The identity map of ℤ/2ℤ does not lift to ℤ. The cokernel ℤ/2ℤ is Ext1(ℤ/2ℤ, ℤ), and it is non-zero for exactly the reason the sequence does not split.
It is the smallest non-trivial computation in the subject and it recurs constantly — in the universal coefficient theorem, in the classification of abelian group extensions, and as the first entry in every table of Ext groups.
Section 03Additivity and exactness vocabulary
| Property | Meaning | Examples |
|---|---|---|
| Additive | Preserves finite direct sums and addition of morphisms | Hom, tensor, all derived functors |
| Left exact | Carries 0 → A → B → C to an exact 0 → FA → FB → FC | Hom in either variable; inverse limits |
| Right exact | Carries A → B → C → 0 to FA → FB → FC → 0 exact | Tensor product; direct limits over directed sets |
| Exact | Both | Localisation; Hom(P, −) for P projective; direct sums |
Hom(P, −) is exact for every short exact sequence precisely when P is projective. Saying that a particular sequence stays exact under Hom is a much weaker statement, and conflating the two produces false general claims.
ReferenceFrequently asked questions
Which variable is contravariant?
The first. Hom(−, N) reverses arrows because a map A → B lets you pull a homomorphism out of B back to one out of A. The second variable is covariant: maps compose forward.
Is Hom(M, −) ever exact?
Exactly when M is projective — that is the definition, restated. Dually Hom(−, N) is exact exactly when N is injective. These two conditions are what make resolutions by projectives and injectives useful.
Does Hom preserve infinite direct sums?
In the second variable it preserves products, not sums; in the first it converts sums into products. Hom(⊕Mi, N) = ∏Hom(Mi, N). This asymmetry matters whenever infinite families appear, notably in universal coefficient arguments.
NavigateContinue in this stream
Curated next steps from this page. The site also surfaces algorithmically related reading below.
ProvenanceSources and further reading
This page is an original KEVOS explanatory article. It presents the underlying mathematics — definitions, algorithms, complexity results and selection criteria — in KEVOS editorial voice. No text is reproduced from any copyrighted source. Where numerical tables are relevant, KEVOS links to live authoritative databases rather than republishing static values.
