From Graphs to Higher Dimensions
A plane graph has vertices, edges, and faces, which are objects of dimension 0, 1, and 2. In
Planar Graphs & Euler's Formula, the
interplay among these three types of objects produced Euler's formula \(V - E + F = 2\), a
topological invariant that depends only on the surface of embedding. In
Incidence
Structure & Cycle/Cut Spaces, we encoded the relationship between vertices and
edges algebraically through the oriented incidence matrix \(\boldsymbol{B}\), which coincides
with the boundary operator \(\partial_1\) up to an overall sign.
We now generalize both ideas simultaneously. A \(k\)-simplex is the
\(k\)-dimensional analogue of a vertex (\(k=0\)), an edge (\(k=1\)), or a filled triangle
(\(k=2\)), and a simplicial complex is a space assembled from simplices of
various dimensions, glued together along their faces.
Simplicial complexes are the gateway to algebraic topology. We replace
continuous spaces with combinatorial skeletons built from simplices, and we then apply kernels,
images, and quotients from linear
algebra to extract topological information. The payoff will come in the sequel on
Homology,
where we measure "holes" of each dimension by computing
\(H_k = \ker \partial_k / \operatorname{im} \partial_{k+1}\).
The \(k\)-Simplex
Definition: Geometric \(k\)-Simplex
Let \(v_0, v_1, \dots, v_k \in \mathbb{R}^d\) be \(k+1\) points in general
position (that is, affinely independent, meaning that the vectors
\(v_1 - v_0, v_2 - v_0, \dots, v_k - v_0\) are linearly independent). The geometric
\(k\)-simplex spanned by these vertices is the convex hull
\[
\begin{align*}
\sigma
&= [v_0, v_1, \dots, v_k] \\\\
&= \left\{ \sum_{i=0}^{k} \lambda_i v_i \Bigm| \lambda_i \geq 0, \sum_{i=0}^{k} \lambda_i = 1 \right\}.
\end{align*}
\]
The integer \(k\) is called the dimension of \(\sigma\).
The coordinates \((\lambda_0, \lambda_1, \dots, \lambda_k)\) satisfying the constraints
above are called barycentric coordinates. They give every point in the
simplex as a weighted average of the vertices, with non-negative weights summing to one.
The low-dimensional cases are familiar:
- A 0-simplex is a single point (vertex).
- A 1-simplex is a line segment (edge).
- A 2-simplex is a filled triangle.
- A 3-simplex is a solid tetrahedron.
The affine-independence condition ensures that the simplex does not degenerate. A 2-simplex
requires three non-collinear points, a 3-simplex requires four non-coplanar points, and so on. A
\(k\)-simplex lives in an ambient space of dimension at least \(k\).
Faces
Definition: Face of a Simplex
A face of the simplex \(\sigma = [v_0, v_1, \dots, v_k]\) is any
simplex spanned by a non-empty subset of the vertices. Specifically, for each
subset \(\{v_{i_0}, v_{i_1}, \dots, v_{i_j}\} \subseteq \{v_0, \dots, v_k\}\),
the simplex \(\tau = [v_{i_0}, \dots, v_{i_j}]\) is a \(j\)-face
of \(\sigma\). A face \(\tau\) is called proper if
\(\tau \neq \sigma\).
A \(k\)-simplex has exactly \(\binom{k+1}{j+1}\) faces of dimension \(j\), for
\(0 \leq j \leq k\). In total, it has \(2^{k+1} - 1\) non-empty faces (every non-empty subset of
the \(k+1\) vertices defines a face). For instance, a 2-simplex \([v_0, v_1, v_2]\) has three
0-faces (the vertices), three 1-faces (the edges \([v_0, v_1]\), \([v_0, v_2]\),
\([v_1, v_2]\)), and itself as the unique 2-face, for seven faces in all.
Abstract Simplicial Complexes
Just as a graph can be studied as a purely combinatorial object \(G = (V, E)\) without
reference to any embedding in \(\mathbb{R}^d\), simplicial complexes admit a purely
combinatorial formulation.
Definition: Abstract Simplicial Complex
An abstract simplicial complex on a finite vertex set \(V\) is a
collection \(K\) of non-empty subsets of \(V\) (called simplices)
satisfying:
- Every singleton \(\{v\}\) with \(v \in V\) belongs to \(K\).
- If \(\sigma \in K\) and \(\tau \subseteq \sigma\) with \(\tau \neq \emptyset\),
then \(\tau \in K\). (Every non-empty face of a simplex is in \(K\).)
The dimension of a simplex \(\sigma \in K\) with \(|\sigma| = k+1\)
is \(k\). The dimension of the complex \(K\) is
\(\dim K = \max\{k : K \text{ contains a } k\text{-simplex}\}\).
The face condition (also called the downward closure or
hereditary property) is the defining constraint. If a filled triangle
\(\{a, b, c\}\) is in \(K\), then all three of its edges \(\{a,b\}\), \(\{a,c\}\), \(\{b,c\}\)
and all three of its vertices must also be in \(K\). There is no "floating" high-dimensional
simplex without its skeleton.
Graphs as 1-Dimensional Complexes
Every simple graph \(G = (V, E)\) is naturally an abstract simplicial complex \(K_G\) whose
dimension is at most 1 (exactly 1 when \(E \neq \emptyset\)). The simplices of \(K_G\) are the
singletons \(\{v\}\) for \(v \in V\) (the 0-simplices) and the edges \(\{u, v\}\) for
\(\{u,v\} \in E\) (the 1-simplices). The face condition holds trivially, since every edge
contains its two endpoints. From this viewpoint, the graph
theory we have developed so far, from basic structure through
trees,
planarity, and
incidence structure, is the theory of
1-dimensional simplicial complexes.
The passage from graphs to higher-dimensional complexes is the passage from recording only
pairwise relationships (\(\{u,v\} \in E\)) to recording higher-order
relationships. A 2-simplex \(\{a, b, c\}\) asserts that \(a\), \(b\), and \(c\)
participate in a simultaneous three-way interaction, not merely three separate pairwise ones.
This distinction is invisible to a graph but central to the topology of the complex.
Geometric Realization
An abstract complex can always be embedded geometrically.
Theorem: Geometric Realization
Every abstract simplicial complex \(K\) of dimension \(d\) can be geometrically
realized in \(\mathbb{R}^{2d+1}\). That is, there exists a collection of geometric
simplices in \(\mathbb{R}^{2d+1}\) whose combinatorial structure (vertex sets and
face relations) is exactly \(K\).
The proof places the vertices on the moment curve \(t \mapsto (t, t^2, \dots, t^{2d+1})\)
at distinct parameter values. The Vandermonde structure of this curve guarantees that any
\(2d + 2\) or fewer points on it are in general position, so every \(d\)-simplex in \(K\)
is non-degenerate. Moreover, since two simplices in \(K\) have total vertex count at most
\(2d + 2\) and therefore sit in general position together, their convex hulls intersect
exactly in the convex hull of their common vertices, that is, in their common face (and
they are disjoint if they share no vertex). Hence the geometric realization is well-defined
as a simplicial complex.
For our purposes, the theorem guarantees that no generality is lost in working abstractly. Every
abstract complex has a concrete geometric manifestation, and all topological invariants (Euler
characteristic, homology groups) can be computed from the combinatorics alone.
Constructing Complexes from Data
In combinatorics, simplicial complexes arise by declaring which higher-order interactions exist.
In applications, particularly Topological Data Analysis (TDA), we start with
raw data (a point cloud, a graph, a metric space) and construct a simplicial complex
from it. The three constructions below are the workhorses of the field.
The Clique Complex (Flag Complex)
Definition: Clique Complex
Let \(G = (V, E)\) be a simple graph. The clique complex (or flag
complex) of \(G\) is the abstract simplicial complex
\[
\operatorname{Cl}(G) = \bigl\{\sigma \subseteq V : \sigma \text{ is a non-empty clique of } G\bigr\}.
\]
Here a clique of \(G\) is a set of vertices in which every two distinct
vertices are joined by an edge.
The clique complex is "maximally filled". It contains a \(k\)-simplex whenever all
\(\binom{k+1}{2}\) pairwise edges are present. No independent judgment about higher-order
interactions is needed, since they are inferred from pairwise data. This makes the clique
complex the cheapest way to lift a graph into a simplicial complex, but also the most
aggressive, because it creates high-dimensional simplices wherever complete subgraphs occur.
The Vietoris-Rips Complex
Definition: Vietoris-Rips Complex
Let \((X, d)\) be a finite metric space and let \(\varepsilon \gt 0\). The
Vietoris-Rips complex at scale \(\varepsilon\) is the clique complex of
the \(\varepsilon\)-neighborhood graph:
\[
\operatorname{VR}(X, \varepsilon) = \operatorname{Cl}(G_\varepsilon),
\quad \text{where} \quad
G_\varepsilon = (X, \{\{x,y\} : x \neq y, d(x,y) \leq \varepsilon\}).
\]
A non-empty subset \(\sigma \subseteq X\) is a simplex of
\(\operatorname{VR}(X, \varepsilon)\) if and only if every pair of distinct points in
\(\sigma\) is within distance \(\varepsilon\).
The Vietoris-Rips complex converts a point cloud into a simplicial complex using a single
parameter \(\varepsilon\). We connect points that are close and then fill in all cliques. It is
computationally convenient because membership in the complex is determined entirely by pairwise
distances, so no higher-order geometric tests are needed.
The Čech Complex
Definition: Čech Complex
Let \(X = \{x_1, \dots, x_n\} \subset \mathbb{R}^d\) and let \(\varepsilon \gt 0\). The
Čech complex at scale \(\varepsilon\) is
\[
\check{C}(X, \varepsilon) = \bigl\{\sigma \subseteq X : \sigma \neq \emptyset,
\textstyle\bigcap_{x \in \sigma} B(x, \varepsilon/2) \neq \emptyset\bigr\},
\]
where \(B(x, r)\) is the closed ball of radius \(r\) centered at \(x\). A non-empty subset
\(\sigma\) is a simplex if and only if the balls of radius \(\varepsilon/2\) around the
points of \(\sigma\) have a common intersection. The choice of radius \(\varepsilon/2\)
(rather than \(\varepsilon\)) aligns the scale with the Vietoris-Rips complex. Two points at
distance exactly \(\varepsilon\) sit on tangent balls of radius \(\varepsilon/2\), so the
same \(\varepsilon\) parametrizes edge formation in both constructions.
The Čech complex has a deep topological justification via the Nerve
Theorem of algebraic topology. Every ball \(B(x, \varepsilon/2)\) is convex, so every
non-empty intersection of finitely many of them is convex and hence contractible (continuously
deformable to a point). In other words, the balls form a good cover of their union. The
Nerve Theorem asserts that the nerve of a good cover (the complex whose simplices are the
collections of sets in the cover with a common point), which here is exactly
\(\check{C}(X, \varepsilon)\), is homotopy equivalent to the union
\(\bigcup_{x \in X} B(x, \varepsilon/2)\). Thus the Čech complex captures the "true"
topology of the thickened point cloud. (We state this without proof. The result is foundational
in computational topology.)
However, the intersection test is more expensive than the pairwise-distance test of the Rips
complex, since checking whether \(k+1\) balls have a common point requires geometric computation
beyond pairwise distances.
For a finite \(X \subset \mathbb{R}^d\) with the Euclidean distance and any
\(\varepsilon \gt 0\), the Čech and Rips complexes satisfy the inclusions
\[
\check{C}(X, \varepsilon)
\subseteq \operatorname{VR}(X, \varepsilon)
\subseteq \check{C}(X, 2\varepsilon),
\]
so the Rips complex sandwiches the Čech complex at comparable scales. The first inclusion
follows from the triangle inequality. If \(\sigma \in \check{C}(X, \varepsilon)\), some point
\(p\) lies within distance \(\varepsilon/2\) of every point of \(\sigma\), so any two points of
\(\sigma\) lie within distance \(\varepsilon/2 + \varepsilon/2 = \varepsilon\) of each other.
The second follows from observing that, for \(\sigma \in \operatorname{VR}(X, \varepsilon)\),
any vertex of \(\sigma\) is itself a common point of the balls of radius \(\varepsilon\)
centered at the other vertices. In practice, the Rips complex is preferred for computation, and
the Čech complex provides the theoretical guarantee.
Filtrations and Persistence
For a fixed \(\varepsilon\), the Rips and Čech complexes produce a single snapshot.
The central idea of TDA is to vary \(\varepsilon\) continuously and track how the
topology changes.
Definition: Filtration
A subcomplex of a simplicial complex \(K\) is a subset \(L \subseteq K\)
that contains every non-empty face of each of its simplices. A filtration
of \(K\) is a nested sequence of subcomplexes
\[
\emptyset = K_0 \subseteq K_1 \subseteq K_2 \subseteq \cdots \subseteq K_m = K
\]
indexed by a parameter (typically the scale \(\varepsilon\)).
As \(\varepsilon\) increases from 0, new edges and higher-dimensional simplices are born,
connected components merge, loops form and are later filled in by 2-simplices.
Persistent homology, which we take up once homology groups are available,
tracks the "birth" and "death" of each topological feature across the filtration, recording the
result in a persistence diagram. Features that persist over a long range of
\(\varepsilon\) are considered genuine topological signal, while short-lived features are noise.
This is the mathematical foundation of modern TDA pipelines.
Connection to Topological Data Analysis
The pipeline from raw data to topological features is: point cloud
\(\xrightarrow{\varepsilon}\) Rips/Čech complex
\(\xrightarrow{\partial_k}\) chain complex \(\xrightarrow{H_k}\)
Betti numbers \(\xrightarrow{\text{vary } \varepsilon}\)
persistence diagram. This pipeline treats data as a geometric object and
extracts shape descriptors that do not change under rigid motions of the data and change
little under small perturbations of it. In machine learning, persistence diagrams serve as
features for classification and regression tasks on point-cloud data. Applications range
from protein structure analysis to sensor network coverage. The constructions of this
section supply the first arrow, and the boundary operator
developed later on this page supplies the second. The remaining arrows require the homology
theory of the next page.
The f-vector and Euler Characteristic
In Planar
Graphs, we defined the Euler characteristic of a plane graph as
\(\chi = V - E + F\), which equals 2 for every connected plane graph, counting objects of
dimension 0 (vertices), 1 (edges), and 2 (faces) with alternating signs. Simplicial complexes
have objects at every dimension, and the same alternating-sign pattern generalizes naturally.
The f-vector
Definition: f-vector
Let \(K\) be a simplicial complex of dimension \(d\). The
f-vector of \(K\) is the tuple
\[
\boldsymbol{f}(K) = (f_0, f_1, \dots, f_d),
\]
where \(f_k\) is the number of \(k\)-simplices in \(K\).
For a graph \(G = (V, E)\) viewed as a 1-complex, the f-vector is simply \((|V|, |E|)\). For a
triangulated surface, the f-vector is \((V, E, F)\), the counts that appear in Euler's formula.
Example: The f-vector of the Tetrahedron Boundary
Consider the boundary of a tetrahedron: four vertices, six edges, and four triangular faces
(but no solid 3-simplex). As an abstract simplicial complex, this is
\(K = \binom{[4]}{1} \cup \binom{[4]}{2} \cup \binom{[4]}{3}\), where \(\binom{[4]}{j}\)
denotes the collection of \(j\)-element subsets of \([4] = \{1,2,3,4\}\). Thus \(K\)
consists of all non-empty subsets of \([4]\) of size at most 3. The f-vector is
\[
\boldsymbol{f} = (f_0, f_1, f_2) = (4, 6, 4).
\]
The Euler Characteristic of a Complex
Definition: Euler Characteristic
The Euler characteristic of a simplicial complex \(K\) with f-vector
\((f_0, f_1, \dots, f_d)\) is the alternating sum
\[
\begin{align*}
\chi(K)
&= \sum_{k=0}^{d} (-1)^k f_k \\\\
&= f_0 - f_1 + f_2 - f_3 + \cdots + (-1)^d f_d.
\end{align*}
\]
For the boundary of the tetrahedron: \(\chi = 4 - 6 + 4 = 2\). This agrees with Euler's formula
for the sphere, as it must, because the boundary of a tetrahedron is homeomorphic to \(S^2\).
For a graph (1-complex) with \(c\) connected components, \(\chi = V - E\). The dimension formula
from Cycle/Cut
Spaces gives \(\dim Z_1 = E - V + c\), so
\[
\chi = V - E = c - \dim Z_1.
\]
When the graph is connected, \(\chi = 1 - \dim Z_1\). In this case the Euler characteristic
detects the cycle rank.
The Euler characteristic is a topological invariant. If two complexes are
homeomorphic
(as topological spaces via their geometric realizations), they have the same \(\chi\). This
statement has non-trivial content. Although \(\chi\) is computed from a simple counting
formula, it encodes deep topological information. The full explanation requires homology. The
Euler-Poincaré theorem on the next page will show that
\(\chi(K) = \sum_{k} (-1)^k \beta_k\), where \(\beta_k = \dim H_k\) are the Betti
numbers. Homology groups are themselves topological invariants (a deep theorem that
we state without proof), so the alternating sum of the Betti numbers is a topological
invariant as well.
Example: The Solid Tetrahedron
The solid tetrahedron (including the 3-simplex itself) has f-vector
\((f_0, f_1, f_2, f_3) = (4, 6, 4, 1)\). Its Euler characteristic is
\(\chi = 4 - 6 + 4 - 1 = 1\). This equals the Euler characteristic of a point (a single
0-simplex has \(\chi = 1\)), which is consistent. The solid tetrahedron is contractible, and
contractible spaces always have \(\chi = 1\) (a consequence of the homotopy invariance of
homology, which we do not prove here).
Example: The Torus
A minimal triangulation of the torus uses \(f_0 = 7\) vertices, \(f_1 = 21\) edges, and
\(f_2 = 14\) triangles. The Euler characteristic is \(\chi = 7 - 21 + 14 = 0\). This matches
the formula \(\chi = 2 - 2g\) for an orientable surface of genus \(g\). The torus has
\(g = 1\), which gives \(\chi = 0\). For comparison, the sphere has \(g = 0\) and
\(\chi = 2\), and the double torus has \(g = 2\) and \(\chi = -2\).
Orientation and the Boundary Operator
In the previous page, we oriented edges and defined the
incidence matrix \(\boldsymbol{B}\), which agrees up to sign with the boundary operator
\(\partial_1\) from 1-chains (edge space) to 0-chains (vertex space). We now generalize. An
oriented \(k\)-simplex carries a sign determined by the ordering of its
vertices, and the boundary operator \(\partial_k\) maps \(k\)-chains to
\((k-1)\)-chains by removing one vertex at a time, with alternating signs.
Oriented Simplices
Definition: Oriented Simplex
An oriented \(k\)-simplex is an equivalence class of orderings of the
vertex set \(\{v_0, v_1, \dots, v_k\}\), where two orderings are equivalent if they differ
by an even permutation. For \(k \geq 1\) there are exactly two equivalence
classes, and they are the two possible orientations. A 0-simplex has a single ordering and
hence a single orientation. We write \([v_0, v_1, \dots, v_k]\) for the oriented simplex
determined by the given ordering, and adopt the convention
\[
[v_{\pi(0)}, v_{\pi(1)}, \dots, v_{\pi(k)}]
= \operatorname{sgn}(\pi) \cdot [v_0, v_1, \dots, v_k]
\]
for any permutation \(\pi \in S_{k+1}\).
In Combinatorics, we studied the sign
(parity) of permutations. Even permutations preserve orientation, and odd permutations reverse
it. For an edge (\(k=1\)), there are two orderings of the two vertices, and
\([a, b] = -[b, a]\), since a transposition is an odd permutation. This is exactly the
orientation convention we used for edges.
Choosing \(a \to b\) versus \(b \to a\) differs by a sign.
For a 2-simplex (triangle), the six orderings of \(\{a, b, c\}\) split into
two orientation classes:
\[
\begin{align*}
+[a,b,c] &= [b,c,a] = [c,a,b], \\\\
-[a,b,c] &= [b,a,c] = [a,c,b] = [c,b,a].
\end{align*}
\]
If \(a\), \(b\), \(c\) are placed counterclockwise in a plane embedding, the positive class
corresponds to the counterclockwise traversal of the triangle and the negative class to the
clockwise one. The choice is a convention. The essential point is that once we fix an
orientation for each simplex, the boundary operator is well-defined.
The Boundary Operator
Definition: Boundary Operator \(\partial_k\)
For an oriented \(k\)-simplex \(\sigma = [v_0, v_1, \dots, v_k]\) with
\(k \geq 1\), the boundary of \(\sigma\) is the alternating sum of
its \((k-1)\)-dimensional faces:
\[
\begin{align*}
\partial_k(\sigma)
&= \partial_k [v_0, v_1, \dots, v_k] \\\\
&= \sum_{i=0}^{k} (-1)^i \, [v_0, \dots, \hat{v}_i, \dots, v_k],
\end{align*}
\]
where \(\hat{v}_i\) denotes the omission of vertex \(v_i\). By convention,
\(\partial_0 = 0\) (the boundary of a vertex is empty).
The formula is computed from one ordering of the vertices, so we must check that it respects the
sign convention for oriented simplices. Swap two adjacent vertices \(v_j\) and \(v_{j+1}\). For
\(i \neq j, j+1\), the face obtained by omitting \(v_i\) keeps its coefficient \((-1)^i\) but
now lists \(v_j\) and \(v_{j+1}\) in the opposite order, so it changes sign. Omitting the vertex
in position \(j\) of the swapped ordering removes \(v_{j+1}\) and produces the face that
previously carried the coefficient \((-1)^{j+1}\), now with the coefficient \((-1)^j\). The same
happens for position \(j+1\), so the two faces that omit \(v_j\) or \(v_{j+1}\) also change
sign. Hence swapping two adjacent vertices negates \(\partial_k \sigma\). Since every
permutation is a product of adjacent transpositions and the sign of a permutation is
multiplicative, we obtain
\[
\partial_k [v_{\pi(0)}, \dots, v_{\pi(k)}] = \operatorname{sgn}(\pi) \, \partial_k [v_0, \dots, v_k],
\]
so \(\partial_k\) is well defined on oriented simplices.
Let us verify that this generalizes what we already know.
Example: \(\partial_1\) and the Incidence Matrix
For a 1-simplex (oriented edge) \([a, b]\):
\[
\partial_1 [a, b] = (-1)^0 [b] + (-1)^1 [a] = [b] - [a].
\]
The boundary of \([a, b]\) is "head minus tail." The
oriented
incidence matrix used the opposite sign convention. The entry \(B_{v,e}\) is \(+1\) at
the tail and \(-1\) at the head, so the column of \(\boldsymbol{B}\) for edge \(a \to b\)
encodes \([a] - [b] = -\partial_1[a,b]\). Thus \(\boldsymbol{B}\), viewed as a linear map
\(\mathbb{R}^E \to \mathbb{R}^V\), equals \(-\partial_1\). The sign difference is a harmless
convention, because the kernel \(Z_1 = \ker \partial_1 = \ker \boldsymbol{B}\) and the image
\(\operatorname{im} \partial_1 = \operatorname{im} \boldsymbol{B}\) are identical regardless
of the global sign.
Example: \(\partial_2\), the Boundary of a Triangle
For a 2-simplex \([a, b, c]\):
\[
\partial_2 [a, b, c] = [b, c] - [a, c] + [a, b].
\]
Since \(-[a,c] = [c,a]\), we can rewrite this as
\[
\begin{align*}
\partial_2 [a,b,c]
&= [a,b] + [b,c] - [a,c] \\\\
&= [a,b] + [b,c] + [c,a].
\end{align*}
\]
The right-hand side is the oriented boundary cycle of the triangle, traversed in the
direction \(a \to b \to c \to a\), and it represents a closed loop around the triangle. This
1-chain is a 1-cycle, that is, an element of \(Z_1 = \ker \partial_1\),
because applying \(\partial_1\) gives \(([b] - [a]) + ([c] - [b]) + ([a] - [c]) = 0\).
Chain Groups
The boundary operator is a linear map. To make this precise, we introduce
chain groups.
Definition: Chain Group
The \(k\)-th chain group of a simplicial complex \(K\) (with
coefficients in \(\mathbb{R}\)) is the real
vector space
\[
C_k(K; \mathbb{R}) = \mathbb{R}^{f_k},
\]
with one basis vector for each \(k\)-simplex of \(K\), after fixing
a choice of orientation for each. An element
\(c \in C_k\) is a formal \(\mathbb{R}\)-linear combination of these oriented
\(k\)-simplices, called a \(k\)-chain. (The opposite orientation
is represented by the negative of the basis vector, not by a separate
basis element.)
For \(k = 0\), the space \(C_0 = \mathbb{R}^{f_0}\) of formal combinations of vertices is the
"vertex space" \(\mathbb{R}^V\) from the previous page.
For \(k = 1\), the space \(C_1 = \mathbb{R}^{f_1}\) is the edge space \(\mathbb{R}^E\). For
\(k \gt \dim K\) there are no \(k\)-simplices, so \(C_k = 0\). The boundary operator is then a
linear map \(\partial_k : C_k \to C_{k-1}\), defined on basis elements by the alternating-sum
formula above and extended by linearity.
We equip each \(C_k\) with the inner product that makes the chosen oriented basis
orthonormal. Under this convention, the matrix transpose \(\partial_k^\top\) is exactly
the adjoint of \(\partial_k\), and the Laplacians defined later in this section are
symmetric positive semi-definite.
Classical algebraic topology typically works over \(\mathbb{Z}\), where the homology groups can
detect torsion (for example, the twisted cycle in \(\mathbb{R}P^2\)). We use
\(\mathbb{R}\) throughout, which erases torsion but gives us genuine vector spaces on which
inner products, spectral decompositions, and Laplacians are defined. Topological Data Analysis
likewise computes over a field (in practice often a finite field such as
\(\mathbb{Z}/2\mathbb{Z}\)), and real coefficients are the natural setting for Simplicial Neural
Networks, the applications toward which this page is oriented.
The Chain Complex
Assembling the chain groups and boundary maps, we obtain a sequence of vector spaces connected
by linear maps:
\[
\begin{align*}
&\cdots \xrightarrow{\partial_{k+1}} C_k
\xrightarrow{\partial_k} C_{k-1} \xrightarrow{\partial_{k-1}} \cdots \\\\
&\cdots \xrightarrow{\partial_2} C_1 \xrightarrow{\partial_1} C_0 \xrightarrow{\partial_0} 0.
\end{align*}
\]
This sequence is called the chain complex of \(K\). Its most important property
is the subject of the next theorem.
The Fundamental Property: \(\partial^2 = 0\)
Theorem: \(\partial_{k-1} \circ \partial_k = 0\)
For every \(k \geq 1\), the composition of two successive boundary operators is
the zero map:
\[
\partial_{k-1} \circ \partial_k = 0
\quad \Longleftrightarrow \quad
\operatorname{im}(\partial_k) \subseteq \ker(\partial_{k-1}).
\]
Proof:
For \(k = 1\) the claim holds trivially because \(\partial_0 = 0\), so let \(k \geq 2\).
By linearity, it suffices to check on a basis element
\(\sigma = [v_0, v_1, \dots, v_k]\). We compute:
\[
\begin{align*}
\partial_{k-1}(\partial_k(\sigma))
&= \partial_{k-1}\left(\sum_{i=0}^{k} (-1)^i [v_0, \dots, \hat{v}_i, \dots, v_k]\right) \\\\
&= \sum_{i=0}^{k} (-1)^i \sum_{\substack{j=0 \\ j \neq i}}^{k} (-1)^{j'}
[v_0, \dots, \hat{v}_i, \dots, \hat{v}_j, \dots, v_k],
\end{align*}
\]
where \(j'\) is the position of \(v_j\) in the sequence after \(v_i\) has been removed, so
that \(j' = j\) if \(j \lt i\) and \(j' = j - 1\) if \(j \gt i\). Each pair \(\{i, j\}\)
with \(i \neq j\) contributes two terms to the double sum, one from the \((i, j)\) order and
one from the \((j, i)\) order. Both terms are multiples of the same oriented
\((k-2)\)-simplex, obtained by omitting \(v_i\) and \(v_j\) and keeping the remaining
vertices in their original order. For \(i \lt j\), the \((i,j)\) term has sign
\((-1)^i(-1)^{j-1}\) and the \((j,i)\) term has sign \((-1)^j(-1)^i\). Their sum is
\[
(-1)^{i+j-1} + (-1)^{i+j} = (-1)^{i+j-1}(1 - 1) = 0.
\]
Since every pair cancels, the entire double sum vanishes.
The theorem is the non-trivial sign-cancellation result
previewed for graphs. For graphs
(\(k = 1\)), the composition \(\partial_0 \circ \partial_1 = 0\) was trivially true because we
set \(\partial_0 = 0\). For \(k \geq 2\), the cancellation is genuine. It is the alternating
signs in the boundary formula, inherited from the parity of permutations, that make every pair
of omitted vertices cancel. This cancellation is the algebraic reason that "the boundary of a
boundary is empty."
We verified a concrete instance above. The chain \(\partial_2[a,b,c] = [a,b] + [b,c] + [c,a]\)
is a closed loop, and \(\partial_1\) of a closed loop sums to zero at every vertex. The theorem
guarantees this happens in every dimension.
Matrix Representation of \(\partial_k\)
Once we choose an ordering and orientation for the simplices, each boundary operator
\(\partial_k\) is represented by a matrix \([\partial_k] \in \mathbb{R}^{f_{k-1} \times f_k}\)
whose entries are \(0, +1,\) or \(-1\). The matrix \([\partial_1]\) is (up to a global sign) the
oriented incidence matrix \(\boldsymbol{B}\) itself. Both are \(|V| \times |E|\) matrices
mapping the edge space to the vertex space, as established in the example above. The matrix
\([\partial_2]\) has one column per oriented 2-simplex and one row per oriented 1-simplex, with
\(\pm 1\) entries recording the incidence.
Example: The Boundary of a Tetrahedron
We return to the boundary of the tetrahedron on vertices \(\{1, 2, 3, 4\}\) and orient its
2-simplices as \(\sigma_1 = [1,2,3]\), \(\sigma_2 = [1,2,4]\), \(\sigma_3 = [1,3,4]\),
\(\sigma_4 = [2,3,4]\). We list the six oriented edges as \(e_1 = [1,2]\), \(e_2 = [1,3]\),
\(e_3 = [1,4]\), \(e_4 = [2,3]\), \(e_5 = [2,4]\), \(e_6 = [3,4]\). Then
\(\partial_2 \sigma_1 = [2,3] - [1,3] + [1,2] = e_4 - e_2 + e_1\). Computing the other three
boundaries in the same way and ordering the rows as \(e_1, \dots, e_6\) and the columns as
\(\sigma_1, \dots, \sigma_4\), we obtain
\[
[\partial_2] =
\begin{bmatrix}
1 & 1 & 0 & 0 \\
-1 & 0 & 1 & 0 \\
0 & -1 & -1 & 0 \\
1 & 0 & 0 & 1 \\
0 & 1 & 0 & -1 \\
0 & 0 & 1 & 1
\end{bmatrix}
\in \mathbb{R}^{6 \times 4}.
\]
Multiplying by the \(4 \times 6\) matrix \([\partial_1]\) gives
\([\partial_1][\partial_2] = 0\), the matrix-level statement of \(\partial^2 = 0\).
Higher-Order Laplacians
Recall the Hodge Laplacian
\[
\boldsymbol{L}_k = \partial_{k+1}\partial_{k+1}^\top + \partial_k^\top \partial_k.
\]
We can now see where this formula comes from. The first term,
\(\partial_{k+1}\partial_{k+1}^\top\), measures how a \(k\)-chain is "enclosed" by
\((k+1)\)-simplices (the upper Laplacian \(L_k^{\mathrm{up}}\)). The second
term, \(\partial_k^\top \partial_k\), measures how a \(k\)-chain connects to
\((k-1)\)-simplices via the coboundary \(\partial_k^\top\) (the lower
Laplacian \(L_k^{\mathrm{down}}\)). Together, they capture the full adjacency
structure at dimension \(k\).
For \(k = 0\), the convention \(\partial_0 = 0\) gives
\(\boldsymbol{L}_0 = \partial_1 \partial_1^\top\), the graph Laplacian from
Graph
Laplacians. For \(k = 1\), the operator
\(\boldsymbol{L}_1 = \partial_2 \partial_2^\top + \partial_1^\top \partial_1\) captures the
adjacency of edges through shared vertices (\(\partial_1^\top \partial_1\)) and through
co-bounding triangles (\(\partial_2 \partial_2^\top\)). For every \(k\), both terms of
\(\boldsymbol{L}_k\) are positive semi-definite, and
\[
\boldsymbol{x}^\top \boldsymbol{L}_k \boldsymbol{x} = \|\partial_{k+1}^\top \boldsymbol{x}\|^2 + \|\partial_k \boldsymbol{x}\|^2.
\]
Hence \(\boldsymbol{L}_k \boldsymbol{x} = 0\) exactly when \(\partial_k \boldsymbol{x} = 0\) and
\(\partial_{k+1}^\top \boldsymbol{x} = 0\). The chains in this common kernel are the
harmonic chains, which are simultaneously cycles and cocycles (chains
annihilated by the coboundary \(\partial_{k+1}^\top\)). The condition \(\partial^2 = 0\) makes
the two terms annihilate each other, \(L_k^{\mathrm{up}} L_k^{\mathrm{down}} = 0\), because
\(\partial_{k+1}^\top \partial_k^\top = (\partial_k \partial_{k+1})^\top = 0\). By the
discrete Hodge
theorem, the harmonic space is isomorphic to the homology group \(H_k\), connecting
spectral theory to topology.
From Simplicial Complexes to Simplicial Neural Networks
We noted that spectral
graph convolutions, on which many Graph Neural Networks are built, filter signals in
the basis of eigenvectors of \(\boldsymbol{L}_0\). Simplicial Neural
Networks (SNNs) extend this idea by operating on higher-dimensional chains
via the Hodge Laplacians \(\boldsymbol{L}_k\). A signal on edges
(such as traffic flow on a road network) is a 1-chain \(\boldsymbol{x} \in C_1\),
and message passing via \(\boldsymbol{L}_1\) aggregates information both from
neighboring edges (through \(\partial_1^\top \partial_1\)) and from co-bounding
triangles (through \(\partial_2 \partial_2^\top\)).
The boundary matrices \([\partial_k]\) constructed on this page from the simplicial
structure are the sparse, discrete operators that make this architecture computationally
tractable. The condition \(\partial^2 = 0\) is not merely an algebraic curiosity. It
guarantees that the Hodge decomposition is well-defined, splitting any \(k\)-chain into a
gradient, a curl, and a harmonic component. This splitting is the higher-dimensional
analogue of the
Helmholtz
decomposition of edge flows.