Homological algebra

AbbreviationChain complex#

A chain complex is a sequence of objects, such as abelian groups or modules over a ring, joined by maps that lower the degree by one, in which any two consecutive maps compose to zero. It is the basic object of homological algebra. The vanishing of these composites says that the image of each map lies inside the kernel of the next, and the failure of the two to coincide is measured by the homology of the complex. Chain complexes arise from topological spaces, from resolutions of modules and from many other structures, and homology turns them into invariants that can be computed.

Definition

A chain complex \(X\) of \(R\)-modules, indexed by the integers, consists of a module \(X_n\) for each integer \(n\) and linear maps \(d_n \colon X_n \to X_{n-1}\), the differentials or boundary maps, such that

\[d_{n-1} \circ d_n = 0 \quad \text{for every } n.\]

It is usually drawn as $\(\cdots \to X_{n+1} \xrightarrow{d_{n+1}} X_n \xrightarrow{d_n} X_{n-1} \to \cdots\)$ The same definition makes sense with the modules replaced by objects of any category that has zero morphisms, and with other index sets, the most common being the natural numbers, where the complex stops at \(X_0\). Mathlib defines a chain complex in this generality, and in it the composite of two consecutive differentials is zero. Over the integers or the natural numbers, any family of objects \(X_n\) with maps \(d_{n+1} \colon X_{n+1} \to X_n\) satisfying \(d_{n+1} \circ d_{n+2} = 0\) for every \(n\) assembles into a chain complex.

Elements of \(X_n\) are called \(n\)-chains. The kernel \(Z_n = \ker d_n\) consists of the \(n\)-cycles and the image \(B_n = \operatorname{im} d_{n+1}\) of the \(n\)-boundaries. The condition \(d_n \circ d_{n+1} = 0\) says exactly that \(B_n \subseteq Z_n\), and the \(n\)-th homology is the quotient $\(H_n(X) = Z_n / B_n.\)$ The complex is exact at \(n\) when \(B_n = Z_n\), that is, when \(H_n(X) = 0\). In Mathlib's general setting, for any complex whose homology in degree \(n\) is defined, the complex is exact at \(n\) if and only if its homology in degree \(n\) is zero.

A chain map \(f \colon X \to Y\) is a family of maps \(f_n \colon X_n \to Y_n\) with \(d^Y_n \circ f_n = f_{n-1} \circ d^X_n\) for all \(n\). Mathlib defines chain maps and records that each one commutes with the differentials. With chain maps as morphisms, chain complexes form a category, and when the objects lie in an abelian category, such as the category of modules over a ring, the chain complexes form an abelian category again, with kernels and cokernels computed degree by degree.

Examples
  • A periodic exact complex. Let every \(X_n\) be \(\mathbb{Z}/4\mathbb{Z}\) and every \(d_n\) multiplication by \(2\). Since \(2 \cdot 2 = 4 = 0\) in \(\mathbb{Z}/4\mathbb{Z}\), this is a chain complex. Both the kernel and the image of multiplication by \(2\) are \(\{0, 2\}\), so the complex is exact everywhere, although no term is zero.
  • A two-term complex. The complex with \(X_1 = X_0 = \mathbb{Z}\), \(d_1\) multiplication by \(m \geq 1\), and all other terms zero has \(H_1 = 0\) and \(H_0 = \mathbb{Z}/m\mathbb{Z}\).
  • Simplicial chains. Take the boundary of a triangle, with vertices \(a, b, c\) and edges \([a,b]\), \([b,c]\), \([c,a]\). Let \(X_1\) be the free abelian group on the edges, \(X_0\) the free abelian group on the vertices, and \(d_1[x,y] = y - x\), with all other terms zero. The image of \(d_1\) is the set of combinations of vertices whose coefficients sum to zero, so \(H_0 \cong \mathbb{Z}\), while \(H_1 \cong \mathbb{Z}\) is generated by the cycle \([a,b] + [b,c] + [c,a]\). This detects the single loop of the triangle's boundary, which is a circle.
  • Singular chains. For a topological space \(T\), the free abelian groups on continuous maps from the standard \(n\)-simplex into \(T\), with the alternating sum of the faces as differential, form the singular chain complex, indexed by the natural numbers. Its homology is the singular homology of \(T\). Mathlib builds it with coefficients in any additive category with coproducts; coefficients in the integers give the complex just described.
  • Resolutions. A projective resolution of a module \(M\) is a chain complex of projective modules \(\cdots \to P_1 \to P_0\), indexed by the natural numbers, together with a map \(P_0 \to M\) that makes \(\cdots \to P_1 \to P_0 \to M \to 0\) exact; equivalently, the induced map \(H_0(P) \to M\) is an isomorphism and the higher homology vanishes. Mathlib defines projective resolutions for objects of any category with a zero object and zero morphisms, as a complex of projective objects with a quasi-isomorphism (see below) to the complex that has \(M\) in degree \(0\) and zero elsewhere. Resolutions are the input to derived functors such as Tor and Ext.
Properties

A cochain complex has differentials that raise the degree, \(d^n \colon X^n \to X^{n+1}\); Mathlib defines cochain complexes alongside chain complexes. Over the integers the two notions are interchangeable by setting \(X^n = X_{-n}\); homology theories are usually written with chain complexes, cohomology theories with cochain complexes. Double complexes, which carry two compatible differentials, and the derived category, in which quasi-isomorphisms are inverted, build further on chain complexes.

In Mathlib

Mathlib treats chain complexes as one case of a single notion, a homological complex, whose shape records which pairs of indices may carry a nonzero differential. A chain complex is a homological complex of the shape in which the differential from index \(i\) to index \(j\) is allowed only when \(i = j + 1\); a cochain complex is the shape with \(j = i + 1\). The index set may be any type with an addition, cancellative on the right, and an element \(1\), which covers the integers and the natural numbers. The terms may lie in any category with zero morphisms. A complex carries a map \(X_i \to X_j\) for every pair of indices, required to be zero outside the allowed pairs; this avoids having to identify \(X_{j+1}\) with \(X_i\) whenever \(i = j + 1\) holds as a proof rather than as a definition. Homology in a given degree is defined when the complex has suitable homology data there, compatible kernel and cokernel constructions; this is automatic in an abelian category such as modules over a ring.

Written for Trough, under CC BY-SA 4.0.

Sources
MathlibChainComplex
Uses 3 · Used by 1
Statement usesModule · Linear map · Category

DefinitionFunctorial homology#

Functorial homology is the construction that assigns to a complex \(K\) and a degree \(i\) the homology object \(H_i(K)\), the cycles in degree \(i\) modulo the boundaries, together with the morphism \(H_i(K) \to H_i(L)\) that every chain map \(K \to L\) induces. The assignment respects identities and composition, so homology in each degree is a functor from complexes to the underlying category. It measures how far a complex is from being exact, and it is a principal source of invariants in algebraic topology, homological algebra and sheaf theory.

Definition

A complex \(K\) in a category \(\mathcal{C}\) with zero morphisms consists of objects \(X_i\) indexed by a set of degrees and differentials \(d_{ij} \colon X_i \to X_j\), where a fixed relation on the degrees (the shape of the complex) says which differentials may be nonzero, each degree has at most one degree mapping to it and at most one degree it maps to, and the composite of two consecutive differentials is zero. A chain complex indexed by the natural numbers is the case where \(d_{ij}\) can be nonzero only when \(i = j + 1\).

Fix a degree \(i\). Let \(i'\) be the degree whose differential enters \(X_i\) and \(i''\) the degree that receives the differential leaving \(X_i\) (when no such degree exists, take \(i\) itself with a zero differential; see the last section). This gives a sequence

\[X_{i'} \xrightarrow{\;d_{i'i}\;} X_i \xrightarrow{\;d_{ii''}\;} X_{i''}\]

whose composite is zero. For a complex of modules over a ring, the cycles \(Z_i = \ker d_{ii''}\) contain the boundaries \(B_i = \operatorname{im} d_{i'i}\), and

\[H_i(K) = Z_i / B_i.\]

Indeed, for a sequence of modules \(M_1 \xrightarrow{f} M_2 \xrightarrow{g} M_3\) with \(g \circ f = 0\), its homology is isomorphic to the kernel of \(g\) modulo the image of \(f\). In a general category the quotient is replaced by a universal construction, a cokernel of the map from \(X_{i'}\) into the kernel of \(d_{ii''}\), and the homology of \(K\) in degree \(i\) is defined whenever this construction and its dual, a kernel inside the cokernel of the incoming differential, both exist and agree (made precise in the last section). It always exists in an abelian category, since every such three-term sequence in an abelian category has homology.

A chain map \(\varphi \colon K \to L\) commutes with the differentials, so it sends cycles to cycles and boundaries to boundaries. It therefore induces a morphism \(H_i(K) \to H_i(L)\), which for complexes of modules sends the class of a cycle \(z\) to the class of \(\varphi(z)\). The identity chain map induces the identity, and the map induced by a composite \(\psi \circ \varphi\) is the composite of the induced maps. When every such three-term sequence in \(\mathcal{C}\) has homology, these data form the degree \(i\) homology functor.

Examples
  • Multiplication by two. Let \(K\) be the chain complex of abelian groups with \(X_1 = X_0 = \mathbb{Z}\), the differential \(X_1 \to X_0\) given by \(n \mapsto 2n\), and all other terms zero. Multiplication by \(2\) is injective, so \(H_1(K) = 0\), while every element of \(X_0\) is a cycle and the boundaries are the even integers, so \(H_0(K) = \mathbb{Z}/2\mathbb{Z}\).
  • Zero differentials. If every differential of \(K\) is zero, every element is a cycle and the only boundary is \(0\), so \(H_i(K) = X_i\) for every \(i\).
  • Singular homology. The \(n\)-th singular homology of topological spaces is the composite of the singular chain complex construction with the degree \(n\) homology functor; Mathlib defines singular homology with coefficients in an object of a preadditive category with coproducts in which homology exists in exactly this way.
Properties

Long exact sequence. In an abelian category, let \(0 \to K \to L \to M \to 0\) be a short exact sequence of complexes, and let \(i\) and \(j\) be degrees joined by a differential from degree \(i\) to degree \(j\). There is a connecting morphism \(\delta \colon H_i(M) \to H_j(K)\), and the sequence

\[H_i(K) \to H_i(L) \to H_i(M) \xrightarrow{\;\delta\;} H_j(K) \to H_j(L) \to H_j(M)\]

is exact at \(H_i(L)\), exact at \(H_i(M)\) and exact at \(H_j(K)\). Splicing these pieces over all degrees gives the long exact homology sequence.

In Mathlib

Mathlib works with complexes of an arbitrary shape: the degrees form any type, and a relation on it says which differentials are allowed, so chain complexes, cochain complexes and complexes indexed by the integers are all special cases. A differential is recorded for every pair of degrees, with the requirement that it vanish outside the shape. When no degree precedes \(i\), Mathlib uses \(i\) itself as the predecessor, with a zero differential, and likewise for successors; so for a chain complex indexed by the natural numbers, \(H_0\) is \(X_0\) modulo the image of \(d_{10}\). The homology in degree \(i\) is defined as the homology of the three-term sequence above, which in turn rests on a homology data: a compatible pair consisting of a quotient of the cycles and a subobject of the cokernel of the incoming differential, identified with each other. This needs only zero morphisms, not an abelian category, and the existence of homology in a given degree is a hypothesis carried along rather than a property of the ambient category; only the homology functor asks that every three-term sequence in the category have homology. The homology object is a chosen one, determined up to canonical isomorphism.

Written for Trough, under CC BY-SA 4.0.

Sources
MathlibHomologicalComplex.homology
Uses 5

The dependency explorer needs JavaScript and its graph data.

Download the complete graph data.