§ An invitation to homology and cohomology, Part 1 --- Homology
There are many introductions to homology on the internet, but none of them
really met my criteria for being simple, picture filled, and getting the
basic ideas across. I feel that Hatcher might come closest to what I want
(and where I originally learnt the material), but their description of homology
is surrounded by the context of Algebraic Topology, while really, simplicial
homology is accessible to anyone who has seen some linear algebra and group
theory. This is my attempt to get the ideas across.
Let's first try to understand what we're trying to do here. We want to detect
holes in a space, broadly construed. We focus in simplicial complexes , which
are collections of triangles and triangle-like objects in higher (and lower)
dimensions. We define what holes are for these simplicial complexes, and we then
try to find algebraic objects that allow us to "detect" these holes.
§ Simplices
*
*===*
- A 2-simplex is a filled triangle
*
/ \
*---*
- A k-dimensional simplex is the convex hull of k+1linearly independent points (ui∈Rk+1)in k+1 dimensional space.
Sk≡{∑θiui ∣ θi≥0, i∑θi=1}
§ Simplicial complexes
A simplicial complex K is a collection of simplices where:
- (1) Every boundary of a simplex from K is in K
- (2) The intersection of any two simplices in K is also in K
Examples of simplicial complexes:
- Every simplex is trivially a simplicial complex.
- A collection of points is a simplicial complex with all simplices of degree 0.
- An unfilled triangle is a simplicial complex with simplices of degree 0, 1.
- Non-triangular shapes such as this "butterfly" are also simplicial complexes, this one of degree 0, 1.
- This is the same shape as the unfilled butterly, except now containing a simplex of degree 2: the filling in of the bottom of the butterfly.
Non-examples of simplicial complexes are:
- This does not contain the point at the lower-left corner, which should exist since it is a boundary of the straight line. This violates rule (1): Every boundary of a simplex from K is in K
- This does not contain the points which are at the intersection of the triangle and the line. This violates rule (2): The intersection of any two simplices in K is also in K.
§ Holes in a space: Homology of a triangle
Let's consider the simplest possible case of computing the homlogy, and we
do so, we will expand on what homology is , and what we're trying to do.
Look at the triangle above. We have the red, green, and blue vertices, which
I'll notate r,g,b. We also have the edges that are orange ( o), cyan ( c), and
magenta ( m).
What we are interested in doing is to be able to detect the "hole" in the
triangle in between the edges o-m-c
. That is, we want some algorithm which
when offered the representation of the triangle, can somehow detect the hole.
Note that the hole doesn't really depend on the length of the edges. We can
"bend and stretch" the triangle, and the hole will still exist. The only way
to destroy the hole is to either cut the triangle, or fill in the triangle.
We first need to agree on an abstract representation of the triangle,
which ideally does not change if we were to stretch out the edges,
before we can discuss how we can detect the existence of the hole.
§ Representation of the triangle: boundary operators
We first describe the shape of the triangle in terms
of two sets, E and V representing the edges and the vertices, and
a function ∂EV, called as the
boundary operator, which tells us how edges
are glued to vertices.
We first have a ground set of edges E≡o,m,c and a set of
vertices V≡r,g,b.
What we now need is to know how the edges are connected to the vertices,
since that's what really makes a triangle. We would like to say something
like "the boundary of the edge o has points r,g". In fact, we have
slightly more information than that: the orientation . So what we
really ought to be saying is "the edge o points from g to r".
To do this, we create a map from o to r−g, where we think of o
as a "vector", pointing from g to r. But hang on, what is r−g?
we don't have a mathematical structure on V that lets us add and subtract
vertices. So, we create a new set V, which represents linear
combinations of vertices in V. Similarly, anticipating some future
development, we also create a new set E of linear combinations
of edges E.
§ Formal definition of the boundary operator
We define E≡Z×Z×Z
that represents linear combinations of edges. For example, (1,2,3)∈E
represents o+2m+3c --- that is, take 1 copy of the orange edge, 2
copies of the magenta edge, and 3 copies of the cyan edge.
We define V≡Z×Z×Z
which represents linear combinations of vertices. For example,
(1,−1,2)∈V represents r−g+2b --- that is, take a copy of the
red vertex, subtract the green vertex, and add two copies of the blue vertex.
The boundary operator ∂EV:E→V is
depicted in the picture. This operator sends edges to their boundary , and is
therefore called the boundary operator . The boundary of an edge describes
the edge in terms of vertices, just like we would describe a direction vector
(to borrow physics parlance) by subtracting points.
The action of the operator on a linear combination of edges is:
∂EV:E→V∂EV(1,0,0)≡(1,−1,0)o↦r−g∂EV(0,1,0)≡(−1,0,1)m↦b−r∂EV(0,0,1)≡(0,1,−1)c↦b−g(Extend using linearity)∂EV(s,t,u)≡s∂EV(1,0,0)+t∂EV(0,1,0)+u∂EV(0,0,1)=(s−t,u−s,t−u)
Now, notice that to traverse the cycle, we should traverse the orange edge,
then the magenta edge, then the cyan edge, in that direction. That is,
the cycle can be thought of as o+m+c. However, how do we detect this
cycle? The key idea is that if we look at the
image of the cycle o+m+c under the boundary operator ∂EV,
we will get 0! For us to have completed a cycle, we must have both
entered and exited each vertex, so the total sum must be 0.
Formally:
∂EV(s,t,u)≡(s−t,u−s,t−u)o+m+c=(1,1,1)∈E∂EV((1,1,1)=(1−1,1−1,1−1)=(0,0,0)
§ Formal definition of cycles
This is very nice, since we have converted the topological invariant
of a hole in the space into an algebraic invariant of "linear combination
of edges that map to 0". That is, we want to consider all thoose loops
that belong to the kernel of ∂EV. (Terminology:
the kernel of a linear transformation is the set of all things in the domain
which map to zero)
So, we define (tentatively) the first homology group:
H1≡Kernel(∂EV)≡{(a,b,c)∈E∣∂EV((a,b,c))=(0,0,0)}⊂E
If we try to compute this, we will have to have:
H1≡Kernel(∂EV)={(s,t,u) ∣ ∂EV(s,t,u)=(0,0,0) s,t,u∈Z}={(s,t,u) ∣ (s−t,u−s,t−u)=(0,0,0) s,t,u∈Z}={(s,t,u) ∣ s=t=us,t,u∈Z}={(x,x,x) ∣ x∈Z}≃Z
So, we know that we have a Z worth of cycles in our triangle, which
makes sense: We can go clockwise (positive numbers)
and counter-clockwise (negative numbers) around the triangle,
and we can go as many times as we wish, so we have Z as the
number of cycles.
that is, it's the linear combination of edges that map to zero through the
boundary map. Note that this also includes combinations such as two loops
around the triangle, such as o+m+c+o+m+c.
§ (No) Holes in a space: Homology of a filled triangle
In this case, notice that the triangle is filled with a face f.
Therefore, the "hole" that we had previously is now filled up, and does not
count anymore. So, we now need to amend our previous definition of H1 to
kill the hole we had detected.
The idea is that the hole we had previously is now the
boundary of the new face f.
Since it is the boundary of a "filled in" region, it does not count anymore,
since we can "shrink the hole" across the face to make it a non-loop.
Hence, we need to quotient our H1 with the boundary of the face.
Formally, what we do is we create another group F≡Z,
which counts copies of our face f, and we define another boundary operator,
such that the boundary of the face f is o+m+c.
∂FE:F→E∂FE(1)≡(1,1,1)(Extend using linearity)∂FE(c)≡c∂(1)=(c,c,c)
Now, we should notice that the image of ∂FE is a loop
(o+m+c), which lies ie the kernel of ∂EV. This is a
general feature of homology, so it bears repeating:
- Image(∂FE)⊂Kernel(∂EV)
- ∂FE∘∂EV=0
- The above equation is sometimes stylishly (somewhat misleadingly) written as ∂2=0. More faithfully, one can write ∂EV∘∂FE=0.
Now, since the image of ∂FE lies entirely in the kernel of ∂EV,
we can construct H1 as:
- H1≡Kernel(∂EV)/Image(∂FE)⊂E