Homology forgets; resolutions are not unique
Homological algebra, as usually first taught, runs on two moves. To compute or you choose a resolution, apply a functor, and take cohomology; then you prove that the answer does not depend on the choice. And at the end you keep only the cohomology groups, throwing the complex away.
Both moves lose information.
- Choices. The resolution and the resolution are different complexes. They are homotopy equivalent to each other, but neither is isomorphic to , not even up to homotopy — yet each "is" for every computational purpose. We would like a world in which both are literally isomorphic to .
- Forgetting. Cohomology groups do not remember how they are glued. Over the complex has the same cohomology as , but we shall prove the two are genuinely different. Composing derived functors, Grothendieck needed spectral sequences precisely because the cohomology of the inner functor is not enough to compute the outer one.
Grothendieck's remedy, worked out by his student Jean-Louis Verdier around 1960–63, was radical: keep the complex, and formally invert every map of complexes that induces an isomorphism on cohomology. The result, the derived category , is where Grothendieck duality, the six operations on sheaves, Fourier–Mukai transforms, tilting theory and much of modern algebraic geometry and representation theory now live.
Three steps: complexes, homotopy, inversion
Start from an abelian category (modules over a ring, sheaves of abelian groups on a space, representations of a quiver) and the toolkit of homological algebra. The derived category is reached in three steps.
- Complexes. Replace objects by cochain complexes , and objects of by complexes concentrated in degree .
- Homotopy. Identify chain maps that are chain homotopic. This gives the homotopy category . Homotopic maps induce the same map on cohomology, so nothing cohomological is lost.
- Inversion. A quasi-isomorphism is a chain map inducing isomorphisms on all cohomology groups. Every resolution is one. Invert them all.
The picture to keep in mind comes from topology. A space is studied up to weak homotopy equivalence, and every space is weakly equivalent to a CW complex, which is the "good" model you compute with. In the derived category every object is (under mild hypotheses) isomorphic to a complex of projectives or of injectives — the good models — and derived functors are computed by applying ordinary functors to good models.
Analogy, not a formal construction
Localising at quasi-isomorphisms is like passing from fractions written with a chosen denominator to rational numbers: is not a statement about pairs of integers, but about what they represent. A morphism in is likewise a "fraction" , and different fractions can be equal. The analogy is only that: the calculus of fractions in needs the homotopy category, not the category of complexes, to work.
Definitions
Throughout, is an abelian category and complexes are cochain complexes indexed by . A chain map is a family with ; it induces maps on cohomology .
Definition— shift
For a complex and , the shifted complex has and differential . If is an object of placed in degree , then is placed in degree .
Definition— chain homotopy and the homotopy category
Chain maps are homotopic, , if there are maps with
The homotopy category has complexes as objects and homotopy classes of chain maps as morphisms. It is additive, but in general not abelian.
Definition— quasi-isomorphism
A chain map is a quasi-isomorphism if is an isomorphism for every . A complex is acyclic if all its cohomology vanishes.
Definition— derived category
The derived category is a category with a functor from complexes such that is an isomorphism for every quasi-isomorphism , and which is universal with this property: every functor inverting quasi-isomorphisms factors as for a unique . Bounded variants use complexes with cohomology (equivalently, after replacement, terms) bounded on both sides, below, or above.
Since homotopic maps become equal in (proved below), factors through , and is equally the localisation of at the quasi-isomorphisms. That second description is the useful one, because of the following theorem.
Theorem— Verdier's calculus of fractions (stated, not proved here)
In the quasi-isomorphisms admit a calculus of left and right fractions. Consequently every morphism in can be written as a roof , with a quasi-isomorphism and a chain map; and for if and only if for some quasi-isomorphism .
The proof (Verdier's thesis; see Weibel, An Introduction to Homological Algebra, §10.3, or Kashiwara–Schapira, Categories and Sheaves, Ch. 7 and 13) uses the mapping cone and the triangulated structure of , which is the subject of the next lesson, triangulated categories. Without it one runs into a real problem: the localisation of the category of complexes exists formally, but its morphisms are equivalence classes of zigzags of arbitrary length, which is useless for computation, and for some large abelian categories the Hom-"sets" need not even be sets. When has enough injectives or enough projectives, Hom-sets in or are sets, as the theorems below show.
Definition— total derived functors
Let be an additive, left exact functor. Its total right derived functor is a functor with a natural transformation that is universal (initial) among such. When has enough injectives, for any quasi-isomorphism into a bounded-below complex of injectives, and the classical derived functors are its cohomology: . Dually, right exact functors have total left derived functors , computed with projective resolutions. Two key examples are
with and .
Worked examples
Example— A quasi-isomorphism with no inverse
Let with the two copies of in degrees and , and let be reduction mod in degree . Since is exact and multiplication by is injective, and , and is a quasi-isomorphism.
Is there a chain map with ? Its degree- component would be a homomorphism , and every such homomorphism is zero: and has no elements of order . So for every chain map . Since a homotopy between maps of complexes concentrated in degree is necessarily zero, is impossible too: no inverse, not even up to homotopy, exists. In , is nevertheless an isomorphism: localisation creates its inverse.
Example— Ext¹ as a morphism into a shift
Continue with . In there is no non-zero map at all (the target lives in degree , the source in degree ). But in there is the roof
where is the identity in degree (check: commutes with the differentials because is zero in degree ). This roof is non-zero, and it corresponds to the extension , the generator of . Localisation has changed the Hom-sets: but .
Example— R Hom and the derived tensor product over ℤ
Using as a resolution of (with replaced by ), is the complex in degrees , so
and is in degrees , with and , both . The derived tensor product is a single object of carrying all the groups at once.
Example— Over a field, and over hereditary rings, complexes split
Over a field , every complex is isomorphic in to : choose complements to split each as boundaries, a complement of the boundaries in the cycles, and a complement of the cycles. So is equivalent to the category of graded vector spaces. The same conclusion holds for objects of whenever is hereditary (), e.g. or representations of a quiver. But morphisms are richer than maps of cohomology: , as we just saw.
Example— Same cohomology, different objects
Let , in degrees , and . Both have and all other cohomology zero. Suppose in . Apply the derived tensor product , which sends isomorphisms to isomorphisms.
- is a complex of free modules, so , with cohomology in only two degrees.
- has the periodic free resolution , and tensoring it with kills every differential, so for every . Thus has non-zero cohomology in infinitely many degrees.
The two results cannot be isomorphic, so : an object of the derived category is not determined by its cohomology. ( is not hereditary: , and the obstruction to splitting lives exactly there.)
Central theorems
Theorem— Proposition 1 — homotopic maps agree on cohomology
If , then for all . Consequently cohomology is a functor on , a homotopy equivalence is a quasi-isomorphism, and in .
Proof
Work with elements (by the Freyd–Mitchell embedding theorem this is harmless for a small abelian category; or rewrite the argument with kernels and cokernels). Let with . Then
which is a boundary in . So and have the same class in . If and , then and , so is a quasi-isomorphism. Finally, factors through : the functor is the localisation at homotopy equivalences (a standard cylinder argument), and homotopy equivalences are quasi-isomorphisms, which inverts.
∎
The converse of "homotopy equivalence ⟹ quasi-isomorphism" is false: the map above is a quasi-isomorphism without a homotopy inverse.
Theorem— Lemma 2 — projectives see no acyclic complexes
Let be a bounded-above complex of projective objects and an acyclic complex. Then every chain map is null-homotopic: .
Proof
Say for . We construct with by downward induction on , starting with for . Suppose has been built for all , satisfying the identity for . Put . Then
So lands in the cycles , which equal the boundaries because is acyclic. Since is projective and is an epimorphism, lifts: for some . This is the required identity .
∎
Theorem— Theorem 3 — Ext is Hom in the derived category
Suppose has enough projectives. For a bounded-above complex of projectives and any complex , the map is bijective. In particular, if is a projective resolution, then for all
Proof
Step 1: inverts quasi-isomorphisms. If is a quasi-isomorphism, its mapping cone is acyclic (the long exact cohomology sequence of the cone, proved in the next lesson). In there is a distinguished triangle , and turns it into a long exact sequence; the terms vanish by Lemma 2 (each is acyclic), so is bijective.
Step 2: surjectivity. By the calculus of fractions a morphism in is with a quasi-isomorphism. By Step 1 applied to , there is with . Then , so lies in the image.
Step 3: injectivity. If for , the calculus of fractions gives a quasi-isomorphism with . With as in Step 2, .
Step 4: Ext. in , so . A chain map is a map killing the image of , i.e. a cocycle of the complex in degree , and null-homotopic maps are exactly the coboundaries. So .
∎
Dually, if has enough injectives then is equivalent to , the homotopy category of bounded-below complexes of injectives; this is how is shown to have Hom-sets, and how is constructed. The isomorphism in fact holds in every abelian category, with defined by Yoneda's classes of -fold extensions (Verdier; see Gelfand–Manin, Ch. III). Under it, the Yoneda product of extensions becomes composition in .
Theorem— Theorem 4 — the embedding of A
The functor , , is fully faithful, and its essential image is the complexes with cohomology only in degree .
Proof
Fullness and faithfulness is the case of the isomorphism , since (here proved when has enough projectives; true in general). If for , the truncations give quasi-isomorphisms , where .
∎
The landscape: derived functors and derived equivalences
Derived functors compose. If sends injectives to -acyclic objects, then . The Grothendieck spectral sequence is the shadow of this single isomorphism on cohomology. This is the reason derived categories became the language of sheaf theory: the six operations , the adjunctions and , Verdier duality and base change are all statements in derived categories.
Derived equivalences are equivalences (of triangulated categories) between abelian categories that need not be equivalent. Established landmarks:
- Beilinson (1978): — coherent sheaves on projective space are "the same as" representations of a finite quiver with relations.
- Mukai (1981): for an abelian variety with dual , the Fourier–Mukai transform with the Poincaré bundle as kernel gives , although and need not be isomorphic.
- Happel (1987) and Rickard (1989): tilting theory. Rickard's Morita theorem: for rings , , the derived categories of modules are equivalent if and only if for a tilting complex . For example, the path algebras of two quivers with the same underlying tree are derived equivalent (the reflection functors of Bernstein–Gelfand–Ponomarev are derived equivalences); see quiver representations.
- Orlov (1997): every fully faithful exact functor between smooth projective varieties that admits adjoints is a Fourier–Mukai transform. Bondal–Orlov (2001): a smooth projective variety with ample or anti-ample canonical bundle is determined by .
- Bridgeland (2002): smooth projective threefolds related by a flop are derived equivalent.
Open problems (as of the references below; check recent surveys before relying on them):
- The DK conjecture of Bondal–Orlov and Kawamata: -equivalent smooth projective varieties are derived equivalent. Known in special cases (e.g. Bridgeland's theorem in dimension three), open in general.
- Broué's abelian defect group conjecture in modular representation theory (a block with abelian defect group is derived equivalent to its Brauer correspondent). Proved for symmetric groups by Chuang–Rouquier (2008) and in many other cases; open in general. See categorical representation theory.
- Kontsevich's homological mirror symmetry (1994), predicting an equivalence between and a derived Fukaya category of a mirror ; proved in important cases (elliptic curves, Polishchuk–Zaslow; the quartic surface, Seidel) and open in general.
What derived categories cannot do. Cones are not functorial (the next lesson), so many constructions — taking limits of diagrams, gluing — cannot be performed inside alone. The modern response is to remember more: dg-categories (Bondal–Kapranov, Keller) and stable ∞-categories (Lurie), whose homotopy categories are the triangulated derived categories. See stable ∞-categories.
Derived categories in Lean and Mathlib
Mathlib contains a serious amount of this theory, largely due to Joël Riou: the homotopy category HomotopyCategory C (ComplexShape.up ℤ), quasi-isomorphisms, the derived category DerivedCategory C constructed as a localisation, with its triangulated structure, the fully faithful embeddings of C in each degree, and Ext groups. Because existence of the localisation with small Hom-types is a real issue, Mathlib asks for an instance [HasDerivedCategory C] — an assumption that a model with morphisms in a chosen universe has been fixed.
First, the two-term shadow of Proposition 1, proved by hand. For complexes and , a homotopy is a single map :
/-- Two-term complexes `A₁ --d--> A₀` and `B₁ --d'--> B₀`, chain maps `f = (f₁, f₀)`,
`g = (g₁, g₀)`, and a homotopy `h : A₀ → B₁` with `f₁ - g₁ = h ∘ d` (and `f₀ - g₀ = d' ∘ h`).
Then `f` and `g` agree on the cycles `H₁ = ker d`: if `d x = 0` then
`f₁ x - g₁ x = h (d x) = h 0 = 0`. -/
theorem cycles_map_eq_of_homotopy (d : A₁ →ₗ[R] A₀) (f₁ g₁ : A₁ →ₗ[R] B₁) (h : A₀ →ₗ[R] B₁)
(hom₁ : f₁ - g₁ = h ∘ₗ d) (x : A₁) (hx : d x = 0) : f₁ x = g₁ x := by
have key : f₁ x - g₁ x = h (d x) := by
rw [← LinearMap.sub_apply, hom₁, LinearMap.comp_apply]
rw [hx, map_zero] at key
exact sub_eq_zero.mp key/-- With the same data, on `H₀ = A₀ / im d` the maps `f₀` and `g₀` differ by a boundary:
`f₀ y - g₀ y = d' (h y)` lies in `im d'`, so `f` and `g` induce the same map
`A₀ / im d → B₀ / im d'`. Together with `cycles_map_eq_of_homotopy` this is the two-term case
of "homotopic chain maps induce equal maps on homology". -/
theorem boundary_of_homotopy (d' : B₁ →ₗ[R] B₀) (f₀ g₀ : A₀ →ₗ[R] B₀) (h : A₀ →ₗ[R] B₁)
(hom₀ : f₀ - g₀ = d' ∘ₗ h) (y : A₀) : f₀ y - g₀ y ∈ LinearMap.range d' := by
refine ⟨h y, ?_⟩
rw [← LinearMap.comp_apply, ← hom₀, LinearMap.sub_apply]/-- The same statement phrased with quotient classes: `f₀` and `g₀` send every `y` to the same
class in `H₀(B) = B₀ / im d'`. -/
theorem homology_class_eq_of_homotopy (d' : B₁ →ₗ[R] B₀) (f₀ g₀ : A₀ →ₗ[R] B₀)
(h : A₀ →ₗ[R] B₁) (hom₀ : f₀ - g₀ = d' ∘ₗ h) (y : A₀) :
Submodule.Quotient.mk (p := LinearMap.range d') (f₀ y) =
Submodule.Quotient.mk (p := LinearMap.range d') (g₀ y) :=
(Submodule.Quotient.eq _).mpr (boundary_of_homotopy d' f₀ g₀ h hom₀ y)The general statement, for complexes in any abelian category, and its consequence in the derived category, are in Mathlib:
/-- Homotopic chain maps induce the same map on homology in every degree, for complexes in any
abelian category. This applies Mathlib's `Homotopy.homologyMap_eq`. It is why homology is
well defined on the homotopy category `K(A)`. -/
theorem homologyMap_eq_of_homotopy {K L : CochainComplex C ℤ} {f g : K ⟶ L}
(ho : Homotopy f g) (i : ℤ) : HomologicalComplex.homologyMap f i =
HomologicalComplex.homologyMap g i :=
ho.homologyMap_eq i/-- Homotopic chain maps become equal in the derived category: the localisation functor
`Q : C(A) → D(A)` factors through `K(A)`. This applies Mathlib's
`DerivedCategory.Q_map_eq_of_homotopy`. -/
theorem Q_map_eq_of_homotopy {K L : CochainComplex C ℤ} {f g : K ⟶ L} (ho : Homotopy f g) :
DerivedCategory.Q.map f = DerivedCategory.Q.map g :=
DerivedCategory.Q_map_eq_of_homotopy (h := ho)/-- A chain map becomes an isomorphism in `D(A)` exactly when it is a quasi-isomorphism: the
derived category inverts the quasi-isomorphisms and nothing else. This applies Mathlib's
`DerivedCategory.isIso_Q_map_iff_quasiIso`. -/
theorem isIso_Q_map_iff_quasiIso {K L : CochainComplex C ℤ} (φ : K ⟶ L) :
IsIso (DerivedCategory.Q.map φ) ↔ QuasiIso φ :=
DerivedCategory.isIso_Q_map_iff_quasiIso (φ := φ)The last statement says that inverts exactly the quasi-isomorphisms — slightly more than the universal property asks for. The embedding of Theorem 4 and the degree-zero case of Theorem 3:
/-- The embedding `A → D(A)` (an object placed in degree `0`) is fully faithful:
`Hom_A(X, Y) → Hom_{D(A)}(X, Y)` is a bijection. This applies Mathlib's instances
`(DerivedCategory.singleFunctor C 0).Full` and `.Faithful`, via
`Functor.FullyFaithful.map_bijective`. -/
theorem single_map_bijective (X Y : C) :
Function.Bijective (fun f : X ⟶ Y => (DerivedCategory.singleFunctor C 0).map f) :=
(Functor.FullyFaithful.ofFullyFaithful (DerivedCategory.singleFunctor C 0)).map_bijective X Y/-- Mathlib *defines* `Ext X Y n` as morphisms `X → Y[n]` in the derived category (the lesson's
key formula `Extⁿ(X, Y) ≅ Hom_{D(A)}(X, Y[n])` is built into the definition). In degree `0`
these are just the morphisms of `A`: `Ext.mk₀ : (X ⟶ Y) → Ext X Y 0` is bijective. This applies
Mathlib's `Abelian.Ext.mk₀_bijective`. -/
theorem ext_zero_bijective {C : Type*} [Category C] [Abelian C] [HasExt C] (X Y : C) :
Function.Bijective (Abelian.Ext.mk₀ (X := X) (Y := Y)) :=
Abelian.Ext.mk₀_bijective X YNote how Mathlib defines as (a small model of) : Theorem 3 is built into the definition, and what must then be proved are the comparison with resolutions and the long exact sequences (Mathlib.Algebra.Homology.DerivedCategory.Ext).
Finally, the facts behind the first worked example, proved by hand: is exact, so the resolution is a quasi-isomorphism; but there is no non-zero map , so it has no inverse chain map.
/-- Multiplication by `2` on `ℤ` is injective, so `0 → ℤ --2--> ℤ` is exact at the left. -/
theorem two_mul_injective : Function.Injective (fun n : ℤ => 2 * n) := by
intro a b h
simp only at h
omega/-- The kernel of reduction `ℤ → ℤ/2` is exactly the image of multiplication by `2`, so
`ℤ --2--> ℤ → ℤ/2` is exact in the middle. Together with `two_mul_injective` and surjectivity of
reduction, the complex `[ℤ --2--> ℤ]` (in degrees `-1, 0`) is quasi-isomorphic to `ℤ/2`. -/
theorem exact_at_middle (n : ℤ) : (n : ZMod 2) = 0 ↔ ∃ m : ℤ, 2 * m = n := by
rw [ZMod.intCast_zmod_eq_zero_iff_dvd]
constructor
· rintro ⟨m, hm⟩
exact ⟨m, by simpa using hm.symm⟩
· rintro ⟨m, rfl⟩
exact ⟨m, by norm_num⟩/-- There is no non-zero group homomorphism `ℤ/2 → ℤ`: `2 · φ(x) = φ(2x) = φ(0) = 0`, and `ℤ`
has no elements of order `2`. Consequently the quasi-isomorphism `[ℤ --2--> ℤ] → ℤ/2` has no
inverse chain map `ℤ/2 → [ℤ --2--> ℤ]` (its degree-0 part would be a map `ℤ/2 → ℤ`, hence zero,
and could not induce the identity on `H⁰ = ℤ/2`). In `D(Ab)` it is nevertheless an isomorphism:
inverting it is exactly what localisation does. -/
theorem hom_zmod_two_int_eq_zero (φ : ZMod 2 →+ ℤ) : φ = 0 := by
ext x
have h2 : (2 : ℤ) * φ x = 0 := by
calc (2 : ℤ) * φ x = φ (x + x) := by rw [map_add]; ring
_ = φ 0 := by
congr 1
fin_cases x <;> rfl
_ = 0 := map_zero φ
have : φ x = 0 := by omega
simpa using thisWhat is not formalised here: the calculus of fractions in detail (Mathlib has it, in Mathlib.Algebra.Homology.DerivedCategory.Fractions), Lemma 2 and Theorem 3 in full, total derived functors (Mathlib has right derived functors of functors between abelian categories with enough injectives), the non-formality of , and derived equivalences.
Computing Ext by counting
The experiment computes for small cyclic modules by writing down a projective resolution and counting kernels and images element by element. Over every Ext vanishes beyond degree (global dimension , so every object of splits). Over the module has non-zero in every degree — the same periodicity that made the "same cohomology, different objects" example work — while is injective over itself. Finally it counts extensions directly as -cocycles modulo coboundaries, and finds .
"""Ext groups from resolutions, and Ext^1 from extensions, by exact counting.
In the derived category, Ext^n(M, N) = Hom(M, N[n]). To compute it we replace
M by a projective resolution P -> M (a quasi-isomorphism) and take cohomology
of the complex Hom(P, N). Here every module is a finite cyclic group, so
kernels and images can be counted element by element. Over Z every module
has a resolution of length 1 and Ext^n vanishes for n >= 2; over Z/4 the
module Z/2 has an infinite periodic resolution and Ext^n(Z/2, Z/2) = Z/2 for
every n, while Z/4 is injective over itself. Finally we count the extensions
0 -> Z/p -> E -> Z/p -> 0 directly, as symmetric 2-cocycles modulo
coboundaries, and find p classes: |Ext^1(Z/p, Z/p)| = p, with one split
class and p - 1 classes in which E is cyclic. Exact, exhaustive-finite
evidence for the cases shown; the general theorems are proved in the lesson
and its references.
"""
from itertools import product
from math import gcd
def mult_kernel_image(b, c):
"""Sizes of kernel and image of x -> c x on Z/b (by enumeration)."""
image = {(c * x) % b for x in range(b)}
kernel = [x for x in range(b) if (c * x) % b == 0]
return len(kernel), len(image)
def cohomology_orders(b, factors):
"""Orders of H^n of Z/b --c0--> Z/b --c1--> ... --c_{k-1}--> Z/b.
The complex has len(factors) + 1 terms; H^n = ker d^n / im d^(n-1), with
d^n = 0 past the last term.
"""
orders = []
for n in range(len(factors) + 1):
ker = mult_kernel_image(b, factors[n])[0] if n < len(factors) else b
im = mult_kernel_image(b, factors[n - 1])[1] if n > 0 else 1
orders.append(ker // im)
return orders
def ext_over_z(a, b, top=3):
"""|Ext^n_Z(Z/a, Z/b)|, n = 0..top, from 0 -> Z --a--> Z -> Z/a."""
orders = cohomology_orders(b, [a]) # Hom(P0, N) --a--> Hom(P1, N)
return (orders + [1] * (top + 1))[: top + 1]
def ext_over_zn(big_n, a, b, top=5):
"""|Ext^n_{Z/N}(Z/a, Z/b)| for a, b dividing N, n = 0..top.
Periodic resolution ... -> Z/N --a--> Z/N --N/a--> Z/N --a--> Z/N -> Z/a.
Hom(Z/N, Z/b) = Z/b, and the induced maps are the same multiplications.
"""
if big_n % a or big_n % b:
raise ValueError("a and b must divide N")
factors = [a if n % 2 == 0 else big_n // a for n in range(top + 1)]
return cohomology_orders(b, factors)[: top + 1]
def homs(a, b):
"""Number of group homomorphisms Z/a -> Z/b (brute force)."""
return sum(1 for x in range(b) if (a * x) % b == 0)
def extension_classes(p):
"""Classes of extensions 0 -> Z/p -> E -> Z/p -> 0 via 2-cocycles.
Returns (number of classes, number of classes with E cyclic). A symmetric
normalised cocycle f gives E = Z/p x Z/p with
(n, a) + (m, b) = (n + m + f(a, b), a + b); cohomologous cocycles give
equivalent extensions.
"""
pairs = list(product(range(p), repeat=2))
cocycles = []
for values in product(range(p), repeat=len(pairs)):
f = dict(zip(pairs, values))
if f[(0, 0)] or any(f[(a, b)] != f[(b, a)] for a, b in pairs):
continue
if all((f[(b, c)] - f[((a + b) % p, c)] + f[(a, (b + c) % p)]
- f[(a, b)]) % p == 0
for a, b, c in product(range(p), repeat=3)):
cocycles.append(f)
boundaries = set()
for g in product(range(p), repeat=p):
if g[0] == 0:
boundaries.add(tuple((g[a] + g[b] - g[(a + b) % p]) % p
for a, b in pairs))
classes = {}
for f in cocycles:
key = min(tuple((f[q] - d[i]) % p for i, q in enumerate(pairs))
for d in boundaries)
classes[key] = f
cyclic = sum(1 for f in classes.values() if extension_is_cyclic(f, p))
return len(classes), cyclic
def extension_is_cyclic(f, p):
"""Is the group E built from the cocycle f cyclic (an element of order p^2)?"""
for n0, a0 in product(range(p), repeat=2):
n, a, order = n0, a0, 1
while (n, a) != (0, 0):
n, a = (n + n0 + f[(a, a0)]) % p, (a + a0) % p
order += 1
if order == p * p:
return True
return False
def main():
print("Ext over Z (resolution 0 -> Z --a--> Z -> Z/a):")
for a, b in [(2, 2), (4, 6), (3, 5)]:
print(f" |Ext^n(Z/{a}, Z/{b})|, n = 0..3: {ext_over_z(a, b)}"
f" |Hom| = {homs(a, b)} = gcd = {gcd(a, b)}")
print("Ext over Z/4 (periodic resolution ... --2--> Z/4 --2--> Z/4):")
print(" |Ext^n(Z/2, Z/2)|, n = 0..5:", ext_over_zn(4, 2, 2))
print(" |Ext^n(Z/2, Z/4)|, n = 0..5:", ext_over_zn(4, 2, 4))
print("Ext over Z/9:")
print(" |Ext^n(Z/3, Z/3)|, n = 0..5:", ext_over_zn(9, 3, 3))
print()
print("Extensions 0 -> Z/p -> E -> Z/p -> 0, counted as cocycles:")
for p in (2, 3):
total, cyclic = extension_classes(p)
print(f" p = {p}: {total} classes = |Ext^1(Z/{p}, Z/{p})|; "
f"{cyclic} with E = Z/{p * p}, {total - cyclic} split")
print()
print("Epistemic status: exact counts, exhaustive over the finite groups")
print("shown. They illustrate (not prove) Ext^n(M, N) = Hom_D(M, N[n]),")
print("Z having global dimension 1 while Z/4 and Z/9 have infinite global")
print("dimension, and Ext^1 as classes of extensions. That Ext does not")
print("depend on the resolution chosen is a theorem, not checked here.")
if __name__ == "__main__":
main()This is exact, exhaustive evidence for finitely many small cases. It illustrates the theorems; the proofs above (and in the references) establish them.
Exercises
1. Derived categories
Warm-upHumanWhich of these chain maps are quasi-isomorphisms? (Complexes of abelian groups; a single group means a complex concentrated in degree . Choose all that apply.)
2. Derived categories
Warm-upHumanCompute the order of .
3. Derived categories
Warm-upHumanThe derived tensor product is an object of . What is the order of its cohomology group in degree ?
4. Derived categories
CoreHumanWhich of these Hom-groups in are non-zero? (Choose all that apply.)
5. Derived categories
CoreHumanLet . What is the order of ?
6. Derived categories
CoreHumanIn the proof of Lemma 2 ( for a bounded-above complex of projectives and acyclic), we put . Where is the projectivity of used?
7. Derived categories
CoreHumanLet be the resolution map. Which statement is correct?
8. Derived categories
StretchHuman“Every object of is isomorphic to .” Which hypothesis on makes this true, together with an example showing that some hypothesis is needed?
9. Derived categories
CoreFormalWhich Lean statement formalises “homotopic chain maps become equal in the derived category”? (Here f g : K ⟶ L are maps of cochain complexes and Q is DerivedCategory.Q.)
10. Derived categories
StretchComputationalWrite ext_orders(a, b) returning the list [|Ext^0|, |Ext^1|, |Ext^2|] for , computed from the resolution : apply to get and count the kernel and the cokernel of (do not use gcd).
Common misconceptions
Misconception
" is an abelian category." It is additive and triangulated, but almost never abelian. In a triangulated category every monomorphism and every epimorphism splits (proved in the next lesson), so if were abelian, every morphism would satisfy for some . But by Theorem 4, and has no integer solution. The correct replacement for short exact sequences is the distinguished triangle.
Misconception
"An object of is determined by its cohomology." True over a field and, for bounded complexes, over any hereditary abelian category; false in general — see the example over , distinguished by . Even when objects split, morphisms are not determined by maps on cohomology ( although and have cohomology in different degrees).
Misconception
"A quasi-isomorphism has an inverse chain map, or at least a homotopy inverse." No: has none. It does when the source and target are bounded-above complexes of projectives (or bounded-below complexes of injectives) — which is exactly why resolutions are the good models.
Misconception
"Localising only identifies things, so Hom-sets can only shrink." Localisation adds inverses, and with them new composites: but . Hom-sets can grow, and without hypotheses (enough injectives or projectives, or a Grothendieck abelian category) it is not even clear that they are sets.
Misconception
" always." It needs a hypothesis, typically that sends injectives (or a class of -adapted objects) to -acyclic objects. Without it the comparison map need not be an isomorphism.
Viewpoints
Topology— Spaces up to weak equivalence, chains up to quasi-isomorphism
The derived category is algebra's version of the homotopy category of spaces, and the analogy is precise in places. The singular chain functor sends weak homotopy equivalences to quasi-isomorphisms, so descends to a functor from the homotopy category of spaces to , and singular cohomology is . Quillen's model categories (1967) axiomatise the common pattern: chain complexes with quasi-isomorphisms and spaces with weak equivalences are both model categories, and is the homotopy category of the former. Stable homotopy theory goes further: embeds in the homotopy theory of spectra as the modules over the Eilenberg–MacLane spectrum (see stable homotopy theory). And for sheaves on a space , Verdier duality in generalises Poincaré duality from manifolds to arbitrary locally compact spaces.
Geometry— The derived category as an invariant of a variety
For a smooth projective variety over a field, is a remarkably strong invariant. It recovers the dimension, the canonical bundle's behaviour (via the Serre functor ), the Hochschild homology, and — by Bondal–Orlov — itself when or is ample. When is trivial (abelian varieties, K3 surfaces, Calabi–Yau manifolds) there can be non-isomorphic "Fourier–Mukai partners", and the group of autoequivalences of becomes a rich geometric symmetry group, containing for instance the spherical twists of Seidel and Thomas. Semi-orthogonal decompositions of (Beilinson's exceptional collection on is the first example) are studied as a "categorical" form of birational geometry. See algebraic geometry.
Algebra— Morita theory, upgraded
Classical Morita theory says that -Mod -Mod iff for a finitely generated projective generator . Rickard's theorem replaces "projective generator" by "tilting complex" and "module categories" by "derived categories". Derived equivalent algebras share their centres, Hochschild cohomology, number of simple modules (for finite-dimensional algebras) and finiteness of global dimension, but not, in general, their module categories. In modular representation theory this is the setting of Broué's conjecture; in the representation theory of quivers, Happel showed that for a Dynkin quiver depends only on the underlying graph, and described it combinatorially through the repetitive quiver .
Physics— B-branes (heuristic origin)
In string theory, Douglas and others proposed (around 2000) that the "B-type D-branes" on a Calabi–Yau manifold , with the open strings between them, should form the category : a brane is a coherent sheaf, or more generally a complex, and bound states are cones. This physical heuristic, together with Kontsevich's homological mirror symmetry, made derived categories a meeting point of geometry and physics, and motivated Bridgeland's stability conditions (next lesson). The physics is not a proof of anything; the mathematical statements it inspired are proved — or remain conjectures — on their own terms.
Category theory— A localisation, and the shadow of something richer
Categorically, is the localisation , and also the Verdier quotient by the thick subcategory of acyclic complexes. Total derived functors are Kan extensions along the localisation (see Kan extensions): is the left Kan extension of along , when it exists. The defects of — non-functorial cones, no homotopy limits — disappear when one remembers the dg-category of complexes or the stable ∞-category , of which is the homotopy category.
History and global context
- 1940s–50s. Homology groups of spaces (Noether, Hopf, Eilenberg–Steenrod) and derived functors , (Cartan–Eilenberg, Homological Algebra, 1956) are defined via chosen resolutions. Grothendieck's Tôhoku paper (1957) introduces abelian categories and derived functors of sheaf cohomology.
- c. 1960–63. For his duality theory, Grothendieck needs to work with complexes up to quasi-isomorphism. Jean-Louis Verdier develops derived and triangulated categories in his thesis (circulated in notes from 1963; the thesis was defended in 1967 and published in full in Astérisque in 1996). Robin Hartshorne's Residues and Duality (1966) writes up Grothendieck's duality in this language.
- 1970s. In Kyoto, Mikio Sato, Masaki Kashiwara and Takahiro Kawai use derived categories of sheaves in algebraic analysis (microlocal analysis, -modules); Kashiwara's Riemann–Hilbert correspondence (around 1980, independently Mebkhout) is an equivalence of derived categories. In Moscow, Alexander Beilinson describes (1978); Bernstein, Gelfand and Gelfand find a related equivalence the same year.
- 1980s. Shigeru Mukai introduces Fourier–Mukai transforms (1981). Dieter Happel and Jeremy Rickard develop tilting theory and derived Morita theory for algebras (1987–89). Beilinson, Bernstein, Deligne and Gabber introduce t-structures and perverse sheaves (1982).
- 1990s–today. Kontsevich's homological mirror symmetry (1994); Bondal, Kapranov and Orlov develop the geometric theory; Keller develops dg-categories; Bridgeland introduces stability conditions (2007); Lurie places derived categories inside stable ∞-categories. Mathlib's derived category (2024 onwards) brings the theory into a proof assistant.
Further reading
- Charles A. Weibel, An Introduction to Homological Algebra (1994), Chapter 10 — the standard first account, including the calculus of fractions and as Hom.
- Sergei I. Gelfand and Yuri I. Manin, Methods of Homological Algebra (1996; 2nd ed. 2003), Chapters III–IV.
- Richard P. Thomas, "Derived categories for the working mathematician", in Winter School on Mirror Symmetry (AMS/IP, 2001) — a short, geometric introduction.
- Bernhard Keller, "Derived categories and their uses", in Handbook of Algebra, Vol. 1 (1996).
- Daniel Huybrechts, Fourier–Mukai Transforms in Algebraic Geometry (2006) — derived categories of sheaves, Bondal–Orlov, Orlov's theorem.
- Masaki Kashiwara and Pierre Schapira, Categories and Sheaves (2006) — the general theory, carefully done.
- Amnon Yekutieli, Derived Categories (2019) — a modern, comprehensive treatment.
A reading path: Weibel Ch. 10 → Thomas (or Căldăraru's notes "Derived categories of sheaves: a skimming", 2005) → Huybrechts Ch. 1–5 or Keller's survey, depending on whether your interests lie in geometry or algebra.