Balance: either variable may be resolved
Extn(C, A) can be computed by taking a projective resolution of C and applying Hom(−, A), or by taking an injective resolution of A and applying Hom(C, −). The two agree, and for n = 1 both agree with the group of extensions under the Baer sum. That triple agreement — the balance of Ext — is what makes the functor computable in practice, because one variable is usually far easier to resolve than the other.
Learning objectives
- Compute Ext from a projective resolution.
- Compute Ext from an injective resolution.
- State the balance theorem and why it matters.
- Apply the standard vanishing criteria.
- Interpret Ext1 as classifying extensions.
Section 01The three definitions
Ext1(C, A) = equivalence classes of extensions under the Baer sum. Needs no resolutions; extends to Extn via n-fold extensions.
Take P• ↠ C projective, apply Hom(−, A), take cohomology of the resulting cochain complex.
- Choose a projective resolution … → P1 → P0 → C → 0.
- Delete C to obtain the deleted resolution P•.
- Apply Hom(−, A), giving a cochain complex 0 → Hom(P0, A) → Hom(P1, A) → … Contravariance reverses the arrows.
- Extn(C, A) is the n-th cohomology of that complex.
- Ext0(C, A) = Hom(C, A), recovering the original functor in degree 0.
Resolving C by projectives and resolving A by injectives give canonically isomorphic answers. The proof compares both against a double complex built from a projective resolution of C and an injective resolution of A simultaneously. In practice this means: resolve whichever variable is easier.
Section 02Vanishing criteria
| Condition | Consequence |
|---|---|
| C projective | Extn(C, A) = 0 for all n ≥ 1 and all A |
| A injective | Extn(C, A) = 0 for all n ≥ 1 and all C |
| proj dim C ≤ d | Extn(C, −) = 0 for n > d |
| inj dim A ≤ d | Extn(−, A) = 0 for n > d |
| Λ a PID | Extn = 0 for n ≥ 2 — global dimension 1 |
| Λ semisimple | Extn = 0 for n ≥ 1 — every sequence splits |
This is the working interpretation. Semisimplicity of a ring is exactly the statement that Ext1 vanishes identically, and Maschke's theorem — that k[G] is semisimple when the characteristic does not divide |G| — is the reason ordinary representation theory has no higher cohomology.
Section 03A worked computation
Compute Ext*(ℤ/mℤ, A) over ℤ. The resolution is short:
Applying Hom(−, A) gives A →×m A, so
where A[m] is the m-torsion. So Ext1(ℤ/m, ℤ) = ℤ/mℤ, matching the extension count: the m extensions of ℤ/m by ℤ correspond to the m elements of that group.
Ext1 against ℤ converts a torsion module into its dual torsion module. This single computation drives the universal coefficient theorem in topology and the classification of finitely generated abelian group extensions.
ReferenceFrequently asked questions
Why does the resolution not matter?
Because any two projective resolutions of the same module are chain homotopy equivalent, by the comparison theorem, and homotopic chain maps induce equal maps on homology. The resulting isomorphism is canonical, so the answer is well defined.
Is Ext<sup>1</sup> always the extension group?
Yes, in any abelian category with enough projectives or enough injectives. Without either, the Yoneda definition by extensions still works and is taken as the definition — which is one reason it is worth knowing independently.
What if the category has neither enough projectives nor injectives?
Yoneda Ext remains defined and is a group. Higher Ext is defined by n-fold extensions modulo an equivalence relation. It agrees with the derived-functor definition whenever both exist.
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.
