Skip to content
The Lumenary
Research pathwaysResearch orientation (graduate homological algebra assumed) 130 min

Derived categories

Keep the whole complex instead of its homology, declare every resolution equal to what it resolves — and Ext⁡\operatorname{Ext} becomes nothing more than Hom⁡\operatorname{Hom} into a shift.

Formally verified · 11 LeanComputationally tested · 1 PythonAI-drafted · awaiting human reviewMathematically reviewed: Awaiting human review
MotivationH

Homology forgets; resolutions are not unique

Homological algebra, as usually first taught, runs on two moves. To compute Ext⁡\operatorname{Ext} or Tor⁡\operatorname{Tor} 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 0→Z→2Z→Z/2→00 \to \Z \xrightarrow{2} \Z \to \Z/2 \to 0 and the resolution 0→Z2→(2001)Z2→Z/2→00 \to \Z^2 \xrightarrow{\left(\begin{smallmatrix} 2 & 0 \\ 0 & 1 \end{smallmatrix}\right)} \Z^2 \to \Z/2 \to 0 are different complexes. They are homotopy equivalent to each other, but neither is isomorphic to Z/2\Z/2, not even up to homotopy — yet each "is" Z/2\Z/2 for every computational purpose. We would like a world in which both are literally isomorphic to Z/2\Z/2.
  • Forgetting. Cohomology groups do not remember how they are glued. Over Z/4\Z/4 the complex Z/4→2Z/4\Z/4 \xrightarrow{2} \Z/4 has the same cohomology as Z/2[1]⊕Z/2\Z/2[1] \oplus \Z/2, 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 D(A)D(\mathcal{A}), 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.

IntuitionH

Three steps: complexes, homotopy, inversion

Start from an abelian category A\mathcal{A} (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.

  1. Complexes. Replace objects by cochain complexes X=(⋯→Xn−1→dXn→dXn+1→⋯ )X = (\cdots \to X^{n-1} \xrightarrow{d} X^n \xrightarrow{d} X^{n+1} \to \cdots), and objects MM of A\mathcal{A} by complexes concentrated in degree 00.
  2. Homotopy. Identify chain maps that are chain homotopic. This gives the homotopy category K(A)K(\mathcal{A}). Homotopic maps induce the same map on cohomology, so nothing cohomological is lost.
  3. Inversion. A quasi-isomorphism is a chain map inducing isomorphisms on all cohomology groups. Every resolution P→MP \to M 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 a/ba/b written with a chosen denominator to rational numbers: 1/2=2/41/2 = 2/4 is not a statement about pairs of integers, but about what they represent. A morphism in D(A)D(\mathcal{A}) is likewise a "fraction" f∘s−1f \circ s^{-1}, and different fractions can be equal. The analogy is only that: the calculus of fractions in D(A)D(\mathcal{A}) needs the homotopy category, not the category of complexes, to work.

DefinitionsH

Definitions

Throughout, A\mathcal{A} is an abelian category and complexes are cochain complexes indexed by Z\Z. A chain map f:X→Yf : X \to Y is a family fn:Xn→Ynf^n : X^n \to Y^n with dfn=fn+1dd f^n = f^{n+1} d; it induces maps Hn(f):Hn(X)→Hn(Y)H^n(f) : H^n(X) \to H^n(Y) on cohomology Hn(X)=ker⁡dn/im⁡dn−1H^n(X) = \ker d^n / \operatorname{im} d^{n-1}.

Definition— shift

For a complex XX and k∈Zk \in \Z, the shifted complex X[k]X[k] has X[k]n=Xn+kX[k]^n = X^{n+k} and differential (−1)kdX(-1)^k d_X. If MM is an object of A\mathcal{A} placed in degree 00, then M[n]M[n] is MM placed in degree −n-n.

Definition— chain homotopy and the homotopy category

Chain maps f,g:X→Yf, g : X \to Y are homotopic, f≃gf \simeq g, if there are maps hn:Xn→Yn−1h^n : X^n \to Y^{n-1} with

fn−gn=dYn−1hn+hn+1dXnfor all n.f^n - g^n = d_Y^{n-1} h^n + h^{n+1} d_X^n \quad \text{for all } n.

The homotopy category K(A)K(\mathcal{A}) has complexes as objects and homotopy classes of chain maps as morphisms. It is additive, but in general not abelian.

Xn−1X^{n-1}
XnX^{n}
Xn+1X^{n+1}
Yn−1Y^{n-1}
YnY^{n}
Yn+1Y^{n+1}
dd
dd
dd
dd
f−gf - g
hnh^n
hn+1h^{n+1}
A chain homotopy: the diagonal maps h go down one degree, and f − g = dh + hd.

Definition— quasi-isomorphism

A chain map s:X→Ys : X \to Y is a quasi-isomorphism if Hn(s)H^n(s) is an isomorphism for every nn. A complex is acyclic if all its cohomology vanishes.

Definition— derived category

The derived category D(A)D(\mathcal{A}) is a category with a functor Q:C(A)→D(A)Q : C(\mathcal{A}) \to D(\mathcal{A}) from complexes such that Q(s)Q(s) is an isomorphism for every quasi-isomorphism ss, and which is universal with this property: every functor F:C(A)→DF : C(\mathcal{A}) \to \mathcal{D} inverting quasi-isomorphisms factors as F=Fˉ∘QF = \bar F \circ Q for a unique Fˉ\bar F. Bounded variants Db,D+,D−D^b, D^+, D^- use complexes with cohomology (equivalently, after replacement, terms) bounded on both sides, below, or above.

Since homotopic maps become equal in D(A)D(\mathcal{A}) (proved below), QQ factors through K(A)K(\mathcal{A}), and D(A)D(\mathcal{A}) is equally the localisation of K(A)K(\mathcal{A}) 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 K(A)K(\mathcal{A}) the quasi-isomorphisms admit a calculus of left and right fractions. Consequently every morphism X→YX \to Y in D(A)D(\mathcal{A}) can be written as a roof Q(f)∘Q(s)−1Q(f) \circ Q(s)^{-1}, with s:X′→Xs : X' \to X a quasi-isomorphism and f:X′→Yf : X' \to Y a chain map; and Q(f)=Q(g)Q(f) = Q(g) for f,g:X→Yf, g : X \to Y if and only if f∘s≃g∘sf \circ s \simeq g \circ s for some quasi-isomorphism s:X′→Xs : X' \to X.

X′X'
XX
YY
ss
ff
A roof: a morphism X → Y in D(A) is represented by f ∘ s⁻¹ with s a 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 K(A)K(\mathcal{A}), 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 A\mathcal{A} has enough injectives or enough projectives, Hom-sets in D+(A)D^+(\mathcal{A}) or D−(A)D^-(\mathcal{A}) are sets, as the theorems below show.

Definition— total derived functors

Let F:A→BF : \mathcal{A} \to \mathcal{B} be an additive, left exact functor. Its total right derived functor is a functor RF:D+(A)→D+(B)RF : D^+(\mathcal{A}) \to D^+(\mathcal{B}) with a natural transformation Q∘K(F)⇒RF∘QQ \circ K(F) \Rightarrow RF \circ Q that is universal (initial) among such. When A\mathcal{A} has enough injectives, RF(X)=F(I)RF(X) = F(I) for any quasi-isomorphism X→IX \to I into a bounded-below complex of injectives, and the classical derived functors are its cohomology: RnF(M)=Hn(RF(M))R^nF(M) = H^n(RF(M)). Dually, right exact functors have total left derived functors LFLF, computed with projective resolutions. Two key examples are

RHom⁡(X,−):D+(A)→D+(Ab),X⊗RL−:D−(R-Mod)→D−(Ab),R\operatorname{Hom}(X, -) : D^+(\mathcal{A}) \to D^+(\mathrm{Ab}), \qquad X \otimes^{L}_R - : D^-(R\text{-Mod}) \to D^-(\mathrm{Ab}),

with HnRHom⁡(M,N)=Ext⁡n(M,N)H^n R\operatorname{Hom}(M, N) = \operatorname{Ext}^n(M, N) and H−n(M⊗RLN)=Tor⁡nR(M,N)H^{-n}(M \otimes^{L}_R N) = \operatorname{Tor}_n^R(M, N).

Worked examplesH

Worked examples

Example— A quasi-isomorphism with no inverse

Let P=(⋯→0→Z→2Z→0→⋯ )P = (\cdots \to 0 \to \Z \xrightarrow{2} \Z \to 0 \to \cdots) with the two copies of Z\Z in degrees −1-1 and 00, and let p:P→Z/2p : P \to \Z/2 be reduction mod 22 in degree 00. Since Z→2Z→Z/2→0\Z \xrightarrow{2} \Z \to \Z/2 \to 0 is exact and multiplication by 22 is injective, H−1(P)=0H^{-1}(P) = 0 and H0(P)=Z/2H^0(P) = \Z/2, and pp is a quasi-isomorphism.

Is there a chain map q:Z/2→Pq : \Z/2 \to P with pq=idp q = \mathrm{id}? Its degree-00 component would be a homomorphism Z/2→Z\Z/2 \to \Z, and every such homomorphism is zero: 2φ(x)=φ(2x)=φ(0)=02\varphi(x) = \varphi(2x) = \varphi(0) = 0 and Z\Z has no elements of order 22. So pq=0pq = 0 for every chain map qq. Since a homotopy between maps of complexes concentrated in degree 00 is necessarily zero, pq≃idpq \simeq \mathrm{id} is impossible too: no inverse, not even up to homotopy, exists. In D(Ab)D(\mathrm{Ab}), Q(p)Q(p) is nevertheless an isomorphism: localisation creates its inverse.

Example— Ext¹ as a morphism into a shift

Continue with P→pZ/2P \xrightarrow{p} \Z/2. In K(Ab)K(\mathrm{Ab}) there is no non-zero map Z/2→Z[1]\Z/2 \to \Z[1] at all (the target lives in degree −1-1, the source in degree 00). But in D(Ab)D(\mathrm{Ab}) there is the roof

Z/2←  p  P→  e  Z[1],\Z/2 \xleftarrow{\;p\;} P \xrightarrow{\;e\;} \Z[1],

where ee is the identity Z→Z\Z \to \Z in degree −1-1 (check: ee commutes with the differentials because Z[1]\Z[1] is zero in degree 00). This roof is non-zero, and it corresponds to the extension 0→Z→2Z→Z/2→00 \to \Z \xrightarrow{2} \Z \to \Z/2 \to 0, the generator of Ext⁡1(Z/2,Z)≅Z/2\operatorname{Ext}^1(\Z/2, \Z) \cong \Z/2. Localisation has changed the Hom-sets: Hom⁡K(Z/2,Z[1])=0\operatorname{Hom}_{K}(\Z/2, \Z[1]) = 0 but Hom⁡D(Z/2,Z[1])≅Z/2\operatorname{Hom}_{D}(\Z/2, \Z[1]) \cong \Z/2.

Example— R Hom and the derived tensor product over ℤ

Using PP as a resolution of Z/m\Z/m (with 22 replaced by mm), RHom⁡(Z/m,Z/n)R\operatorname{Hom}(\Z/m, \Z/n) is the complex Z/n→mZ/n\Z/n \xrightarrow{m} \Z/n in degrees 0,10, 1, so

Ext⁡0(Z/m,Z/n)≅Ext⁡1(Z/m,Z/n)≅Z/gcd⁡(m,n),Ext⁡i(Z/m,Z/n)=0 (i≥2),\operatorname{Ext}^0(\Z/m, \Z/n) \cong \operatorname{Ext}^1(\Z/m, \Z/n) \cong \Z/\gcd(m, n), \qquad \operatorname{Ext}^{i}(\Z/m, \Z/n) = 0 \ (i \geq 2),

and Z/m⊗LZ/n\Z/m \otimes^{L} \Z/n is Z/n→mZ/n\Z/n \xrightarrow{m} \Z/n in degrees −1,0-1, 0, with H0=Z/m⊗Z/nH^0 = \Z/m \otimes \Z/n and H−1=Tor⁡1(Z/m,Z/n)H^{-1} = \operatorname{Tor}_1(\Z/m, \Z/n), both ≅Z/gcd⁡(m,n)\cong \Z/\gcd(m, n). The derived tensor product is a single object of D(Ab)D(\mathrm{Ab}) carrying all the Tor⁡\operatorname{Tor} groups at once.

Example— Over a field, and over hereditary rings, complexes split

Over a field kk, every complex XX is isomorphic in D(k)D(k) to ⨁nHn(X)[−n]\bigoplus_n H^n(X)[-n]: choose complements to split each XnX^n as boundaries, a complement of the boundaries in the cycles, and a complement of the cycles. So D(k)D(k) is equivalent to the category of graded vector spaces. The same conclusion holds for objects of Db(A)D^b(\mathcal{A}) whenever A\mathcal{A} is hereditary (Ext⁡2=0\operatorname{Ext}^2 = 0), e.g. A=Ab\mathcal{A} = \mathrm{Ab} or representations of a quiver. But morphisms are richer than maps of cohomology: Hom⁡D(Z/2,Z[1])≠0\operatorname{Hom}_D(\Z/2, \Z[1]) \neq 0, as we just saw.

Example— Same cohomology, different objects

Let R=Z/4R = \Z/4, X=(R→2R)X = (R \xrightarrow{2} R) in degrees −1,0-1, 0, and Y=Z/2[1]⊕Z/2Y = \Z/2[1] \oplus \Z/2. Both have H−1≅H0≅Z/2H^{-1} \cong H^0 \cong \Z/2 and all other cohomology zero. Suppose X≅YX \cong Y in D(R)D(R). Apply the derived tensor product −⊗RLZ/2- \otimes^{L}_R \Z/2, which sends isomorphisms to isomorphisms.

  • XX is a complex of free modules, so X⊗LZ/2=X⊗RZ/2=(Z/2→0Z/2)X \otimes^{L} \Z/2 = X \otimes_R \Z/2 = (\Z/2 \xrightarrow{0} \Z/2), with cohomology in only two degrees.
  • Z/2\Z/2 has the periodic free resolution ⋯→2R→2R→2R→Z/2\cdots \xrightarrow{2} R \xrightarrow{2} R \xrightarrow{2} R \to \Z/2, and tensoring it with Z/2\Z/2 kills every differential, so Tor⁡nR(Z/2,Z/2)≅Z/2\operatorname{Tor}^R_n(\Z/2, \Z/2) \cong \Z/2 for every n≥0n \ge 0. Thus Y⊗LZ/2Y \otimes^{L} \Z/2 has non-zero cohomology in infinitely many degrees.

The two results cannot be isomorphic, so X≇YX \not\cong Y: an object of the derived category is not determined by its cohomology. (Z/4\Z/4 is not hereditary: Ext⁡R2(Z/2,Z/2)≅Z/2\operatorname{Ext}^2_R(\Z/2, \Z/2) \cong \Z/2, and the obstruction to splitting XX lives exactly there.)

ProofH

Central theorems

Theorem— Proposition 1 — homotopic maps agree on cohomology

If f≃g:X→Yf \simeq g : X \to Y, then Hn(f)=Hn(g)H^n(f) = H^n(g) for all nn. Consequently cohomology is a functor on K(A)K(\mathcal{A}), a homotopy equivalence is a quasi-isomorphism, and Q(f)=Q(g)Q(f) = Q(g) in D(A)D(\mathcal{A}).

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 z∈Xnz \in X^n with dz=0dz = 0. Then

fn(z)−gn(z)=dhn(z)+hn+1(dz)=d(hn(z)),f^n(z) - g^n(z) = d h^n(z) + h^{n+1}(dz) = d\big(h^n(z)\big),

which is a boundary in YY. So fn(z)f^n(z) and gn(z)g^n(z) have the same class in Hn(Y)H^n(Y). If fg′≃idf g' \simeq \mathrm{id} and g′f≃idg' f \simeq \mathrm{id}, then Hn(f)Hn(g′)=idH^n(f) H^n(g') = \mathrm{id} and Hn(g′)Hn(f)=idH^n(g') H^n(f) = \mathrm{id}, so ff is a quasi-isomorphism. Finally, QQ factors through K(A)K(\mathcal{A}): the functor C(A)→K(A)C(\mathcal{A}) \to K(\mathcal{A}) is the localisation at homotopy equivalences (a standard cylinder argument), and homotopy equivalences are quasi-isomorphisms, which QQ inverts.

∎

The converse of "homotopy equivalence ⟹ quasi-isomorphism" is false: the map p:P→Z/2p : P \to \Z/2 above is a quasi-isomorphism without a homotopy inverse.

Theorem— Lemma 2 — projectives see no acyclic complexes

Let PP be a bounded-above complex of projective objects and ZZ an acyclic complex. Then every chain map f:P→Zf : P \to Z is null-homotopic: Hom⁡K(A)(P,Z)=0\operatorname{Hom}_{K(\mathcal{A})}(P, Z) = 0.

Proof

Say Pn=0P^n = 0 for n>Nn > N. We construct hn:Pn→Zn−1h^n : P^n \to Z^{n-1} with fn=dhn+hn+1df^n = d h^n + h^{n+1} d by downward induction on nn, starting with hn=0h^n = 0 for n>Nn > N. Suppose hkh^k has been built for all k>nk > n, satisfying the identity for k>nk > n. Put g=fn−hn+1dP:Pn→Zng = f^n - h^{n+1} d_P : P^n \to Z^n. Then

dZg=dZfn−dZhn+1dP=fn+1dP−(fn+1−hn+2dP)dP=hn+2dPdP=0.d_Z g = d_Z f^n - d_Z h^{n+1} d_P = f^{n+1} d_P - \big(f^{n+1} - h^{n+2} d_P\big) d_P = h^{n+2} d_P d_P = 0.

So gg lands in the cycles ker⁡dZn\ker d_Z^n, which equal the boundaries im⁡dZn−1\operatorname{im} d_Z^{n-1} because ZZ is acyclic. Since PnP^n is projective and Zn−1→im⁡dZn−1Z^{n-1} \to \operatorname{im} d_Z^{n-1} is an epimorphism, gg lifts: g=dZhng = d_Z h^n for some hn:Pn→Zn−1h^n : P^n \to Z^{n-1}. This is the required identity fn=dhn+hn+1df^n = d h^n + h^{n+1} d.

∎

Theorem— Theorem 3 — Ext is Hom in the derived category

Suppose A\mathcal{A} has enough projectives. For a bounded-above complex of projectives PP and any complex YY, the map Q:Hom⁡K(A)(P,Y)→Hom⁡D(A)(P,Y)Q : \operatorname{Hom}_{K(\mathcal{A})}(P, Y) \to \operatorname{Hom}_{D(\mathcal{A})}(P, Y) is bijective. In particular, if P→MP \to M is a projective resolution, then for all nn

Ext⁡An(M,N)  ≅  Hom⁡D(A)(M,N[n]).\operatorname{Ext}^n_{\mathcal{A}}(M, N) \;\cong\; \operatorname{Hom}_{D(\mathcal{A})}(M, N[n]).

Proof

Step 1: Hom⁡K(P,−)\operatorname{Hom}_K(P, -) inverts quasi-isomorphisms. If s:Y→Y′s : Y \to Y' is a quasi-isomorphism, its mapping cone C(s)C(s) is acyclic (the long exact cohomology sequence of the cone, proved in the next lesson). In K(A)K(\mathcal{A}) there is a distinguished triangle Y→Y′→C(s)→Y[1]Y \to Y' \to C(s) \to Y[1], and Hom⁡K(P,−)\operatorname{Hom}_K(P, -) turns it into a long exact sequence; the terms Hom⁡K(P,C(s)[i])\operatorname{Hom}_K(P, C(s)[i]) vanish by Lemma 2 (each C(s)[i]C(s)[i] is acyclic), so s∗:Hom⁡K(P,Y)→Hom⁡K(P,Y′)s_* : \operatorname{Hom}_K(P, Y) \to \operatorname{Hom}_K(P, Y') is bijective.

Step 2: surjectivity. By the calculus of fractions a morphism P→YP \to Y in DD is Q(f)Q(s)−1Q(f) Q(s)^{-1} with s:X′→Ps : X' \to P a quasi-isomorphism. By Step 1 applied to ss, there is t:P→X′t : P \to X' with st≃idPst \simeq \mathrm{id}_P. Then Q(t)=Q(s)−1Q(t) = Q(s)^{-1}, so Q(f)Q(s)−1=Q(ft)Q(f)Q(s)^{-1} = Q(ft) lies in the image.

Step 3: injectivity. If Q(f)=0Q(f) = 0 for f:P→Yf : P \to Y, the calculus of fractions gives a quasi-isomorphism s:X′→Ps : X' \to P with fs≃0fs \simeq 0. With tt as in Step 2, f≃fst≃0f \simeq f s t \simeq 0.

Step 4: Ext. M≅PM \cong P in DD, so Hom⁡D(M,N[n])≅Hom⁡D(P,N[n])≅Hom⁡K(P,N[n])\operatorname{Hom}_D(M, N[n]) \cong \operatorname{Hom}_D(P, N[n]) \cong \operatorname{Hom}_K(P, N[n]). A chain map P→N[n]P \to N[n] is a map P−n→NP^{-n} \to N killing the image of P−n−1P^{-n-1}, i.e. a cocycle of the complex Hom⁡(P,N)\operatorname{Hom}(P, N) in degree nn, and null-homotopic maps are exactly the coboundaries. So Hom⁡K(P,N[n])=HnHom⁡(P,N)=Ext⁡n(M,N)\operatorname{Hom}_K(P, N[n]) = H^n \operatorname{Hom}(P, N) = \operatorname{Ext}^n(M, N).

∎

Dually, if A\mathcal{A} has enough injectives then D+(A)D^+(\mathcal{A}) is equivalent to K+(Inj A)K^+(\mathrm{Inj}\,\mathcal{A}), the homotopy category of bounded-below complexes of injectives; this is how D+(A)D^+(\mathcal{A}) is shown to have Hom-sets, and how RFRF is constructed. The isomorphism Ext⁡n(M,N)≅Hom⁡D(M,N[n])\operatorname{Ext}^n(M, N) \cong \operatorname{Hom}_D(M, N[n]) in fact holds in every abelian category, with Ext⁡\operatorname{Ext} defined by Yoneda's classes of nn-fold extensions (Verdier; see Gelfand–Manin, Ch. III). Under it, the Yoneda product of extensions becomes composition M→N[n]→L[n+m]M \to N[n] \to L[n+m] in D(A)D(\mathcal{A}).

Theorem— Theorem 4 — the embedding of A

The functor A→D(A)\mathcal{A} \to D(\mathcal{A}), M↦M[0]M \mapsto M[0], is fully faithful, and its essential image is the complexes with cohomology only in degree 00.

Proof

Fullness and faithfulness is the case n=0n = 0 of the isomorphism Hom⁡D(M,N[n])≅Ext⁡n(M,N)\operatorname{Hom}_D(M, N[n]) \cong \operatorname{Ext}^n(M, N), since Ext⁡0=Hom⁡\operatorname{Ext}^0 = \operatorname{Hom} (here proved when A\mathcal{A} has enough projectives; true in general). If Hi(X)=0H^i(X) = 0 for i≠0i \neq 0, the truncations give quasi-isomorphisms X←τ≤0X→H0(X)[0]X \leftarrow \tau_{\le 0} X \to H^0(X)[0], where τ≤0X=(⋯→X−1→ker⁡d0→0)\tau_{\leq 0} X = (\cdots \to X^{-1} \to \ker d^0 \to 0).

∎

ExplanationH

The landscape: derived functors and derived equivalences

Derived functors compose. If FF sends injectives to GG-acyclic objects, then R(G∘F)≅RG∘RFR(G \circ F) \cong RG \circ RF. The Grothendieck spectral sequence E2p,q=RpG(RqF(M))⇒Rp+q(GF)(M)E_2^{p,q} = R^pG(R^qF(M)) \Rightarrow R^{p+q}(GF)(M) is the shadow of this single isomorphism on cohomology. This is the reason derived categories became the language of sheaf theory: the six operations Rf∗,f−1,Rf!,f!,⊗L,RHomRf_*, f^{-1}, Rf_!, f^!, \otimes^{L}, R\mathcal{H}om, the adjunctions f−1⊣Rf∗f^{-1} \dashv Rf_* and Rf!⊣f!Rf_! \dashv f^!, Verdier duality and base change are all statements in derived categories.

Derived equivalences are equivalences Db(A)≃Db(B)D^b(\mathcal{A}) \simeq D^b(\mathcal{B}) (of triangulated categories) between abelian categories that need not be equivalent. Established landmarks:

  • Beilinson (1978): Db(Coh Pn)≃Db(mod-End⁡(O⊕O(1)⊕⋯⊕O(n)))D^b(\mathrm{Coh}\,\mathbb{P}^n) \simeq D^b(\text{mod-}\operatorname{End}(\mathcal{O} \oplus \mathcal{O}(1) \oplus \dots \oplus \mathcal{O}(n))) — coherent sheaves on projective space are "the same as" representations of a finite quiver with relations.
  • Mukai (1981): for an abelian variety AA with dual A^\hat A, the Fourier–Mukai transform with the Poincaré bundle as kernel gives Db(Coh A)≃Db(Coh A^)D^b(\mathrm{Coh}\,A) \simeq D^b(\mathrm{Coh}\,\hat A), although AA and A^\hat A need not be isomorphic.
  • Happel (1987) and Rickard (1989): tilting theory. Rickard's Morita theorem: for rings AA, BB, the derived categories of modules are equivalent if and only if B≅End⁡D(A)(T)opB \cong \operatorname{End}_{D(A)}(T)^{\mathrm{op}} for a tilting complex TT. 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 Db(Coh X)→Db(Coh Y)D^b(\mathrm{Coh}\,X) \to D^b(\mathrm{Coh}\,Y) 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 Db(Coh X)D^b(\mathrm{Coh}\,X).
  • 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: KK-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 Db(Coh X)D^b(\mathrm{Coh}\,X) and a derived Fukaya category of a mirror X∨X^\vee; 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 D(A)D(\mathcal{A}) 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.

Formal mathematicsF

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 A1→dA0A_1 \xrightarrow{d} A_0 and B1→d′B0B_1 \xrightarrow{d'} B_0, a homotopy is a single map h:A0→B1h : A_0 \to B_1:

cycles_map_eq_of_homotopyLean 4Proved here from basic factsFormally verified
/-- 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
Axioms used: propext, Quot.soundformal/Lumenary/DerivedCategories.leanTry it in the Lean web editor
boundary_of_homotopyLean 4Proved here from basic factsFormally verified
/-- 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]
Axioms used: propext, Classical.choice, Quot.soundformal/Lumenary/DerivedCategories.leanTry it in the Lean web editor
homology_class_eq_of_homotopyLean 4Proved here from basic factsFormally verified
/-- 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)
Axioms used: propext, Classical.choice, Quot.soundformal/Lumenary/DerivedCategories.leanTry it in the Lean web editor

The general statement, for complexes in any abelian category, and its consequence in the derived category, are in Mathlib:

homologyMap_eq_of_homotopyLean 4Applies a library theoremFormally verified
/-- 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
Axioms used: propext, Classical.choice, Quot.soundformal/Lumenary/DerivedCategories.leanTry it in the Lean web editor
Q_map_eq_of_homotopyLean 4Applies a library theoremFormally verified
/-- 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)
Axioms used: propext, Classical.choice, Quot.soundformal/Lumenary/DerivedCategories.leanTry it in the Lean web editor
isIso_Q_map_iff_quasiIsoLean 4Applies a library theoremFormally verified
/-- 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 (φ := φ)
Axioms used: propext, Classical.choice, Quot.soundformal/Lumenary/DerivedCategories.leanTry it in the Lean web editor

The last statement says that QQ 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:

single_map_bijectiveLean 4Applies a library theoremFormally verified
/-- 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
Axioms used: propext, Classical.choice, Quot.soundformal/Lumenary/DerivedCategories.leanTry it in the Lean web editor
ext_zero_bijectiveLean 4Applies a library theoremFormally verified
/-- 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 Y
Axioms used: propext, Classical.choice, Quot.soundformal/Lumenary/DerivedCategories.leanTry it in the Lean web editor

Note how Mathlib defines Ext⁡n(X,Y)\operatorname{Ext}^n(X, Y) as (a small model of) Hom⁡D(A)(X,Y[n])\operatorname{Hom}_{D(\mathcal{A})}(X, Y[n]): 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: Z→2Z→Z/2\Z \xrightarrow{2} \Z \to \Z/2 is exact, so the resolution is a quasi-isomorphism; but there is no non-zero map Z/2→Z\Z/2 \to \Z, so it has no inverse chain map.

two_mul_injectiveLean 4Proved here from basic factsFormally verified
/-- 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
Axioms used: propext, Quot.soundformal/Lumenary/DerivedCategories.leanTry it in the Lean web editor
exact_at_middleLean 4Proved here from basic factsFormally verified
/-- 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⟩
Axioms used: propext, Classical.choice, Quot.soundformal/Lumenary/DerivedCategories.leanTry it in the Lean web editor
hom_zmod_two_int_eq_zeroLean 4Proved here from basic factsFormally verified
/-- 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 this
Axioms used: propext, Classical.choice, Quot.soundformal/Lumenary/DerivedCategories.leanTry it in the Lean web editor

What 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 Z/4→2Z/4\Z/4 \xrightarrow{2} \Z/4, and derived equivalences.

ComputationC

Computing Ext by counting

The experiment computes Ext⁡n(M,N)=HnHom⁡(P,N)\operatorname{Ext}^n(M, N) = H^n \operatorname{Hom}(P, N) for small cyclic modules by writing down a projective resolution PP and counting kernels and images element by element. Over Z\Z every Ext vanishes beyond degree 11 (global dimension 11, so every object of Db(Ab)D^b(\mathrm{Ab}) splits). Over Z/4\Z/4 the module Z/2\Z/2 has non-zero Ext⁡n(Z/2,Z/2)=Hom⁡D(Z/2,Z/2[n])\operatorname{Ext}^n(\Z/2, \Z/2) = \operatorname{Hom}_D(\Z/2, \Z/2[n]) in every degree — the same periodicity that made the "same cohomology, different objects" example work — while Z/4\Z/4 is injective over itself. Finally it counts extensions 0→Z/p→E→Z/p→00 \to \Z/p \to E \to \Z/p \to 0 directly as 22-cocycles modulo coboundaries, and finds ∣Ext⁡1(Z/p,Z/p)∣=p|\operatorname{Ext}^1(\Z/p, \Z/p)| = p.

Ext from resolutions and from extensionsPythonExact computationExhaustive finite checkComputationally tested
"""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()
Runs entirely in your browser, in an isolated worker. Nothing is sent to a server.

This is exact, exhaustive evidence for finitely many small cases. It illustrates the theorems; the proofs above (and in the references) establish them.

Exercises

Exercises

1. Derived categories

Warm-upHuman

Which of these chain maps are quasi-isomorphisms? (Complexes of abelian groups; a single group means a complex concentrated in degree 00. Choose all that apply.)

Choose all that apply

2. Derived categories

Warm-upHuman

Compute the order of Ext⁡Z1(Z/12,Z/18)\operatorname{Ext}^1_{\Z}(\Z/12, \Z/18).

3. Derived categories

Warm-upHuman

The derived tensor product Z/8⊗ZLZ/12\Z/8 \otimes^{L}_{\Z} \Z/12 is an object of D(Ab)D(\mathrm{Ab}). What is the order of its cohomology group in degree −1-1?

4. Derived categories

CoreHuman

Which of these Hom-groups in D(Ab)D(\mathrm{Ab}) are non-zero? (Choose all that apply.)

Choose all that apply

5. Derived categories

CoreHuman

Let R=Z/4R = \Z/4. What is the order of Hom⁡D(R)(Z/2,Z/2[5])=Ext⁡R5(Z/2,Z/2)\operatorname{Hom}_{D(R)}(\Z/2, \Z/2[5]) = \operatorname{Ext}^5_R(\Z/2, \Z/2)?

6. Derived categories

CoreHuman

In the proof of Lemma 2 (Hom⁡K(P,Z)=0\operatorname{Hom}_K(P, Z) = 0 for PP a bounded-above complex of projectives and ZZ acyclic), we put g=fn−hn+1dPg = f^n - h^{n+1} d_P. Where is the projectivity of PnP^n used?

Choose one

7. Derived categories

CoreHuman

Let p:P=(Z→2Z)→Z/2p : P = (\Z \xrightarrow{2} \Z) \to \Z/2 be the resolution map. Which statement is correct?

Choose one

8. Derived categories

StretchHuman

“Every object XX of Db(A)D^b(\mathcal{A}) is isomorphic to ⨁nHn(X)[−n]\bigoplus_n H^n(X)[-n].” Which hypothesis on A\mathcal{A} makes this true, together with an example showing that some hypothesis is needed?

Choose one

9. Derived categories

CoreFormal

Which 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.)

Choose one

10. Derived categories

StretchComputational

Write ext_orders(a, b) returning the list [|Ext^0|, |Ext^1|, |Ext^2|] for Ext⁡Zn(Z/a,Z/b)\operatorname{Ext}^n_{\Z}(\Z/a, \Z/b), computed from the resolution 0→Z→aZ→Z/a→00 \to \Z \xrightarrow{a} \Z \to \Z/a \to 0: apply Hom⁡(−,Z/b)\operatorname{Hom}(-, \Z/b) to get Z/b→aZ/b\Z/b \xrightarrow{a} \Z/b and count the kernel and the cokernel of x↦ax mod bx \mapsto ax \bmod b (do not use gcd).

Runs entirely in your browser, in an isolated worker. Nothing is sent to a server.
Common misconceptionsH

Common misconceptions

Misconception

"D(A)D(\mathcal{A}) 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 D(Ab)D(\mathrm{Ab}) were abelian, every morphism ff would satisfy fgf=ff g f = f for some gg. But End⁡D(Z)=End⁡(Z)=Z\operatorname{End}_{D}(\Z) = \operatorname{End}(\Z) = \Z by Theorem 4, and 2g2=22 g 2 = 2 has no integer solution. The correct replacement for short exact sequences is the distinguished triangle.

Misconception

"An object of D(A)D(\mathcal{A}) 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 Z/4\Z/4, distinguished by −⊗LZ/2- \otimes^{L} \Z/2. Even when objects split, morphisms are not determined by maps on cohomology (Hom⁡D(Z/2,Z[1])≠0\operatorname{Hom}_D(\Z/2, \Z[1]) \neq 0 although Z/2\Z/2 and Z[1]\Z[1] have cohomology in different degrees).

Misconception

"A quasi-isomorphism has an inverse chain map, or at least a homotopy inverse." No: P=(Z→2Z)→Z/2P = (\Z \xrightarrow{2} \Z) \to \Z/2 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: Hom⁡K(Z/2,Z[1])=0\operatorname{Hom}_K(\Z/2, \Z[1]) = 0 but Hom⁡D(Z/2,Z[1])≅Z/2\operatorname{Hom}_D(\Z/2, \Z[1]) \cong \Z/2. 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

"R(G∘F)=RG∘RFR(G \circ F) = RG \circ RF always." It needs a hypothesis, typically that FF sends injectives (or a class of FF-adapted objects) to GG-acyclic objects. Without it the comparison map need not be an isomorphism.

ViewpointsH

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 C∗(−;Z)C_*(-; \Z) descends to a functor from the homotopy category of spaces to D(Z)D(\Z), and singular cohomology is Hn(X;A)=Hom⁡D(Z)(C∗(X),A[n])H^n(X; A) = \operatorname{Hom}_{D(\Z)}(C_*(X), A[n]). Quillen's model categories (1967) axiomatise the common pattern: chain complexes with quasi-isomorphisms and spaces with weak equivalences are both model categories, and D(R)D(R) is the homotopy category of the former. Stable homotopy theory goes further: D(Z)D(\Z) embeds in the homotopy theory of spectra as the modules over the Eilenberg–MacLane spectrum HZH\Z (see stable homotopy theory). And for sheaves on a space XX, Verdier duality in Db(Sh(X))D^b(\mathrm{Sh}(X)) 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 XX over a field, Db(Coh X)D^b(\mathrm{Coh}\,X) is a remarkably strong invariant. It recovers the dimension, the canonical bundle's behaviour (via the Serre functor −⊗ωX[dim⁡X]- \otimes \omega_X[\dim X]), the Hochschild homology, and — by Bondal–Orlov — XX itself when ωX\omega_X or ωX−1\omega_X^{-1} is ample. When ωX\omega_X is trivial (abelian varieties, K3 surfaces, Calabi–Yau manifolds) there can be non-isomorphic "Fourier–Mukai partners", and the group of autoequivalences of Db(Coh X)D^b(\mathrm{Coh}\,X) becomes a rich geometric symmetry group, containing for instance the spherical twists of Seidel and Thomas. Semi-orthogonal decompositions of Db(Coh X)D^b(\mathrm{Coh}\,X) (Beilinson's exceptional collection on Pn\mathbb{P}^n 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 RR-Mod ≃S\simeq S-Mod iff S≅End⁡R(P)opS \cong \operatorname{End}_R(P)^{\mathrm{op}} for a finitely generated projective generator PP. 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 Db(kQ)D^b(kQ) for a Dynkin quiver QQ depends only on the underlying graph, and described it combinatorially through the repetitive quiver ZQ\Z Q.

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 XX, with the open strings between them, should form the category Db(Coh X)D^b(\mathrm{Coh}\,X): 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, D(A)D(\mathcal{A}) is the localisation K(A)[qis−1]K(\mathcal{A})[\mathrm{qis}^{-1}], and also the Verdier quotient K(A)/Kacyc(A)K(\mathcal{A}) / K_{\mathrm{acyc}}(\mathcal{A}) by the thick subcategory of acyclic complexes. Total derived functors are Kan extensions along the localisation (see Kan extensions): RFRF is the left Kan extension of Q∘K(F)Q \circ K(F) along QQ, when it exists. The defects of D(A)D(\mathcal{A}) — non-functorial cones, no homotopy limits — disappear when one remembers the dg-category of complexes or the stable ∞-category D(A)\mathcal{D}(\mathcal{A}), of which D(A)D(\mathcal{A}) is the homotopy category.

History & global context

History and global context

  • 1940s–50s. Homology groups of spaces (Noether, Hopf, Eilenberg–Steenrod) and derived functors Ext⁡\operatorname{Ext}, Tor⁡\operatorname{Tor} (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, DD-modules); Kashiwara's Riemann–Hilbert correspondence (around 1980, independently Mebkhout) is an equivalence of derived categories. In Moscow, Alexander Beilinson describes Db(Coh Pn)D^b(\mathrm{Coh}\,\mathbb{P}^n) (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

Further reading

  • Charles A. Weibel, An Introduction to Homological Algebra (1994), Chapter 10 — the standard first account, including the calculus of fractions and Ext⁡\operatorname{Ext} 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.