Applying Topology to Data, Part 3: Orientation, Chains, Cycles, and Boundaries!


In the previous two posts (part one, part two) we looked at ways to construct simplicial complexes from points of data. In this post, we'll begin talking about what to do once we have a simplicial complex to figure out what kind of topological structure it has. The first step in doing this kind of thing is to construct an orientation for the structure, which we will demonstrate below. This will allow us to order our simplicies in a nice way such that they piece together well, and will allow the computer to see, loosely speaking, the "direction" that a particular simplex is "facing". After this, we define chain groups, boundary groups, and cycle groups which will be the items necessary to compute homology.

[A warning: for a few of these concepts and "proofs", I will be hand-waving a bit; the reader is encouraged to learn all the painfully precise details from a textbook on the subject, but it is not necessary for the level of abstraction we will be working at.]


We talked a bit about simplices in the first part, so you should have some general idea of how to make an $n$-simplex, at least for $n = 1, 2, 3$.

Orientation is a tricky beast. For surfaces, an orientable surface is one which has two distinct "sides" and a non-orientable surface has only one distinct "side." The best way I've found to visualize this idea is the following:

Take a rectangular piece of paper. Take the two smaller ends and tape them together. You get something which has two sides: an "inside" and an "outside".

This surface is orientable since there are two distinct sides. On the other hand, take another strip of paper and twist one of the short ends $180^{\circ}$, then tape the short ends together. This makes a Möbius strip.

I've tried my best to draw it here, but to see the magic firsthand you'll need to build one yourself. One fun thing to do is to give it to a younger student and ask them to color one of the sides blue and the other side red: as soon as they start coloring the side blue, they'll realize that, when they finish, the entire strip will be colored! The reason for this is that the Möbius strip has only one "side" since it is non-orientable. Check for yourself that this strange object also only has one edge. Weird.

We need to be clever when it comes to checking the orientation of simplicial complexes, especially since many of them will have many higher-dimensional simplexes for which it makes no sense to ask for "two sides"; what would such a thing mean for a $4$-simplex?

To be able to say if a complex is orientable, we'll first have to describe the orientation of simplices; each one, by itself, can have an orientation. The idea is: if they all can have orientations which fit together nicely (we'll get to what this means), then the whole surface is orientable. So, what does it mean for a simplex to have an orientation?

Recall that simplices can be thought of as a set: we did this when we talked about abstract simplicial complexes. For example, a $0$-simplex may be thought of as the set $\{1\}$ and a $1$-simplex may be thought of as the set $\{1,2\}$. The following simplicial complex has two $0$-simplices, $\{0\}$ and $\{1\}$, and has a single $1$-simplex, $\{0,1\}$.

Before, we didn't differentiate between the simplex $\{0,1\}$ and the simplex $\{1,0\}$, since, to us, they were the same simplex: the $1$-simplex between the two $0$-simplices. Now, we're going to create an orientation for this $1$-simplex: we will say that $\{0,1\}$ and $\{1,0\}$ are different orientations (which can be imagined as a directed line which goes from $0$ to $1$ or $1$ to $0$ respectively). Since order now matters, we'll use slightly different notation to denote it; we'll use square brackets to say that order matters for this simplex! Note that since a $0$-simplex has only one element in its set, it only has one orientation: $[0]$. Here's a picture of the simplicial complex corresponding to $\{[0],[1],[0,1]\}$:

And here's the simplicial complex corresponding to $\{[0],[1],[1,0]\}$:

See the difference? Let's do one that's slightly more complicated. Let's draw the simplicial complex corresponding to the abstract simplicial complex \[\{[0],[1],[2],[3],[0,1],[1,2],[2,3],[0,2]\}.\]

Note that all these edges "connect" to the vertices, I'm just drawing an arrow at the end to show which "direction" they are going. If the above simplicial complex were a train map, we'd note that we can get to $1$ from $0$ but we can't get to $0$ from $1$. In fact, we can't get to $0$ from anything! That's a bit sad. This kind of interpretation is what gives us the notion of a digraph, which stands for "directed graph"; we won't go into them here, but they are interesting creatures in their own right.

Why stop at $1$-simplices though? Let's try it with a $2$-simplex. In this case, the interpretation is not so obvious: what does it mean for a triangle to be "directed"? Luckily, the math is the same as it was before: we simply have to order the vertices and that will give us an orientation. For example, $[0,1,2]$ is one orientation, and $[0,2,1]$ is another. Before we draw this, though, we need to remember that a $2$-simplex must be bounded by three $1$-simplices and must have three $0$-simplices where the vertices of the triangle ought to be: these simplices must also be oriented, and the orientation must match up with the orientation of the larger simplex. In the case of $[0,1,2]$, we can derive the smaller simplices by taking all possible ordered subsets of this set: $[0,1], [1,2], [2,0]$ and $[0],[1],[2]$. We can draw this like this:

Notice that the $1$-simplices make a complete cycle: if this was a train map, if you were at any point you could get to any other point. This is unlike our previous picture where we couldn't get to $0$ from any other simplex. When we have a cycle like this we sometimes draw a little circular arrow to denote "which way" the cycle goes, like this:

What would it look like if we started with the ordered $2$-simplex $[0,2,1]$ instead of $[0,1,2]$? Try to draw it yourself! We'd have the associated $1$- and $0$-simplices would be: $[0,2],[2,1],[1,0]$ and $[0],[1],[2]$. The picture looks like:

Neat. Notice the little circle arrow is going the other direction in this one.

At this point, we are in a position to define, in general what a particular orientation is for any $n$-simplex, with the exception, possibly, of what counts as a "corresponding" orientation for sub-simplices. We'll discuss this afterwards.

Definition (Orientation of a Simplex). Given an $n$-simplex $\{1,\dots, n\}$, an ordered $n$-tuple $[a_{1}, \dots, a_{n}]$, containing the same elements is called an orientation for the $n$-simplex if, in addition, the corresponding $i$-simplices, with $0\leq i\leq n-1$, have an order inherited from the ordered $n$-tuple.

Note that by $[a_{1}, a_{2},\dots, a_{n}]$ above we simply mean some rearrangement of $1,2,3,\dots, n$; for example, $[2,3,4,1]$ for $\{1,2,3,4\}$. The hard part of this definition is the corresponding sub-simplices: how do we find corresponding sub-simplices in general? For this, we need to introduce some notation. Interlude!

Removing Elements form an Ordered Set.

We'll be given ordered set which looks something like $[a_{1},\dots, a_{n}]$. We define a little "hat" notation here to mean "the entire set without the hatted element"; it will look like this: \[[a_{1},a_{2},\hat{a_{3}}, a_{4}] = [a_{1},a_{2},a_{4}].\] If we wanted to define this formally (and why not?) we'd say something like this:

Definition (Hatted Elements). Given an ordered set with $n$ elements, define the function $\rho_{i}$ which is defined by \[\rho_{i}([a_{1},a_{2},\dots, a_{n}]) = [a_{1},\dots, a_{i-1},a_{i+1},\dots, a_{n}].\] That is, it removes the $i$-th element. For shorthand, we will say that \[[a_{1},\dots, \hat{a_{i}}, \dots, a_{n}]:=\rho_{i}([a_{1},\dots, a_{n}]).\] That is, the $\hat{a_{i}}$ means that we remove $a_{i}$ from the ordered set to obtain an ordered set with $n-1$ elements.

Back to Orientations.

At this point, we ask ourselves: given an $n$-simplex, what are the sub-simplices? Let's make this concrete. Given a $3$-simplex $[0,1,2]$, what are its subsimplices? If we don't worry about order for a second, we may obtain the subsimplices by simply "hatting" (or removing) some elements from the ordered set defining our original simplex. For example, the $2$-simplices for this $3$-simplex are (again, not worrying about order right now): \[\begin{align*} [\hat{0},1,2] &= [1,2]\\ [0,\hat{1},2] &= [0,2]\\ [0,1,\hat{2}] &= [0,1]\\ \end{align*}\] These will, indeed, give us all of the $2$-simplices, but sadly this doesn't give us the order we'd like. The "proper" order should jive with the original order

which is $[0,1,2]$. Which edges don't behave like they should (as they do in the picture)? $[1,2]$ is fine, $[0,1]$ is fine, but $[0,2]$ is backwards (in the picture, it goes from 2 to 0, which is $[2,0]$). Hm. As it turns out, there's an easy way to fix this. In order to do this, we define something called the boundary morphism $\delta_{i}$. It's given by \[\delta_{i}([a_{1},\dots, a_{n}]) = (-1)^{i+1}[a_{1},\dots, \hat{a_{i}},\dots, a_{n}]\] It's almost the same as our hat function above, the difference being this $(-1)^{i+1}$ business which is in front of the ordered set. For example, for the above $3$-simplex, we'd get \[\begin{align*} \delta_{1}([0,1,2]) &= [1,2]\\ \delta_{2}([0,1,2]) &= -[0,2]\\ \delta_{3}([0,1,2]) &= [0,1]\\ \end{align*}\] What does this $-[0,2]$ mean, though? It's exactly what we wanted: it "flips" the orientation of $[0,2]$; it makes it $[2,0]$. In general, given some ordered set \[[a_{1},\dots, a_{i}, \dots, a_{j},\dots a_{n}] = -[a_{1},\dots,a_{j}, \dots, a_{i},\dots, a_{n}]\] that is, flipping two coordinates will multiply our ordered set by a factor of $-1$. We'll discuss this in more detail when we do examples, but, for now, we can sum up our findings by saying: the boundaries of an ordered set are given by removing the $i$-th element and multiplying by $(-1)^{i+1}$ to correct the orientation.

Let's try an example of this before we move on. Let's suppose we have the $4$-simplex given by $[0,1,2,3,4]$; here, the numbers are nicely ordered, but in general this will not be the case. Let's find all the $3$-simplex boundaries: \[\begin{align*} \delta_{1}([0,1,2,3,4]) &= [1,2,3,4]\\ \delta_{2}([0,1,2,3,4]) &= -[0,2,3,4]\\ \delta_{3}([0,1,2,3,4]) &= [0,1,3,4]\\ \delta_{4}([0,1,2,3,4]) &= -[0,1,2,4]\\ \delta_{5}([0,1,2,3,4]) &= [0,1,2,3]\\ \end{align*}\] Note where the $-1$'s are. For each of these, we can use the boundary operation again to find the ordered $2$-simplices which are boundaries of these boundaries.

[Note for those concerned: if we were to rigorously do these boundary morphisms, we should define $\delta_{i}^{k}$, say, to be the boundary morphism which acts on all $k$-tuples, to differentiate it from $\delta_{i}^{k-1}$, which would act on $(k-1)$-tuples, and so forth. Because each of these will be defined in the same way (as we've done above), and because it's a pain to keep track of the indices, we will assume that each $\delta_{i}$ is the one which is defined to take as input whatever sized tuple we're working with.]

Because the previous example will take forever to work out fully (though the reader is encouraged to do so!), let's do an easier example. Let's take the $3$-simplex given by $[0,1,3,2]$. Intuitively, it's a bit tricky to "see" what this orientation should be, when we compare it to the easier cases of the $2$- and $1$-simplices. Nevertheless, we can talk about the induced orientation on each of the sub-simplices, which we will be able to visualize. In a similar respect as above, we have our $2$-simplices, \[\begin{align*} \delta_{1}([0,1,3,2]) &= [1,3,2]\\ \delta_{2}([0,1,3,2]) &= -[0,3,2]\\ \delta_{3}([0,1,3,2]) &= [0,1,3]\\ \delta_{4}([0,1,3,2]) &= -[0,1,3]\\ \end{align*}\] Note, again, where the $-1$'s are. It's important. Now, let's look at each of these oriented $2$-simplices. For $[1,3,2]$ we have the ordered $1$-simplices: \[\begin{align*} \delta_{1}([1,3,2]) &= [3,2]\\ \delta_{2}([1,3,2]) &= -[1,2]\\ \delta_{3}([1,3,2]) &= [1,3]\\ \end{align*}\] As usual, remember the $-1$'s. For the second one, we note that $\delta(-[0,3,2]) = -\delta([0,3,2])$; it's not hard to imagine why this is true, but feel free to try to prove it yourself. We obtain: \[\begin{align*} \delta_{1}([0,3,2]) &= [3,2]\\ \delta_{2}([0,3,2]) &= -[1,2] = [0,2]\\ \delta_{3}([0,3,2]) &= [0,3]\\ \end{align*}\] Note that we've computed this for $[0,3,2]$ and not $-[0,3,2]$ since, as we noted before, we can pull the minus sign out of the boundary morphism. We'll deal with that later.

The remaining things aren't bad to figure out. That'll give us every $1$-simplex. You should also note that $\delta_{1}([0,1])$, for example, is just the vertex $[0]$, and $\delta_{2}([0,1]) = -[1]$. Since $0$-simplices only have one orientation, note that $-[1] = [1]$. At this point, you can probably compute boundaries like a pro. Let's take things to the next level. It's nice to be able to do each of the boundaries individually, but it would be awfully nice to have some nice way of displaying all of this data at once in some nice, compact way. Hm...

Sums and Boundary Morphisms.

A good way to sum up the data that we get from the boundary morphisms is to literally sum them up — that is, we're going to define the following morphism for ordered sets of $n$ elements: \[\delta = \sum_{i=1}^{n} \delta_{i}\] This might look wild and crazy at first, but it's not so bad. For example, let's take $[0,1,2,3]$. We obtain, \[\begin{align*} \delta([0,1,2,3]) &= \delta_{1}([0,1,2,3]) + \delta_{2}([0,1,2,3]) \\ &+ \delta_{3}([0,1,2,3]) + \delta_{4}([0,1,2,3])\\ &= [1,2,3] - [0,2,3] + [0,1,3] - [0,1,2]\\ \end{align*}\]

Note that in the picture above, I've only drawn the first two faces for clarity. Note the way that they're arranged in this figure. This chain gives us the orientation of each of the faces, and it gives us it in a "chain form"; that is, as a sum of simplices with coefficients.

We've not really talked about how one would build such a morphism from scratch, but the $\delta$ mapping is actually a homomorphism, which means that $\delta(A + B) = \delta(A) + \delta(B)$ for ordered sets $A$ and $B$. If you wanted all of the $1$-simplices for the ordered set above, maybe you'd think that you could just do something like \[\delta(\delta([0,1,2,3]))\] since this would give you, first, all of the $2$-simplices and, then, take $\delta$ of that chain giving you a bunch of $1$-simplices. This, unfortunately, does not work. Why not?

First, let's see what happens here when we compute $\delta(\delta([0,1,2,3]))$. We obtain: \[\begin{align*} &\delta(\delta([0,1,2,3])) \\ &= \delta([1,2,3] - [0,2,3] + [0,1,3] - [0,1,2])\\ &= \delta([1,2,3]) - \delta([0,2,3]) + \delta([0,1,3]) - \delta([0,1,2])\\ &= ([2,3]-[1,3]+[1,2]) - ([2,3]-[0,3]+[0,2])\\ &+([1,3]-[0,3]+[0,1]) - ([1,2]-[0,2]+[0,1])\\ &=0.\end{align*}\] Woah, weird. We ended up with 0. Maybe that was a fluke, let's try again with another ordered set. This time, let's try $[0,2,1]$. \[\begin{align*} &\delta(\delta([0,2,1])) \\ &=\delta([2,1]-[0,1]+[0,2])\\ &=\delta([2,1]) - \delta([0,1]) + \delta([0,2])\\ &=([1]-[2]) - ([1]-[0]) + ([2]-[0])\\ &= 0. \end{align*}\] This doesn't seem like a coincidence. Indeed, it's not. We won't cite the proof here, but it's almost exactly what you'd expect: everything winds up canceling out. We'll state this in a box because it will become exceptionally important later in these posts.

Proposition. Given any ordered set $A$, we have $\delta(\delta(A)) = 0$. Said another way, $\delta\circ\delta = 0$.

This might seem inconvenient since we cannot find smaller simplices in a chain once we've already made our chain, but this proposition will turn out to be wonderful. We'll see why later.

Chain Chain Chains.

The idea of summing up ordered sets comes up all the time. In our previous section, we had a particular way that we summed them up: they'd alternate a $+$ and a $-$ sign. In general, though, we can construct chains which have arbitrary coefficients. For example, we can have \[3[0,1] + 4[1,2] - 6[0,2]\] which is a sum that doesn't look like it's from our $\delta$ operation. We'll call things like this chains. In this case we had integer coefficients, but we could use any coefficients we want.

Warning: Do not try to "multiply the simplex" by the coefficient like $4[1,2] = [4,8]$; this does not work. You cannot multiply the coefficient "into" the simplex.

If we didn't want to use integer coefficients and wanted to use real coefficients, we could have \[\pi[0,1] - e^{2\pi}[1,2] - 4.6757[0,1]\] For now, let's stick to integer coefficients, since they'll be fairly nice to work with.

Definition ($n$-Chain, Integer Coefficients.). Let $A_{1},\dots, A_{m}$ be a finite collection of $n$-simplices (that is, ordered sets of size $n+1$). Then, \[\sum_{i=1}^{m}c_{i}A_{i}\] with $c_{i}\in {\mathbb Z}$ is called an $n$-chain.

This definition is just telling us that we can make an $n$-chain by adding together $n$-simplicies with coefficients, as we did above. It is a convenient way to represent combinations of chains, though it is not always "visually obvious" what is meant by a particular chain, unlike how $+$ and $-$ gave us an orientation for the simplex above. It will turn out that it's not necessary to visualize any particular chain, but it will be necessary to find out which chains that have particularly nice forms. We'll talk about this more in a bit.

How Simplicies Fit Together.

In order to talk about orientation of an entire complex, as opposed to just a single simplex, we need to talk about how simplices fit together and what makes the orientations of two neighboring simplicies compatible.

Maybe it's not so obvious from above, but every $n$-simplex (except $0$-simplices) have two distinct orientations; we've seen this when we look at $1$-simplicies: they can either go from $0$ to $1$ or $1$ to $0$, for exaple. These orientations are distinct. If we take two different simplicies, each of which is oriented in some way, we'd like to see if they fit together nicely or not. The idea behind what we'll want is given by the following: if we took a $2$-simplex and split it in half into two $2$-simplicies, we'd like it to keep its orientation:

Here is the standard $2$-simplex, oriented in some direction. Now let's add a $0$-simplex at the bottom and a $1$-simplex to "cut it in half." We're going to do our best to keep its orientation the way it is. Here's what we get (the thick blue line is the new $1$-simplex):

How should we orient the blue $1$-simplex? If we look at the left half of the simplex, it looks like it should be pointing upwards; if we look at the right half of the simplex, it looks like it should be pointing downwards. Indeed, both of these are right: if we split up this figure into two $2$-simplicies, then we would get:

So what happened: it was almost like the blue $1$-simplex "wasn't there"; we could have taken it away and the original simplex would still have been oriented. This is how simplicies fit together: we can glue them to each other via some boundary so long as they're oriented the opposite way on that boundary so that the orientations will "cancel out" when we glue them together. For example, the the two $2$-simplicies above are glued together via that common $1$-simplex in the middle of the picture and this gluing induces a nice orientation on the whole simplex (once they're glued togehter) because the differing orientations of that common $1$-simplex which they were "glued together" along.

In general, two oriented simplicies with a proper sub-simplex in common (that is, both are "glued together" there) are said to be compatible with respect to their orientation if the orientation of the sub-simplex is different for both of the simplices. For example, if we were to start with the bottom picture above with the two $2$-simplices and glue them together via the $1$-simplices in the middle, the resulting complex would be compatible since the $1$-simplicies we're gluing together have different orientations.

Definition (Compatible Orientations). Given two oriented simplicies with a common proper subsimplex, the orientation of the simplicies is said to be compatible if the induced orientation of the common proper subsimplex from the first simplex is the opposite of the induced orientation of the second simplex.

This is kind of a strange definition, but its meaning is the same as what we did above: we can fit simplices together nicely if their common parts have opposite orientations. Don't spend too much time fretting over this idea if it doesn't sit too well with you: we include it here for the sake of completeness, but we will (in a future post) be able to figure out orientations computationally.

[Note: If two ordered simplicies have a common $0$-simplex, then this is considered coherent as $0$-simplicies only have one orientation. ]

An entire simplicial complex is said to be orientable if there exists a way to orient each simplex in it such that each simplex is compatible with each other simplex. If this isn't possible, then the simplicial complex is said to be non-orientable. Nearly all of the structures we consider in this and future posts in this series will be orientable.

[Note: Since we know about chains, this orientable condition can also be read in the following way. Two simplices with a common sub-simplex have coherent orientations if, when we sum up the common ordered sets corresponding to the sub-simplicies of the two simplices considered, we get $0$. For example, above in the case of the two triangles, we have the middle $1$-simplex in the left figure is $[3,0]$ and in the right figure is $[0,3]$. We note that $[3,0] = -[0,3]$, so when we sum these up we obtain $[0,3] - [0,3] = 0$, as required.]

Boundaries and Cycles.

We will now define arguably the most important concepts we will need for a while: boundaries and cycles.

Suppose we have an $n$-chain, which we'll call $A$. We're going to call $A$ a cycle if $\delta(A) = 0$. The idea behind this definition comes from the following: suppose you have a directed cycle (in the graph-theoretical sense) like below:

The cycle can be represented by the $2$-chain $A =[0,1]+[1,2]+[2,3]+[3,0]$. Notice that \[\begin{align*} \delta(A) & = \delta([0,1]) + \delta([1,2]) + \delta([2,3]) + \delta([3,0])\\ & = [1] - [0] + [2] - [1] + [3] - [2] + [0] - [3]\\ &=0. \end{align*}\] But, on the other hand, if we "flipped" the direction of $[1,2]$ to make it $[2,1]$, we no longer have a cycle, graph-theoretically: you can't start at any point, follow the arrows, and then get back where you started.

We'll call this $2$-chain $B = [0,1] + [2,1] + [2,3] + [3,0]$. We notice that, now, \[\begin{align*} \delta(A) & = \delta([0,1]) + \delta([2,1]) + \delta([2,3]) + \delta([3,0])\\ & = [1] - [0] + [1] - [2] + [3] - [2] + [0] - [3]\\ &= 2[1] - 2[2] = 2([1] - [2])\neq 0. \end{align*}\] Hence the motivation for our idea of $\delta(A) = 0$ implying $A$ is a cycle. We'll make a definition box for this later, but for now we'll just keep this in the back of our heads.

Now, let's suppose that $A$ is any $n$-chain; not necessarily a cycle. We will call $B = \delta(A)$ a boundary. Note here that $B$ is not necessarily equal to $0$, but it will be, in fact, an $(n-1)$-chain (since $A$ is an $n$-chain). For example, let \[A = 3[0,1,2] - 2[1,3,0]\] then \[\begin{align*}\delta(A) &= 3([1,2] - [0,2] + [0,1]) - 2([3,0] - [1,0]+[1,3])\\ &=3[1,2] - 3[0,2] + 3[0,1] - 2[3,0] + 2[1,0] -2[1,3]\\ &=3[1,2] - 3[0,2] + [0,1] - 2[3,0] - 2[1,3]\\ \end{align*}\] Where, here, we've used that $2[1,0] = -2[0,1]$. Since this is $\delta(A)$, we call this a boundary. Note that we'd expect $\delta(\delta(A)) = \delta(B) = 0$, which would imply that taking $\delta$ of any boundary will give you $0$. Let's see if that's true... \[\begin{align*}&\delta(3[1,2] - 3[0,2] + [0,1] - 2[3,0] - 2[1,3]) \\ &= 3[2] - 3[1] -(3[2] - 3[0]) \\ &+ [1] - [0] - (2[0] - 2[3]) - (2[3]-2[1])\\ &= 0.\end{align*}\] As we'd expect. To sum this up in a nice little box,

Definition (Cycle, Boundary). Given $A$ is an $n$-chain...

  • If $\delta(A) = 0$, then we call $A$ an $n$-cycle.
  • If there exists some $(n+1)$-chain, $B$, with $\delta(B) = A$ then we call $A$ an $n$-boundary.

Given a simplicial complex, $X$, we can talk about all of the $n$-chains of $X$. We'll collect them all together and call the resulting set $C_{n}(X)$, which is called the $n$-chain group of $X$. Why is it called an $n$-chain group? Given $A,B\in C_{n}(X)$, meaning that $A = \sum_{i}^{m}a_{i}A_{i}$, $B = \sum_{j=1}^{k}b_{j}B_{j}$ with $a_{i},b_{j}\in {\mathbb Z}$ and $A_{i},B_{j}$ are all $n$-simplices:

  • Addition is defined in the obvious way, by adding the two sums together. Note the resulting sum is still a finite sum consisting of terms which are $n$-simplices of $X$ and integer coefficients; hence, $C_{n}(X)$ is closed under the normal summing operation.
  • The element $0$ is defined (by multiplying a single $n$-simplex with 0, say) and $0 + A = A$; hence, there is an identity element.
  • Given $A$, define $-A = \sum_{i=1}^{m}(-a_{i})A_{i}$. It's clear that $A + (-A) = (-A) + A = 0$.
  • Moreover, $A + B = B + A$. This is not necessary for a general group, but this makes our group abelian (that is, every two elements commute in our group).

The first three parts give us that $C_{n}(X)$ is a group: it is closed under a binary operation, contains inverses for that operation, and contains an identity element for that operation. The last part gives us that $C_{n}(X)$ is abelian. If you don't know much about group theory, don't worry so much about this abelian part — it is essentially to make everything quotient out nicely later.

Similarly, we can talk about all of the $n$-cycles of our simplicial complex $X$. This will be denoted by $Z_{n}(X)$ (I'm not sure why the $Z$; maybe because $C$ was already taken?) and is called the $n$-cycle group of $X$. This one is also a group; letting $A$ and $B$ be the same as above except this time we consider them to be cycles (that is, $\delta(A) = \delta(B) = 0$),

  • Addition is defined in the same way as above, by adding the two sums corresponding to the $n$-cycles together. Note that $\delta(A + B) = \delta(A) + \delta(B) = 0$, so $A+B$ is also an $n$-cycle; hence, $Z_{n}(X)$ is closed under the normal summing operation.
  • The element $0$ is defined and $0 + A = A$. Moreover, $\delta(0) = 0$, so $0$ is, itself, a cycle. Hence, there is an identity element.
  • Given $A$, define $-A = \sum_{i=1}^{m}(-a_{i})A_{i}$. Note that $\delta(-A) = -\delta(A) = 0$, so $-A$ is a cycle. Again, it's clear that $A + (-A) = (-A) + A = 0$.
  • Similar to above, $A + B = B + A$. This is not necessary for a general group, but this makes our group abelian (that is, every two elements commute in our group).

This shows that $Z_{n}(X)$ is an abelian group.

As you might expect, we also can talk about all of the $n$-boundaries of our simplicial complex $X$. We'll denote this by $B_{n}(X)$ and call it the $n$-boundary group of $X$. As with the other two groups, $B_{n}(X)$ is also an abelian group. You may want to prove this for yourself, but note that $A,B$ are boundaries if and only if there are some $(n+1)$-simplices $C, D$ such that $\delta(C) = A$ and $\delta(D) = B$. Note that $\delta(C + D) = \delta(C) + \delta(D) = A + B$, so addition is defined. Note that $\delta(-C) = -A$, so inverses are defined. Note that $\delta(0) = 0$, so the identity is also defined. Fill in the details here and show that $B_{n}(X)$ is an abelian group!

To sum all of this up, let's put it in a box:

Definition (Boundary, Cycle, and Chain Groups). Let $X$ be a simplicial complex.

  • The associated $n$-chain (abelian) group is denoted by $C_{n}(X)$.
  • The associated $n$-cycle (abelian) group is denoted by $Z_{n}(X)$.
  • The associated $n$-boundary (abelian) group is denoted by $B_{n}(X)$.

We're going to talk about this a bunch more in the next post when we discuss homology, but for now let's end on an example which calculates this stuff.


Here, we'll compute the values of $C_{n}(X)$ for each $n\geq 0$ for some structure; in the next post, we'll also look at $Z_{n}(X)$ and $B_{n}(X)$, but we don't have the tools yet to make these groups easy to compute. Let's begin with the (oriented) simplicial complex corresponding to the abstract simplicial complex \[X = \{[0],[1],[2],[3],[0,1],[1,2],[2,0],[0,3],[0,1,2]\}\] which, geometrically, looks like

We note that the $0$-simplices are $0,1,2,3$, so the group $C_{0}$ consists of all chains \[a[0] + b[1] + c[2] + d[3]\] for $a,b,c,d\in {\mathbb Z}$; recall, we're working over the integers in this post, and that's why we're using ${\mathbb Z}$ here. Notice that for any chain here, we only need to say what $a,b,c,d$ are to completely determine what chain we're talking about; let's write this as $(a,b,c,d)$. For example, $(1,2,3,4)$ would correspond to \[1[0] + 2[1] + 3[2] + 4[3]\] and $(-1,0,1,0)$ would correspond to \[-1[0] + 0[1] + 1[2] + 0[4] = -[0] + [2].\] Hence, for any element in our chain group $C_{0}(X)$, we only need to specify $(a,b,c,d)$. Similar to the notation for $(x,y)\in {\mathbb R}^{2}$ talking about two real numbers on the real plane (in an ordered pair), we will say that $(a,b,c,d)\in {\mathbb Z}^{4}$. The ${\mathbb Z}^{4}$ tells us that we need to specify an ordered set which contains $4$ elements, each from ${\mathbb Z}$. Since any element of this type specifies a $0$-chain (like the two examples above), we say that \[C_{0}(X) \cong {\mathbb Z}^{4}.\] We will introduce some algebra in the next post which will talk a bit more about what this equation means, but for now it means, essentially, that there are four $0$-simplicies, and each of them can have any integer coefficient that we want.

Similarly, we have the $1$-simplicies $[0,1],[1,2],[2,0],[0,3]$, so an element in $C_{1}(X)$ will look like \[a[0,1] + b[1,2] + c[2,0] + d[0,3]\] for $a,b,c,d\in {\mathbb Z}$. For the same reasons as above, we say that \[C_{1}(X) \cong {\mathbb Z}^{4}.\]

The only $2$-simplex we have is $[0,1,2]$, so the elements of $C_{2}(X)$ will all look like \[a[0,1,2].\] We only need to specify one integer to specify what chain we're talking about; if we know $a$, we know the chain. Hence, we have that \[C_{2}(X) \cong {\mathbb Z}.\]

What about $C_{3}(X)$? Or $C_{100}(X)$? Since we don't have any $3$-simplicies, $4$-simplicies, \dots, and so on, we don't need to specify any integers. That is, we'll have \[C_{n}(X) \cong 0\] for $n\geq 3$. We will usually ignore these, since they give us little data about our complex.

As I mentioned before, it'll be a bit difficult to find all the elements of $B_{n}(X)$ and $Z_{n}(X)$ without going over some algebra (which we will do in the next chapter).

Next Time...

In the next post, we will define and calculate the homology of some figures and learn some tools to make finding $B_{n}(X)$ and $Z_{n}(X)$ a bit easier to compute. We'll learn that the homology of things that look like circles is much different from things which look like blobs (that is, which are contractible). We'll use this in combination with our complex-building concepts from the previous posts to mathematically show that a finite set of points arranged in a circle will mathematically "look" like a circle, in some specific topological sense.

[At this point, I may split the direction of the posts into two: what I just mentioned will be in the topology and data series (the series of posts you're reading now) but I'd also like to discuss how to construct algorithms which will construct and analyze these structures. Because I am not a fantastic programmer, this post sequence will be written if I can find a friend to help me work through the programming. Most likely, I will write up the pseudocode first and then include the actual code that I'm using, which will most likely be written in Python. Those interested can redo the code in a "faster" language, like C, if they'd like.]

Go To Part: one, two, four