Resolve the easy variable and shift dimensions
Ext is rarely computed from the definition. The practical toolkit is small: pick whichever variable has the shorter resolution, use additivity to split direct sums, use the long exact sequences to relate an unknown Ext to known ones, and use dimension shifting to reduce higher Ext to Ext1 of a syzygy. Over the integers everything reduces to one computation that is worth memorising.
Learning objectives
- Choose the variable that minimises work.
- Apply additivity across direct sums.
- Use the long exact sequences to compute an unknown term.
- Apply dimension shifting.
- Reproduce the standard table of Ext groups over ℤ.
Section 01The standard table over ℤ
| C | A | Ext1(C, A) | Reason |
|---|---|---|---|
| ℤ | any | 0 | ℤ is free, hence projective |
| ℤ/mℤ | ℤ | ℤ/mℤ | From the length-one resolution |
| ℤ/mℤ | ℤ/nℤ | ℤ/gcd(m, n)ℤ | A/mA with A = ℤ/nℤ |
| ℤ/mℤ | ℚ | 0 | ℚ is divisible, hence injective |
| ℚ | ℤ | ℝ (as a ℚ-vector space, uncountable) | ℚ is not projective — a genuinely infinite Ext |
| any C | injective A | 0 | Every extension splits |
It is uncountable. ℚ is torsion-free but not free, and not projective, so extensions of ℚ by ℤ abound. This is the standard counterexample to the assumption that torsion-free behaves like free outside the finitely generated case.
Section 02Additivity and reduction
Ext converts finite direct sums into direct sums in either variable, and converts an arbitrary direct sum in the first variable into a product:
Combined with the structure theorem, this computes Ext between any two finitely generated abelian groups: decompose both, apply the table entry by entry, reassemble.
- Decompose C and A into cyclic factors by the structure theorem.
- Discard any free factor of C — it contributes 0 to Ext1. Free is projective.
- For each pair of cyclic factors, read the entry from the table.
- Assemble the direct sum over all pairs.
- Extn = 0 for n ≥ 2, since ℤ is a PID.
Section 03Long exact sequences and dimension shifting
A short exact sequence in either variable produces a long exact sequence in Ext. Two unknowns and one known term usually determine the third.
- Take a short exact sequence 0 → K → P → C → 0 with P projective.
- The long exact sequence has Extn(P, A) = 0 for n ≥ 1. P is projective, so its higher Ext vanishes.
- Exactness then forces Extn(K, A) ≅ Extn+1(C, A) for n ≥ 1.
- Iterating reduces Extn of C to Ext1 of the (n−1)st syzygy.
For Ext(ℤ/m, A) resolve the first variable — the resolution has length 1. For Ext(C, ℚ/ℤ) resolve the second — the target is already injective and the answer is immediate. Time spent choosing is repaid many times.
ReferenceFrequently asked questions
Is Ext<sup>1</sup>(C, A) = 0 enough to conclude C is projective?
Only if it vanishes for every A. Vanishing for one particular A says only that extensions by that A split. The projectivity criterion is universal quantification over the second variable.
How do I compute Ext over a non-commutative ring?
The same way, but the result is only an abelian group, not a module, unless extra structure is present. When Λ is an algebra over a commutative ring k, Ext is a k-module, which is the usual working situation in group and Lie algebra cohomology.
Why is Ext<sup>1</sup>(ℚ/ℤ, ℤ) interesting?
It is isomorphic to the profinite completion of ℤ, which appears in the universal coefficient theorem for cohomology with compact supports and in comparisons between algebraic and topological completions. It is a good illustration that Ext of large modules can be structurally rich.
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.
