In mathematics, homology is a general way of associating a sequence of algebraic objects, such as abelian groups or modules, to other mathematical objects such as topological spaces. Homology groups were originally defined in algebraic topology. Similar constructions are available in a wide variety of other contexts, such as abstract algebra, groups, Lie algebras, Galois theory, and algebraic geometry.
The original motivation for defining homology groups was the observation that two shapes can be distinguished by examining their holes. For instance, a circle is not a disk because the circle has a hole through it while the disk is solid, and the ordinary sphere is not a circle because the sphere encloses a two-dimensional hole while the circle encloses a one-dimensional hole. However, because a hole is "not there", it is not immediately obvious how to define a hole or how to distinguish different kinds of holes. Homology was originally a rigorous mathematical method for defining and categorizing holes in a manifold. Loosely speaking, a ''cycle'' is a closed submanifold, a ''boundary'' is a cycle which is also the boundary of a submanifold, and a ''homology class'' (which represents a hole) is an equivalence class of cycles modulo boundaries. A homology class is thus represented by a cycle which is not the boundary of any submanifold: the cycle represents a hole, namely a hypothetical manifold whose boundary would be that cycle, but which is "not there".
There are many different homology theories. A particular type of mathematical object, such as a topological space or a group, may have one or more associated homology theories. When the underlying object has a geometric interpretation as topological spaces do, the ''n''th homology group represents behavior in dimension ''n''. Most homology groups or modules may be formulated as derived functors on appropriate abelian categories, measuring the failure of a functor to be exact. From this abstract perspective, homology groups are determined by objects of a derived category.

** Background **

** Origins **

Homology theory can be said to start with the Euler polyhedron formula, or Euler characteristic. This was followed by Riemann's definition of genus and ''n''-fold connectedness numerical invariants in 1857 and Betti's proof in 1871 of the independence of "homology numbers" from the choice of basis.
Homology itself was developed as a way to analyse and classify manifolds according to their ''cycles'' – closed loops (or more generally submanifolds) that can be drawn on a given ''n'' dimensional manifold but not continuously deformed into each other. These cycles are also sometimes thought of as cuts which can be glued back together, or as zippers which can be fastened and unfastened. Cycles are classified by dimension. For example, a line drawn on a surface represents a 1-cycle, a closed loop or $S^1$ (1-manifold), while a surface cut through a three-dimensional manifold is a 2-cycle.

** Surfaces **

On the ordinary sphere $S^2$, the cycle ''b'' in the diagram can be shrunk to the pole, and even the equatorial great circle ''a'' can be shrunk in the same way. The Jordan curve theorem shows that any arbitrary cycle such as ''c'' can be similarly shrunk to a point. All cycles on the sphere can therefore be continuously transformed into each other and belong to the same homology class. They are said to be homologous to zero. Cutting a manifold along a cycle homologous to zero separates the manifold into two or more components. For example, cutting the sphere along ''a'' produces two hemispheres.
This is not generally true of cycles on other surfaces. The torus $T^2$ has cycles which cannot be continuously deformed into each other, for example in the diagram none of the cycles ''a'', ''b'' or ''c'' can be deformed into one another. In particular, cycles ''a'' and ''b'' cannot be shrunk to a point whereas cycle ''c'' can, thus making it homologous to zero.
If the torus surface is cut along both ''a'' and ''b'', it can be opened out and flattened into a rectangle or, more conveniently, a square. One opposite pair of sides represents the cut along ''a'', and the other opposite pair represents the cut along ''b''.
The edges of the square may then be glued back together in different ways. The square can be twisted to allow edges to meet in the opposite direction, as shown by the arrows in the diagram. Up to symmetry, there are four distinct ways of gluing the sides, each creating a different surface:
$K^2$ is the Klein bottle, which is a torus with a twist in it (The twist can be seen in the square diagram as the reversal of the bottom arrow). It is a theorem that the re-glued surface must self-intersect (when immersed in Euclidean 3-space). Like the torus, cycles ''a'' and ''b'' cannot be shrunk while ''c'' can be. But unlike the torus, following ''b'' forwards right round and back reverses left and right, because ''b'' happens to cross over the twist given to one join. If an equidistant cut on one side of ''b'' is made, it returns on the other side and goes round the surface a second time before returning to its starting point, cutting out a twisted Möbius strip. Because local left and right can be arbitrarily re-oriented in this way, the surface as a whole is said to be non-orientable.
The projective plane $P^2$ has both joins twisted. The uncut form, generally represented as the Boy surface, is visually complex, so a hemispherical embedding is shown in the diagram, in which antipodal points around the rim such as ''A'' and ''A′'' are identified as the same point. Again, ''a'' and ''b'' are non-shrinkable while ''c'' is. But this time, both ''a'' and ''b'' reverse left and right.
Cycles can be joined or added together, as ''a'' and ''b'' on the torus were when it was cut open and flattened down. In the Klein bottle diagram, ''a'' goes round one way and −''a'' goes round the opposite way. If ''a'' is thought of as a cut, then −''a'' can be thought of as a gluing operation. Making a cut and then re-gluing it does not change the surface, so ''a'' + (−''a'') = 0.
But now consider two ''a''-cycles. Since the Klein bottle is nonorientable, you can transport one of them all the way round the bottle (along the ''b''-cycle), and it will come back as −''a''. This is because the Klein bottle is made from a cylinder, whose ''a''-cycle ends are glued together with opposite orientations. Hence 2''a'' = ''a'' + ''a'' = ''a'' + (−''a'') = 0. This phenomenon is called torsion. Similarly, in the projective plane, following the unshrinkable cycle ''b'' round twice remarkably creates a trivial cycle which ''can'' be shrunk to a point; that is, ''b'' + ''b'' = 0. Because ''b'' must be followed around twice to achieve a zero cycle, the surface is said to have a torsion coefficient of 2. However, following a ''b''-cycle around twice in the Klein bottle gives simply ''b'' + ''b'' = 2''b'', since this cycle lives in a torsion-free homology class. This corresponds to the fact that in the fundamental polygon of the Klein bottle, only one pair of sides is glued with a twist, whereas in the projective plane both sides are twisted.
A square is a contractible topological space, which implies that it has trivial homology. Consequently, additional cuts disconnect it. The square is not the only shape in the plane that can be glued into a surface. Gluing opposite sides of an octagon, for example, produces a surface with two holes. In fact, all closed surfaces can be produced by gluing the sides of some polygon and all even-sided polygons (2''n''-gons) can be glued to make different manifolds. Conversely, a closed surface with ''n'' non-zero classes can be cut into a 2''n''-gon. Variations are also possible, for example a hexagon may also be glued to form a torus.
The first recognisable theory of homology was published by Henri Poincaré in his seminal paper "Analysis situs", ''J. Ecole polytech.'' (2) 1. 1–121 (1895). The paper introduced homology classes and relations. The possible configurations of orientable cycles are classified by the Betti numbers of the manifold (Betti numbers are a refinement of the Euler characteristic). Classifying the non-orientable cycles requires additional information about torsion coefficients.
The complete classification of 1- and 2-manifolds is given in the table.
: Notes
:# For a non-orientable surface, a hole is equivalent to two cross-caps.
:# Any 2-manifold is the connected sum of ''g'' tori and ''c'' projective planes. For the sphere $S^2$, ''g'' = ''c'' = 0.

Generalization

A manifold with boundary or open manifold is topologically distinct from a closed manifold and can be created by making a cut in any suitable closed manifold. For example, the disk or 1-ball $B^1$ is bounded by a circle $S^1$. It may be created by cutting a trivial cycle in any 2-manifold and keeping the piece removed, by piercing the sphere and stretching the puncture wide, or by cutting the projective plane. It can also be seen as filling-in the circle in the plane. When two cycles can be continuously deformed into each other, then cutting along one produces the same shape as cutting along the other, up to some bending and stretching. In this case the two cycles are said to be ''homologous'' or to lie in the same ''homology class''. Additionally, if one cycle can be continuously deformed into a combination of other cycles, then cutting along the initial cycle is the same as cutting along the combination of other cycles. For example, cutting along a figure 8 is equivalent to cutting along its two lobes. In this case, the figure 8 is said to be homologous to the sum of its lobes. Two open manifolds with similar boundaries (up to some bending and stretching) may be glued together to form a new manifold which is their connected sum. This geometric analysis of manifolds is not rigorous. In a search for increased rigour, Poincaré went on to develop the simplicial homology of a triangulated manifold and to create what is now called a chain complex. These chain complexes (since greatly generalized) form the basis for most modern treatments of homology. In such treatments a cycle need not be continuous: a 0-cycle is a set of points, and cutting along this cycle corresponds to puncturing the manifold. A 1-cycle corresponds to a set of closed loops (an image of the 1-manifold $S^1$). On a surface, cutting along a 1-cycle yields either disconnected pieces or a simpler shape. A 2-cycle corresponds to a collection of embedded surfaces such as a sphere or a torus, and so on. Emmy Noether and, independently, Leopold Vietoris and Walther Mayer further developed the theory of algebraic homology groups in the period 1925–28. The new combinatorial topology formally treated topological classes as abelian groups. Homology groups are finitely generated abelian groups, and homology classes are elements of these groups. The Betti numbers of the manifold are the rank of the free part of the homology group, and the non-orientable cycles are described by the torsion part. The subsequent spread of homology groups brought a change of terminology and viewpoint from "combinatorial topology" to "algebraic topology". Algebraic homology remains the primary method of classifying manifolds.

** Informal examples **

The homology of a topological space ''X'' is a set of topological invariants of ''X'' represented by its ''homology groups''
:$H\_0(X),\; H\_1(X),\; H\_2(X),\; \backslash ldots$
where the $k^$ homology group $H\_k(X)$ describes, informally, the number of ''k''-dimensional holes in ''X''. A 0-dimensional hole is simply a gap between two components. Consequently, $H\_0(X)$ describes the path-connected components of ''X''.
A one-dimensional sphere $S^1$ is a circle. It has a single connected component and a one-dimensional hole, but no higher-dimensional holes. The corresponding homology groups are given as
:$H\_k\backslash left(S^1\backslash right)\; =\; \backslash begin\; \backslash mathbb\; Z\; \&\; k\; =\; 0,\; 1\; \backslash \backslash \; \backslash \; \&\; \backslash text\; \backslash end$
where $\backslash mathbb\; Z$ is the group of integers and $\backslash $ is the trivial group. The group $H\_1\backslash left(S^1\backslash right)\; =\; \backslash mathbb\; Z$ represents a finitely-generated abelian group, with a single generator representing the one-dimensional hole contained in a circle.
A two-dimensional sphere $S^2$ has a single connected component, no one-dimensional holes, a two-dimensional hole, and no higher-dimensional holes. The corresponding homology groups are
:$H\_k\backslash left(S^2\backslash right)\; =\; \backslash begin\; \backslash mathbb\; Z\; \&\; k\; =\; 0,\; 2\; \backslash \backslash \; \backslash \; \&\; \backslash text\; \backslash end$
In general for an ''n''-dimensional sphere ''S^{n}'', the homology groups are
:$H\_k\backslash left(S^n\backslash right)\; =\; \backslash begin\; \backslash mathbb\; Z\; \&\; k\; =\; 0,\; n\; \backslash \backslash \; \backslash \; \&\; \backslash text\; \backslash end$
A two-dimensional ball ''B''^{2} is a solid disc. It has a single path-connected component, but in contrast to the circle, has no one-dimensional or higher-dimensional holes. The corresponding homology groups are all trivial except for $H\_0\backslash left(B^2\backslash right)\; =\; \backslash mathbb\; Z$. In general, for an ''n''-dimensional ball ''B^{n}'',
:$H\_k\backslash left(B^n\backslash right)\; =\; \backslash begin\; \backslash mathbb\; Z\; \&\; k\; =\; 0\; \backslash \backslash \; \backslash \; \&\; \backslash text\; \backslash end$
The torus is defined as a product of two circles $T\; =\; S^1\; \backslash times\; S^1$. The torus has a single path-connected component, two independent one-dimensional holes (indicated by circles in red and blue) and one two-dimensional hole as the interior of the torus. The corresponding homology groups are
:$H\_k(T)\; =\; \backslash begin\; \backslash mathbb\; Z\; \&\; k\; =\; 0,\; 2\; \backslash \backslash \; \backslash mathbb\; Z\; \backslash times\; \backslash mathbb\; Z\; \&\; k\; =\; 1\; \backslash \backslash \; \backslash \; \&\; \backslash text\; \backslash end$
The two independent 1-dimensional holes form independent generators in a finitely-generated abelian group, expressed as the product group $\backslash mathbb\; Z\; \backslash times\; \backslash mathbb\; Z$.
For the projective plane ''P'', a simple computation shows (where Z_{2} is the cyclic group of order 2):
: $H\_k(P)\; =\; \backslash begin\; \backslash mathbb\; Z\; \&\; k\; =\; 0\; \backslash \backslash \; \backslash mathbb\; Z\; \_\; 2\; \&\; k\; =\; 1\; \backslash \backslash \; \backslash \; \&\; \backslash text\; \backslash end$
''H''_{0}(''P'') = Z corresponds, as in the previous examples, to the fact that there is a single connected component. ''H''_{1}(''P'') = Z_{2} is a new phenomenon: intuitively, it corresponds to the fact that there is a single non-contractible "loop", but if we do the loop twice, it becomes contractible to zero. This phenomenon is called torsion.

** Construction of homology groups **

The construction begins with an object such as a topological space ''X'', on which one first defines a ''chain complex'' ''C''(''X'') encoding information about ''X''. A chain complex is a sequence of abelian groups or modules ''C''_{0}, ''C''_{1}, ''C''_{2}, ... connected by homomorphisms $\backslash partial\_n\; :\; C\_n\; \backslash to\; C\_,$ which are called boundary operators. That is,
:$\backslash dotsb\; \backslash overset\; C\_n\; \backslash overset\; C\_\; \backslash overset\; \backslash dotsb\; \backslash overset\; C\_1\; \backslash overset\; C\_0\; \backslash overset\; 0$
where 0 denotes the trivial group and $C\_i\backslash equiv0$ for ''i'' < 0. It is also required that the composition of any two consecutive boundary operators be trivial. That is, for all ''n'',
:$\backslash partial\_n\; \backslash circ\; \backslash partial\_\; =\; 0\_,$
i.e., the constant map sending every element of ''C''_{''n''+1} to the group identity in ''C''_{''n''−1}. The statement that the boundary of a boundary is trivial is equivalent to the statement that $\backslash mathrm(\backslash partial\_)\backslash subseteq\backslash ker(\backslash partial\_n)$, where $\backslash mathrm(\backslash partial\_)$ denotes the image of the boundary operator and $\backslash ker(\backslash partial\_n)$ its kernel. Elements of $B\_n(X)\; =\; \backslash mathrm(\backslash partial\_)$ are called boundaries and elements of $Z\_n(X)\; =\; \backslash ker(\backslash partial\_n)$ are called cycles.
Since each chain group ''C_{n}'' is abelian all its subgroups are normal. Then because $\backslash ker(\backslash partial\_n)$ is a subgroup of ''C_{n}'', $\backslash ker(\backslash partial\_n)$ is abelian, and since $\backslash mathrm(\backslash partial\_)\; \backslash leq\; \backslash ker(\backslash partial\_n)$ therefore $\backslash mathrm(\backslash partial\_)$ is a normal subgroup of $\backslash ker(\backslash partial\_n)$. Then one can create the quotient group
:$H\_n(X)\; :=\; \backslash ker(\backslash partial\_n)\; /\; \backslash mathrm(\backslash partial\_)\; =\; Z\_n(X)/B\_n(X),$
called the ''n''th homology group of ''X''. The elements of ''H_{n}''(''X'') are called homology classes. Each homology class is an equivalence class over cycles and two cycles in the same homology class are said to be homologous.
A chain complex is said to be 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.
The reduced homology groups of a chain complex ''C''(''X'') are defined as homologies of the augmented chain complex
:$\backslash dotsb\; \backslash overset\; C\_n\; \backslash overset\; C\_\; \backslash overset\; \backslash dotsb\; \backslash overset\; C\_1\; \backslash overset\; C\_0\; \backslash overset\; \backslash Z\; 0$
where the boundary operator $\backslash epsilon$ is
:$\backslash epsilon\; \backslash left\; (\backslash sum\_i\; n\_i\; \backslash sigma\_i\; \backslash right\; )\; =\; \backslash sum\_i\; n\_i$
for a combination ∑ ''n_{i}σ_{i}'' of points ''σ_{i}'', which are the fixed generators of ''C''_{0}. The reduced homology groups $\backslash tilde\_i(X)$ coincide with $H\_i(X)$ for ''i'' ≠ 0. The extra $\backslash Z$ in the chain complex represents the unique map $emptyset\backslash longrightarrow\; X$ from the empty simplex to ''X''.
Computing the cycle $Z\_n(X)$ and boundary $B\_n(X)$ groups is usually rather difficult since they have a very large number of generators. On the other hand, there are tools which make the task easier.
The ''simplicial homology'' groups ''H_{n}''(''X'') of a ''simplicial complex'' ''X'' are defined using the simplicial chain complex ''C''(''X''), with ''C_{n}''(''X'') the free abelian group generated by the ''n''-simplices of ''X''. See simplicial homology for details.
The ''singular homology'' groups ''H_{n}''(''X'') are defined for any topological space ''X'', and agree with the simplicial homology groups for a simplicial complex.
Cohomology groups are formally similar to homology groups: one starts with a cochain complex, which is the same as a chain complex but whose arrows, now denoted ''d^{n}'', point in the direction of increasing ''n'' rather than decreasing ''n''; then the groups $\backslash ker\backslash left(d^n\backslash right)\; =\; Z^n(X)$ of ''cocycles'' and $\backslash mathrm\backslash left(d^\backslash right)\; =\; B^n(X)$ of ''coboundaries'' follow from the same description. The ''n''th cohomology group of ''X'' is then the quotient group
:$H^n(X)\; =\; Z^n(X)/B^n(X),$
in analogy with the ''n''th homology group.

** Homology vs. homotopy **

Homotopy groups are similar to homology groups in that they can represent "holes" in a topological space. There is a close connection between the first homotopy group $\backslash pi\_1(X)$ and the first homology group $H\_1(X)$: the latter is the abelianization of the former. Hence, it is said that "homology is a commutative alternative to homotopy". The higher homotopy groups are abelian and are related to homology groups by the Hurewicz theorem, but can be vastly more complicated. For instance, the homotopy groups of spheres are poorly understood and are not known in general, in contrast to the straightforward description given above for the homology groups.
As an example, let ''X'' be the figure eight. Its first homotopy group $\backslash pi\_1(X)$ is the group of directed loops starting and ending at a predetermined point (e.g. its center). It is equivalent to the free group of rank 2, which is not commutative: looping around the leftmost cycle and then around the rightmost cycle is different than looping around the rightmost cycle and then looping around the leftmost cycle. In contrast, its first homology group $H\_1(X)$ is the group of cuts made in a surface. This group is commutative, since (informally) cutting the leftmost cycle and then the rightmost cycle leads to the same result as cutting the rightmost cycle and then the leftmost cycle.

** Types of homology **

The different types of homology theory arise from functors mapping from various categories of mathematical objects to the category of chain complexes. In each case the composition of the functor from objects to chain complexes and the functor from chain complexes to homology groups defines the overall homology functor for the theory.

** Simplicial homology **

The motivating example comes from algebraic topology: the simplicial homology of a simplicial complex ''X''. Here the chain group ''C_{n}'' is the free abelian group or module whose generators are the ''n''-dimensional oriented simplexes of ''X''. The orientation is captured by ordering the complex's vertices and expressing an oriented simplex $\backslash sigma$ as an ''n''-tuple $(\backslash sigma\backslash sigma\backslash dots,\; \backslash sigma$ of its vertices listed in increasing order (i.e. $\backslash sigma<\; \backslash sigma<\; \backslash cdots\; <\; \backslash sigma/math>\; in\; the\; complex\text{'}s\; vertex\; ordering,\; where$ \backslash sigma/math>\; is\; the$ i$th\; vertex\; appearing\; in\; the\; tuple).\; The\; mapping$ \backslash partial\_n$from\; \text{'}\text{'}C$$_{n}'' to ''C_{n−1}'' is called the ''boundary mapping'' and sends the simplex
:$\backslash sigma\; =\; (\backslash sigma\backslash sigma\backslash dots,\; \backslash sigma$
to the formal sum
:$\backslash partial\_n(\backslash sigma)\; =\; \backslash sum\_^n\; (-1)^i\; \backslash left\; (\backslash sigma\backslash dots,\; \backslash sigma-1\backslash sigma+1\backslash dots,\; \backslash sigma\backslash right\; ),$
which is considered 0 if ''n'' = 0. This behavior on the generators induces a homomorphism on all of ''C_{n}'' as follows. Given an element $c\; \backslash in\; C\_n$, write it as the sum of generators $c\; =\; \backslash sum\_\; m\_i\; \backslash sigma\_i$, where ''X_{n}'' is the set of ''n''-simplexes in ''X'' and the ''m_{i}'' are coefficients from the ring ''C_{n}'' is defined over (usually integers, unless otherwise specified). Then define
:$\backslash partial\_n(c)\; =\; \backslash sum\_\; m\_i\; \backslash partial\_n(\backslash sigma\_i).$
The dimension of the ''n''-th homology of ''X'' turns out to be the number of "holes" in ''X'' at dimension ''n''. It may be computed by putting matrix representations of these boundary mappings in Smith normal form.

** Singular homology **

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

** Group homology **

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 . Then one finds a free module ''F''_{2} and a surjective homomorphism . Continuing in this fashion, a sequence of free modules ''F_{n}'' and homomorphisms ''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''.
A common use of group (co)homology $H^2(G,\; M)$is to classify the possible extension groups ''E'' which contain a given ''G''-module ''M'' as a normal subgroup and have a given quotient group ''G'', so that .

** Other homology theories **

* Borel–Moore homology
* Cellular homology
* Cyclic homology
* Hochschild homology
* Floer homology
* Intersection homology
* K-homology
* Khovanov homology
* Morse homology
* Persistent homology
* Steenrod homology

** Homology functors **

Chain complexes form a category: A morphism from the chain complex () to the chain complex () is a sequence of homomorphisms such that $f\_\; \backslash circ\; d\_n\; =\; e\_\; \backslash circ\; 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 the chain complex of ''X'' to the chain complex of ''Y''), 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 **

If () is a chain complex such that all but finitely many ''A_{n}'' are zero, and the others are finitely generated abelian groups (or finite-dimensional vector spaces), then we can define the ''Euler characteristic''
:$\backslash chi\; =\; \backslash sum\; (-1)^n\; \backslash ,\; \backslash mathrm(A\_n)$
(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:
:$\backslash chi\; =\; \backslash sum\; (-1)^n\; \backslash ,\; \backslash mathrm(H\_n)$
and, especially in algebraic topology, this provides two ways to compute the important invariant χ for the object ''X'' which gave rise to the chain complex.
Every short exact sequence
:$0\; \backslash rightarrow\; A\; \backslash rightarrow\; B\; \backslash rightarrow\; C\; \backslash rightarrow\; 0$
of chain complexes gives rise to a long exact sequence of homology groups
:$\backslash cdots\; \backslash to\; H\_n(A)\; \backslash to\; H\_n(B)\; \backslash to\; H\_n(C)\; \backslash to\; H\_(A)\; \backslash to\; H\_(B)\; \backslash to\; H\_(C)\; \backslash to\; H\_(A)\; \backslash to\; \backslash cdots$
All maps in this long exact sequence are induced by the maps between the chain complexes, except for the maps ''H_{n}(C)'' → ''H''_{''n''−1}''(A)'' The latter are called ''connecting homomorphisms'' and are provided by the zig-zag lemma. This lemma can be applied to homology in numerous ways that aid in calculating homology groups, such as the theories of relative homology and ''Mayer-Vietoris sequences''.

** Applications **

** Application in pure mathematics **

Notable theorems proved using homology include the following:
* The Brouwer fixed point theorem: If ''f'' is any continuous map from the ball ''B^{n}'' to itself, then there is a fixed point ''a'' ∈ ''B^{n}'' with ''f''(''a'') = ''a''.
* Invariance of domain: If ''U'' is an open subset of R^{''n''} and ''f'' : ''U'' → R^{''n''} is an injective continuous map, then ''V'' = ''f''(''U'') is open and ''f'' is a homeomorphism between ''U'' and ''V''.
* The Hairy ball theorem: any vector field on the 2-sphere (or more generally, the 2''k''-sphere for any ''k'' ≥ 1) vanishes at some point.
* The Borsuk–Ulam theorem: any continuous function from an ''n''-sphere into Euclidean ''n''-space maps some pair of antipodal points to the same point. (Two points on a sphere are called antipodal if they are in exactly opposite directions from the sphere's center.)
* Invariance of dimension: if non-empty open subsets $U\; \backslash subset\; \backslash mathbb\; R^m$ and $V\; \backslash subset\; \backslash mathbb\; R^n$ are homeomorphic, then $m=n$.

** Application in science and engineering **

In topological data analysis, data sets are regarded as a point cloud sampling of a manifold or algebraic variety embedded in Euclidean space. By linking nearest neighbor points in the cloud into a triangulation, a simplicial approximation of the manifold is created and its simplicial homology may be calculated. Finding techniques to robustly calculate homology using various triangulation strategies over multiple length scales is the topic of persistent homology.
In sensor networks, sensors may communicate information via an ad-hoc network that dynamically changes in time. To understand the global context of this set of local measurements and communication paths, it is useful to compute the homology of the network topology to evaluate, for instance, holes in coverage.
In dynamical systems theory in physics, Poincaré was one of the first to consider the interplay between the invariant manifold of a dynamical system and its topological invariants. Morse theory relates the dynamics of a gradient flow on a manifold to, for example, its homology. Floer homology extended this to infinite-dimensional manifolds. The KAM theorem established that periodic orbits can follow complex trajectories; in particular, they may form braids that can be investigated using Floer homology.
In one class of finite element methods, boundary-value problems for differential equations involving the Hodge-Laplace operator may need to be solved on topologically nontrivial domains, for example, in electromagnetic simulations. In these simulations, solution is aided by fixing the cohomology class of the solution based on the chosen boundary conditions and the homology of the domain. FEM domains can be triangulated, from which the simplicial homology can be calculated.

** Software **

Various software packages have been developed for the purposes of computing homology groups of finite cell complexes

Linbox

is a C++ library for performing fast matrix operations, including Smith normal form; it interfaces with bot

Gap

an

Maple

Chomp

CAPD::Redhom

an

Perseus

are also written in C++. All three implement pre-processing algorithms based on simple-homotopy equivalence and discrete Morse theory to perform homology-preserving reductions of the input cell complexes before resorting to matrix algebra

Kenzo

is written in Lisp, and in addition to homology it may also be used to generate presentations of homotopy groups of finite simplicial complexes. Gmsh includes a homology solver for finite element meshes, which can generate Cohomology bases directly usable by finite element software.

** See also **

* Betti number
* Cycle space
* Eilenberg–Steenrod axioms
* Extraordinary homology theory
* Homological algebra
* Homological conjectures in commutative algebra
* Homological connectivity
* Homological dimension
* Künneth theorem
* List of cohomology theories - also has a list of homology theories
* Poincaré duality
* De Rham cohomology

** Notes **

** References **

*
*
*.
*. Detailed discussion of homology theories for simplicial complexes and manifolds, singular homology, etc.
*
*.
*.
*.
*
*.

External links

''Homology group'' at Encyclopaedia of Mathematics

{{Authority control

Generalization

A manifold with boundary or open manifold is topologically distinct from a closed manifold and can be created by making a cut in any suitable closed manifold. For example, the disk or 1-ball $B^1$ is bounded by a circle $S^1$. It may be created by cutting a trivial cycle in any 2-manifold and keeping the piece removed, by piercing the sphere and stretching the puncture wide, or by cutting the projective plane. It can also be seen as filling-in the circle in the plane. When two cycles can be continuously deformed into each other, then cutting along one produces the same shape as cutting along the other, up to some bending and stretching. In this case the two cycles are said to be ''homologous'' or to lie in the same ''homology class''. Additionally, if one cycle can be continuously deformed into a combination of other cycles, then cutting along the initial cycle is the same as cutting along the combination of other cycles. For example, cutting along a figure 8 is equivalent to cutting along its two lobes. In this case, the figure 8 is said to be homologous to the sum of its lobes. Two open manifolds with similar boundaries (up to some bending and stretching) may be glued together to form a new manifold which is their connected sum. This geometric analysis of manifolds is not rigorous. In a search for increased rigour, Poincaré went on to develop the simplicial homology of a triangulated manifold and to create what is now called a chain complex. These chain complexes (since greatly generalized) form the basis for most modern treatments of homology. In such treatments a cycle need not be continuous: a 0-cycle is a set of points, and cutting along this cycle corresponds to puncturing the manifold. A 1-cycle corresponds to a set of closed loops (an image of the 1-manifold $S^1$). On a surface, cutting along a 1-cycle yields either disconnected pieces or a simpler shape. A 2-cycle corresponds to a collection of embedded surfaces such as a sphere or a torus, and so on. Emmy Noether and, independently, Leopold Vietoris and Walther Mayer further developed the theory of algebraic homology groups in the period 1925–28. The new combinatorial topology formally treated topological classes as abelian groups. Homology groups are finitely generated abelian groups, and homology classes are elements of these groups. The Betti numbers of the manifold are the rank of the free part of the homology group, and the non-orientable cycles are described by the torsion part. The subsequent spread of homology groups brought a change of terminology and viewpoint from "combinatorial topology" to "algebraic topology". Algebraic homology remains the primary method of classifying manifolds.

Linbox

is a C++ library for performing fast matrix operations, including Smith normal form; it interfaces with bot

Gap

an

Maple

Chomp

CAPD::Redhom

an

Perseus

are also written in C++. All three implement pre-processing algorithms based on simple-homotopy equivalence and discrete Morse theory to perform homology-preserving reductions of the input cell complexes before resorting to matrix algebra

Kenzo

is written in Lisp, and in addition to homology it may also be used to generate presentations of homotopy groups of finite simplicial complexes. Gmsh includes a homology solver for finite element meshes, which can generate Cohomology bases directly usable by finite element software.

External links

''Homology group'' at Encyclopaedia of Mathematics

{{Authority control