# Homology (mathematics)

*A separate article treats homology in biology.*

In mathematics (especially algebraic topology and abstract algebra), **homology** is a certain general procedure to associate a sequence of abelian groups or modules to a given mathematical object (such as a topological space or a group). See homology theory for more background.

For a topological space, the homology groups are generally much easier to compute than the homotopy groups, and consequently one usually will have an easier time working with homology to aid in the classification of spaces.

Table of contents |

2 Examples 3 Cohomology 4 Properties |

### Construction of homology groups

The procedure works as follows: Given the object *X*, one first defines a *chain complex* that encodes information about *X*. A chain complex is a sequence of abelian groups or modules *A*_{0}, *A*_{1}, *A*_{2}... connected by homomorphisms *d*_{n} : *A*_{n} ` -> ` *A*_{n-1}, such that the composition of any two consecutive maps is zero: *d*_{n} o *d*_{n+1} = 0 for all *n*. This means that the image of the *n*+1-th map is contained in the kernel of the *n*-th, and we can define the ** n-th homology group of X** to be the factor group (or factor module)

*H*_{n}(*X*) = ker(*d*_{n}) / im(*d*_{n+1}).

*exact*if the image of the

*n*+1-th map is always equal to the kernel of the

*n*-th map. The homology groups of

*X*therefore measure "how far" the chain complex associated to

*X*is from being exact.

### Examples

The motivating example comes from algebraic topology: the simplicial homology of a simplicial complex *X*. Here *A*_{n} is the free abelian group or module whose generators are the *n*-dimensional
oriented simplexes of *X*. The mappings are called the *boundary mappings* and send the simplex with vertices
(*a*[1], *a*[2], ..., *a*[*n*]) to the sum of
(-1)^{i} (*a*[1], ..., *a*[*i*-1], *a*[*i*+1], ..., *a*[*n*]) from *i* = 0
to *i* = *n*. If we take the modules to be over a field, then the dimension
of the *n*-th homology of *X* turns out to be the number of "holes" in *X* at dimension *n*.

Using this example as a model, one can define a simplicial homology for any topological space *X*. We define a chain complex for *X* by taking *A*_{n} to be the free abelian group (or free module) whose generators are all continuous maps from *n*-dimensional simplices into *X*. The homomorphisms *d*_{n} arise from the boundary maps of simplices.

In abstract algebra, one uses homology to define derived functors, for example the Tor functors. Here one starts with some covariant additive functor *F* and some module *X*. The chain complex for *X* is defined as follows: first find a free module *F*_{1} and a surjective homomorphism *p*_{1} : *F*_{1} `->` *X*. Then one finds a free module *F*_{2} and a surjective homomorphism *p*_{2} : *F*_{2} `->` ker(*p*_{1}). Continuing in this fashion, a sequence of free modules *F*_{n} and homorphisms *p*_{n} can be defined. By applying the functor *F* to this sequence, one obtains a chain complex; the homology *H _{n}* of this complex depends only on

*F*and

*X*and is, by definition, the

*n*-th derived functor of

*F*, applied to

*X*.

### Cohomology

Chain complexes form a category: A morphism from the chain complex (*d*_{n} : *A*_{n} `->` *A*_{n-1}) to the chain complex (*e*_{n} : *B*_{n} `->` *B*_{n-1}) is a sequence of homomorphisms *f*_{n} : *A*_{n} `->` *B*_{n} such that *f*_{n-1} o *d*_{n} = *e*_{n-1} o *f*_{n} for all *n*. The *n*-th homology *H*_{n} can be viewed as a covariant functor from the category of chain complexes to the category of abelian groups (or modules).

If the chain complex depends on the object *X* in a covariant manner (meaning that any morphism *X* `->` *Y* induces a morphism from *X*'s chain complex to *Y*'s), then the *H*_{n} are covariant functors from the category that *X* belongs to into the category of abelian groups (or modules).

The only difference between homology and cohomology is that in cohomology the chain complexes depend in a *contravariant* manner on *X*, and that therefore the homology groups (which are called *cohomology groups* in this context and denoted by *H*^{n}) form *contravariant* functors from the category that *X* belongs to into the category of abelian groups or modules.

### Properties

(using the rank in the case of abelian groups and the Hamel dimension in the case of vector spaces). It turns out that the Euler characteristic can also be computed on the level of homology:- χ = ∑ (-1)
^{n}rank(*H*_{n})

*X*which gave rise to the chain complex.

Every short exact sequence

- 0
`->`*A*`->`*B*`->`*C*`->`0

- ...
`->`*H*_{n}(*A*)`->`*H*_{n}(*B*)`->`*H*_{n}(*C*)`->`*H*_{n-1}(*A*)`->`*H*_{n-1}(*B*)`->`*H*_{n-1}(*C*)`->`*H*_{n-2}(*A*)`->`...

*H*

_{n}(

*C*)

`->`

*H*

_{n-1}(

*A*). These latter are called

*connecting homomorphisms*and are provided by the snake lemma.