A \(k\)-dimensional simplex (\(k\)-simplex for short) is the convex hull \(v_0v_1\cdots v_k\) of \(k+1\) affinely independent points \(v_0, v_1, \dots,v_k\) in the Euclidean space \(\mathbb{R}^n\) which are called its vertices. A face of \(\sigma=v_0\cdots v_k\) of a non-empty subset of the vertices of \(\sigma\).
A simplicial complex \(\Sigma\) is a finite collection of simplices such that:
A \(d\)-dimensional complex (\(d\)-complex) is a complex such that the maximum of the dimensions of its simplices is \(d\). We denote by \(\Sigma_k\) the set of all the \(k\)-simplices in \(\Sigma\).
Homology aims at detecting \(k\)-dimensional holes in a shape, \(k\)-holes for short. A \(k\)-hole is detected by collecting the \(k\)-simplices around it. So for example:
In the following, we describe the algebraic formulation that allows for detecting holes. For each notion introduced, we will furnish the corresponding geometrical example on our interactive figure.
The \(k\)-chain is the basic element we are going to consider. A \(k\)-chain is a formal sum of \(k\)-simplices on \(\Sigma_k\). The face relation among simplices induces a notion of boundary for \(k\)-chains. The boundary map \(\partial_k:C_k(\Sigma)\longrightarrow C_{k-1}(\Sigma)\) is defined, over each simplex \(\sigma=v_0\cdots v_k\), by $$ \partial_k(\sigma):=\hat{\sigma}_0+\dots+\hat{\sigma}_k, \qquad \quad \mbox{ for } i=0,\dots,k $$ where \(\hat{\sigma}_i\) is the convex hull of all vertices of \(\sigma\) but \(v_i\). Then, \(\partial_k\) is extended to all \(k\)-chains by linearity and by removing each pair of simplices appearing twice.
Given a \(k\)-chain \(c\), its \((k-1)\)-boundary is \(\partial_k(c)\) and the the image of the map \(\partial_k\) is denoted by \(B_{k-1}(\Sigma)\).
Among all the possible chains on a simplicial complex, we want to recognize a specific type of chains. A \(k\)-cycle is a \(k\)-chain \(c\) such that \(\partial_k(c)=0\). The kernel of \(\partial_k\) is denoted by \(Z_k(\Sigma)\).
In the following example, we can study different types of chains and boundaries. Lets consider the 1-chain composed by a set of edges. Its 0-boundary corresponds to the set of vertices that appears as a face of an odd number of edges.
In this case, we have only one 2-chain composed by a single triangle and its 1-boundary is composed by all its three edges.
Identifying the holes of an object means to discriminate between the cycles that are the boundary of some chain and those that are not. As we already know, the 1-chain around the triangle is a boundary, while the 1-chain around the hole is not. Notice that we may have multiple non-boundary chains representing the same hole.
It can be easily checked that \(B_k(\Sigma)\subseteq Z_k(\Sigma)\) by noticing that, for each \((k+1)\)-simplex \(\sigma\), each simplex in \(\partial_k(\partial_{k+1}(\sigma))\) appears exactly an even number of times, thus giving always a null contribute.
This allows us to define, the \(k\)-homology space of \(\Sigma\) as $$ H_k(\Sigma):= \frac{Z_k(\Sigma)}{B_k(\Sigma)} $$
The quotient over the \(k\)-boundaries avoids redundancies, thus letting all the possible \(k\)-chains around the same \(k\)-hole to fall in the same homology class.
For any homology degree \(k\), it holds that \(H_k(\Sigma)\) is a finite dimensional vector space. This means that the \(k\)-homology of a simplicial complex admits a finite basis of different \(k\)-homology classes \(h_1,\dots,h_{\beta_k}\) entirely expressing \(H_k(\Sigma)\). In formulas, $$ H_k(\Sigma)\cong \underbrace{\mathbb{Z}_2 \oplus\dots\oplus \mathbb{Z}_2}_{\beta_k \mbox{ copies of } \mathbb{Z}_2} $$
The integer \(\beta_k\) indicates a homological invariant, which is called the \(k\)-Betti number. Intuitively, \(\beta_k\) corresponds to the number of \(k\)-dimensional holes in the simplicial complex.
Theoretical basis. Building the simplicial chains in the way we have described is formally referred as build the chains by taking coefficients over \(\mathbb{Z}_2\). This is a common practice when working with simplicial homology in real applications since, working with \(\mathbb{Z}_2\), makes calculations much easier.
However, homology can be defined with coefficients in any Abelian group. The complete homological information uses \(\mathbb{Z}\) as coefficient group, which is able of dealing with the presence of torsion in a shape. It can be proven (see [Hat02] , Chapter X) that simplicial complexes embeddable in \(\mathbb{R}^3\) have no torsion and thus, their \(\mathbb{Z}\)-homology groups reduce to \(\mathbb{Z}_2\)-homology.