Home / Blog / How to teach cohomology to kiddies

How to teach cohomology to kiddies

Published on January 23, 2023
Reading time 23 minutes

This is a talk I gave on January 23rd, 2023 at the Kiddie colloquium.

Here is an easy way to teach cohomology in three easy steps.

  1. Teach that a doughnut is the same thing as a coffee mug.
  2. Define the configuration space of charged particles in an $n$-disc.
  3. Define cohomology as a parametrization charged particles.

We already know that a doughnut is the same thing as a coffee mug, so let’s skip the first step.

Disclaimer: when we speak of a topological space, we imagine it to be a “nice” topological space. Even though I work with topological spaces that are not necessarily Hausdorff in my day-job, we don’t want to think about those spaces in this context. The meaning of “nice” will change according to our needs, but at the least they will include CW complexes.

The configuration space of charged particles#

Let us fix an abelian group $A$ (or a group $G$ if you’re willing to only define $H^1$). We will be using the model $$ D^n = [-1, 1]^n \subset \mathbb{R}^n $$ of the $n$-disk. We then have natural identifications $D^n \times D^m \cong D^{n+m}$.

Think of $A$ as the group where charge is valued in, and consider the space of $A$-charged particles floating inside the $n$-disk $D^n$. Here are the rules they follow.

  • There can only be a finite number of particles in $D^n$.
  • Each particle has an assigned “charge” that take values in $A$.
  • A particle of charge $0 \in A$ is the same as having no particle there at all.
  • When two particles of charge $a$ and $b$ collide, it is the same as there being one particle of charge $a+b$.
  • A particle vanishes when it hits the boundary $\partial D^n = S^{n-1}$.

If one wants to be rigorous, we can define it as the quotient of $$ \coprod_k ((D^k)^n \times A^n) / \Sigma_n $$ by a bunch of equivalence relations.

Definition 1. We write $K(A,n)$ for the configuration space of $A$-charged particles in $D^n$.

Example 2. For $n = 0$, the space $K(A, 0)$ is just $A$ considered as a discrete space.

It’s not hard but a tad annoying to see that this is a nice space.

Proposition 3. The space $K(A,n)$ is a CW-complex, and even a geometric realization of a simplicial set.

We can now define cohomology.

Definition 4. For a topological space $X$ and an integer $n \ge 0$, we define $H^n(X; A)$ to be the set of homotopy classes of maps $X \to K(A,n)$, $$ H^n(X; A) = [X, K(A,n)]. $$

That’s all, folks!

Let me mention a formal consequence of the way we set this up. If $f \colon X \to Y$ is a continuous map, composition induces a natural pullback map $$ f^\ast \colon H^n(Y; A) \to H^n(X; A). $$ This really depends only on the homotopy class of the map $f$. Moreover, if $g \colon Y \to Z$ is another map, then $g^\ast \circ f^\ast = (g \circ f)^\ast$. It follows, in particular, that homotopy equivalent spaces have isomorphic cohomology.

Cohomology of a circle#

I probably should give some justification for why this is cohomology. Let me do this by computing the cohomology of $S^1$. Firstly, $H^0$ is pretty easy to compute.

Proposition 5. For any nice topological space $X$, we have $$ H^0(X; A) = A^{\pi_0 X}, $$ where $\pi_0 X$ denotes the set of connected components of $X$.

Let’s now move on to $H^1$. A map $S^1 \to K(A, 1)$ can be thought of as one of those GIFs that loop around, showing a bunch of charged particles moving around in $D^1$. The intuition is, we can count how much charge moves from one end to the other in one loop. This will give us an element of $A$, which only depends on the homotopy class of $S^1 \to K(A, 1)$.

To make this rigorous, we need the following fact, which is a bit annoying to prove. Recall that $K(A, n)$ had a description in terms of a CW complex.

Theorem 6 (cellular approximation). Let $X$ be a CW complex. Then every map $f \colon S^1 \to X$ is homotopic to a map whose image lies in the $1$-skeleton of $X$.

Now here is an explicit description of the $1$-skeleton of $K(A, 1)$:

  • there is a single $0$-cell, corresponding to the configuration with no charge;
  • for each $0 \neq a \in A$, there is a $1$-cell, corresponding to the configuration with a single particle of charge $a$.

So every continuous $S^1 \to K(A, 1)$ can be deformed to a GIF where there is at most one particle in the picture at every given time. At this point, we can count particles and add them up to get an element of $A$. To give an actual proof, we need to know about the $2$-skeleton of $K(A,1)$ as well, but at least the following computation now seems believable.

Proposition 7. We have $H^1(S^1; A) = A$.

For higher cohomology groups, we can again study the $1$-skeleton of $K(A,n)$:

  • there is a single $0$-cell, corresponding to the configuration with no particles;
  • for each $0 \neq a \in A$, there is a $1$-cell, corresponding to the configuration where there is one particle with charge $a$, lying on the diagonal $D^1 \subset D^n = (D^1)^n$.

Assuming $n \ge 2$, we can just “slide off” any animation happening on the diagonal $D^1 \subset D^2$ to the boundary, so it disappears. This shows the following.

Proposition 8. We have $H^n(S^1; A) = 0$ for $n \ge 2$.

Thus we have arrived at the computation $$ H^n(S^1; A) = \begin{cases} A & n = 0 \text{ or } 1 \br 0 & \text{otherwise}. \end{cases} $$

The ring structure#

So far, each cohomology $H^n(X; A)$ was defined only as a set. But they are supposed to be abelian groups, and moreover there is supposed to be some multiplicative structure. How do we define these?

Let’s start with addition. Given two maps $f, g \colon X \to K(A, n)$, can we add the two maps? The point is that there is a “universal” addition map $$ \oplus \colon K(A, n) \times K(A, n) \to K(A, n) $$ that takes care of everything. The map just sends two configuration $C, D \in K(A, n)$ and overlays them. Formally, if $C$ is represented by $p_1, \dotsc, p_c \in D^n$ with charge $a_1, \dotsc, a_c \in A$ and $D$ is represented by $q_1, \dotsc, q_d \in D^n$ with charge $b_1, \dotsc, b_d \in A$, then $C \oplus D$ is represented by $p_1, \dotsc, p_c, q_1, \dotsc, q_d$ with charge $a_1, \dotsc, a_c, b_1, \dotsc, b_d$. This can be seen to be well-defined and continuous, so we can use this to define $f + g$ as the composition $$ X \xrightarrow{(f,g)} K(A, n) \times K(A, n) \xrightarrow{\oplus} K(A, n). $$ The homotopy class of $f+g$ then only depends on the homotopy classes of $f$ and $g$, because we can add the homotopies together as well.

Proposition 9. There is a natural abelian group structure on $H^n(X; A)$. Moreover, for every continuous $f \colon X \to Y$, the induced map $f^\ast \colon H^n(Y; A) \to H^n(X; A)$ is a group homomorphism.

This is the general structure of the argument. Let’s now move on the cup product. We need a universal map $$ \otimes \colon K(A, n) \times K(B, m) \to K(A \otimes_\mathbb{Z} B, n+m). $$ What we do is, given $$ C = [\lbrace(p_1, a_1), \dotsc, (p_c, a_c)\rbrace], \quad D = [\lbrace(q_1,b_1), \dotsc, (q_d,b_d)\rbrace], $$ we identify $D^n \times D^m \cong D^{n+m}$ and then define $$ C \otimes D = [\lbrace((p_i, q_j), a_i \otimes b_j)\rbrace_{i,j}]. $$ Again, if you stare hard at this formula for a while, you will see that this is well-defined and continuous.

There is also the following operation. If $\varphi \colon A \to B$ is a homomorphisms of abelian groups, we get an induced map $$ \varphi_\ast \colon K(A, n) \to K(B, n) $$ by simply replacing the charge $a \in A$ with the charge $\varphi(a) \in B$.

Proposition 10. The operations $\oplus$, $\otimes$, $\varphi_\ast$ on various $K(A, n)$ satisfy the following properties:

  • $\oplus$ is commutative and associative on the nose (meaning not only up to homotopy but even set-theoretically),
  • $\otimes$ is associative on the nose,
  • $\oplus$ distributes against $\otimes$ on the nose,
  • $\oplus$ and $\otimes$ are both functorial with respect to $\varphi_\ast$ on the nose.

So if $A$ is a commutative ring, such as $\mathbb{Z}$, then $H^\bullet(X; A)$ naturally has a structure of a graded associative ring. But we know that it’s also supposed to be graded-commutative. This is where things get interesting.

Proposition 11. The operation $\otimes$ is not graded-commutative on the nose, but it is graded-commutative up to homotopy. In other words, the diagram $$ \begin{CD} K(A,n) \times K(B,m) @>{\cong}>> K(B,m) \times K(A,n) \br @V{\otimes}VV @V{\otimes}VV \br K(A \otimes_\mathbb{Z} B, n+m) @>{(-1)^{nm}}>> K(A \otimes_\mathbb{Z} B, n+m) \end{CD} $$ doesn’t commute, but there is a homotopy between the composite maps.

Corollary 12. When $A$ is a commutative ring, $H^\bullet(X; A)$ is a graded-commutative ring.

This is bit difficult to see, but let me try to illustrate what is happening for $n = m = 1$. Writing $C = A \otimes_\mathbb{Z} B$, we see that there is a map $$ \mathrm{refl} \colon K(C, 2) \to K(C, 2) $$ that just reflects the picture about the diagonal $\Delta \subset [-1,1]^2$. Then we see that $$ \begin{CD} K(A,1) \times K(B,1) @>{\cong}>> K(B,1) \times K(A,1) \br @V{\otimes}VV @V{\otimes}VV \br K(C,2) @>{\mathrm{refl}}>> K(C,2) \end{CD} $$ commutes on the nose.

Lemma 13. The map $\mathrm{refl} \colon K(C,2) \to K(C,2)$ is homotopic to $(-1)_\ast \colon K(C,2) \to K(C,2)$.

The homotopy is a bit hard to describe in words, although once one draws a picture, it’s pretty clear what is happening.

Proof.

For each charge configuration $c$, we need a way of deforming $\mathrm{refl}(c)$ into $-c$, that depends continuously on $c$. When $c$ has a single particle of charge $a$ at $x = (x_1, x_2)$, we define $H_t(c)$ to be the configuration of:

  • a particle of charge $a$ at $p_t(x)$,
  • a particle of charge $-a$ at $q_t(x)$,

where we define $p_0(x) = x$, $q_1(x) = (x_2, x_1)$, and $p_1(x)$, $q_0(x)$ as the intersection of the line $x + y = x_1 + x_2$ with $\partial D^2$, with $p_1(x)$ being southeast compared to $q_0(x)$, and finally $$ p_t(x) = (1-t)p_0(x) + t p_1(x), \quad q_t(x) = (1-t)q_0(x) + t q_1(x). $$ When $c$ has multiple particles, we simply add the paths for the individual particles to define $H_t(c)$. We can check that $H_0(c) = c$, $H_1(c) = \mathrm{refl}(c)$, and that the map $H_t \colon K(C,2) \times [0,1] \to K(C,2)$ is indeed continuous.

The Mayer–Vietoris sequence#

To really convince people that this is indeed the cohomology we know and love, we should probably exhibit a Mayer–Vietoris sequence. Once we have this tool, we can go about computing the cohomology of most spaces we care about. In fact, having a Mayer–Vietoris sequence is not too far from showing that this cohomology theory is equivalent to singular cohomology.

Let $X = U \cup V$ be an open cover of $X$. Supposedly there is a long exact sequence $$ H^n(X) \to H^n(U) \oplus H^n(V) \to H^n(U \cap V) \to H^{n+1}(X) \to \dotsb. $$ At least we know define two out of three types of maps; the first two maps are given by pulling back along the inclusions. So is it exact there?

Proposition 14. The sequence $$ H^n(X) \to H^n(U) \oplus H^n(V) \to H^n(U \cap V) $$ is exact.

Proof.

That they compose to zero is clear from the definition. In the other direction, we need to show that if two maps $U, V \to K(A,n)$ are homotopic after restricting to $U \cap V$, then they come a common $X \to K(A,n)$ up to homotopy. We can use the homotopy to construct a map $$ X \times [0, 1] \supseteq X^\prime = (U \times \lbrace0\rbrace) \cup ((U \cap V) \times [0, 1]) \cup (V \times \lbrace1\rbrace) \to K(A, n). $$ At this point, we note that the projection $X^\prime \to X$ is a projection; by Urysohn’s lemma, there is section that is a deformation retract.

Let’s now try and define the boundary map. Given a map $$ f \colon U \cap V \to K(A, n), $$ how can we possibly construct a map $X \to K(A, n+1)$? Instead, using the homotopy equivalence in the above proof, let’s construct a map $X^\prime \to K(A, n+1)$. Note that using $D^n \times I \cong D^{n+1}$, for each $0 \le t \le 1$ we can define a map $$ \iota_t \colon K(A, n) \to K(A, n+1) $$ induced by $(\mathrm{id}, t) \colon D^n \to D^{n+1}$. By definition, $\iota_0 = \iota_1 = 0$. We now define $$ \partial f \colon X^\prime \to K(A, n+1); \quad (x, t) \mapsto \iota_t(f(x,t)). $$ Technically, this is a map $(U \cap V) \times I \to K(A, n+1)$, but when $x$ is not in $U \cap V$, either $t = 0$ or $t = 1$, so we extend via zero.

Theorem 15. The sequence $$ \dotsb \to H^n(X) \to H^n(U) \oplus H^n(V) \to H^n(U \cap V) \to H^{n+1}(X) \to \dotsb $$ is long exact.

This is not so bad, once we know the following fact. For a space $X$, consider the space $$ \Sigma X = (X \times [0,1]) / (X \times \lbrace0,1\rbrace) $$ with its natural base point.

Lemma 16. The construction $f \mapsto \iota_t \circ f$ defines a bijection from $H^n(X; A)$ to the based (i.e., preserving the base point) homotopy classes of based maps $\Sigma X \to K(A, n+1)$.

Proof.

Let’s give a fake proof. An actual proof can be given using quasi-fibrations.

We will define a map in the other direction. Given a based map $g \colon \Sigma X \to K(A,n+1)$, what do we do? For each $x \in X$, we look at the loop $$ S^1 \to \Sigma X; \quad t \mapsto (x, t). $$ We can compose this with the map $g$ to get a loop $S^1 \to K(A, n+1)$, preserving the base point.

Each such loop is an animation of charged particles floating around $D^{n+1}$, starting and ending at the neutral state. Consider the cross section $D^n \times \lbrace\tfrac{1}{2}\rbrace$ inside $D^{n+1}$, and record charge, position, and direction of all the particles that pass through this hyperplane section. We can combine this data into a charge configuration on $D^n$, where we put a minus sign for every particle that went from $t \gt \tfrac{1}{2}$ to $t \lt \tfrac{1}{2}$. If things are “transverse” enough, this defines a continuous map $$ X \to K(A, n). $$

It’s pretty clear that if we start from $f \colon X \to K(A, n)$, get $\Sigma X \to K(A, n+1)$, and come back to $X \to K(A, n)$, this is the same as $f$. Now suppose we start out with $g \colon \Sigma X \to K(A, n+1)$, go to $X \to K(A, n)$, and then come back to $\Sigma X \to K(A, n+1)$. The effect of this is “straightening” out the paths of all the particles, and this can be seen to be a deformation retract.

First Stiefel–Whitney class of a line bundle#

Let’s now do some actually interesting things with this definition. Given a vector bundle over a topological space $X$, there is a way of constructing cohomology classes of $X$ that roughly encodes how “twisted” the vector bundle is. Let’s try to construct these cohomology classes.

Remark 17. We will work with real vector bundles and $\mathbb{Z}/2\mathbb{Z}$ coefficients, but the same construction works for complex vector bundles and $\mathbb{Z}$ coefficients to give Chern classes.

Let $E \to X$ be a real vector bundle. For convenience, let’s assume that $X$ is compact, although it’s not important. By locally trivializing $E$ and using a partition of unity, we have the following fact.

Proposition 18. Let $E \to X$ be a real vector bundle, where $X$ is nice and compact. Then there exist continuous sections $v_1, \dotsc, v_n \in \Gamma(X, E)$ such that for every $x \in X$, the vectors $v_{1,x}, \dotsc, v_{n,x} \in E_x$ span the finite-dimensional real vector space $E_x$.

Given this choice of sections, we can now define the first Stiefel–Whitney class of line bundle.

Definition 19. Let $E \to X$ be a real line bundle on a compact space $X$. Assume $v_0, \dotsc, v_n \in \Gamma(X, E)$ is a collection of continuous section that pointwise span $E$ (i.e., there is no $x \in X$ such that $v_ {i,x} = 0$ for all $0 \le i \le n$). We define a map $$ w_1(E, (v_i)_ {0 \le i \le n}) \colon X \to K(\mathbb{Z}/2\mathbb{Z}, 1) $$ by sending $x$ to the charge configuration where there is a particle of charge $1 \in \mathbb{Z}/2\mathbb{Z}$ at elements of the (multi)set $$ \lbrace -1 \le t \le 1 : v_{0,x} + t v_{1,x} + \dotsb + t^n v_{n,x} = 0 \in E_x \rbrace, $$ counted with multiplicity. The corresponding element of $H^1(X; \mathbb{Z}/2\mathbb{Z})$ is called the first Stiefel–Whitney class of the vector bundle $E$.

Note that we really do need the condition that $v_{0,x}, \dotsc, v_{n,x}$ don’t simultaneously become zero. Otherwise, the polynomial will have infinitely many solutions, and then we won’t be able to define this map.

Proposition 20. The homotopy class $w_1(E)$ doesn’t depend on the choice of the generating sections $v_i$.

Proof.

We can deform sections to get a homotopy between different maps $X \to K(\mathbb{Z}/2\mathbb{Z}, 1)$. Let $v_0, \dotsc, v_n$ and $w_0, \dotsc, w_m$ be two choice of sections. Look at the collection of sections parametrized by $0 \le \lambda \le 1$ given by $$ (1-\lambda) v_0, \dotsc, (1-\lambda) v_n, \lambda w_0, \dotsc, \lambda w_m. $$ For every $\lambda$, this is a collection of generating sections, so we get a homotopy between the map $X \to K(\mathbb{Z}/2\mathbb{Z},1)$ defined by $v$ and the map defined by $w$ plus a constant. We can then slide the constant contribution away.

So given $E \to X$ a real line bundle, we get a well-defined element $$ w_1(E) \in H^1(X; \mathbb{Z}/2\mathbb{Z}). $$

The more interesting thing is what happens when we take the tensor product of two bundles. Say $E \to X$ and $F \to X$ are two line bundles. Take generating sections $$ v_0, \dotsc, v_n \in \Gamma(X, E), \quad w_0, \dotsc, w_m \in \Gamma(X, F). $$ From this, we can construct a collection of generating section of $E \otimes F$, but let’s do in a weird way. We will take $$ z_k = \sum_{i+j=k}^{} v_i \otimes w_j \in \Gamma(X, E \otimes F). $$ The sections $$ z_0, \dotsc, z_{n+m} \in \Gamma(X, E \otimes F) $$ indeed generate $E \otimes F$ because, at $x \in X$, if $v_i$ and $w_j$ are the smallest $i$ and $j$ that are nonzero over $x$, then $z_{i+j}$ will be nonzero.

Now what happens when we take the corresponding polynomial? We rigged the definition of $z$ so that $$ z_0 + t z_1 + \dotsb + t^{n+m} z_{n+m} = (v_0 + \dotsb + t^n v_n) \otimes (w_0 + \dotsb + t^m w_m). $$ This becomes zero precisely when either one of the two terms right side becomes zero. Therefore $$ w_1(E, (v_i)_ {0 \le i \le n}) \oplus w_1(F, (w_j)_ {0 \le j \le m}) = w_1(E \otimes F, (z_k)_ {0 \le k \le n+m}) $$ on the nose, as maps $X \to K(\mathbb{Z}/2\mathbb{Z}, 1)$.

Corollary 21. We have $$ w_1(E \otimes F) = w_1(E) + w_1(F) \in H^1(X; \mathbb{Z}/2\mathbb{Z}). $$ for real line bundles $E, F \to X$.

General Stiefel–Whitney classes#

We now let be $E \to X$ be a real vector bundle of rank $r$. For each $1 \le k \le r$, we would like to define cohomology class $$ w_k(E) \in H^k(X; \mathbb{Z}/2\mathbb{Z}). $$

As before, we will try using a vanishing set of a polynomial to define the map from $X$ to a configuration space.

Definition 22. Let $E_x$ be a $\mathbb{R}$-vector space of dimension $r$. A polynomially parametrized element of $E_x$ in $k$ variables of degree at most $N$ is a polynomial function $$ v_x \colon \mathbb{R}^k \to E_x, $$ meaning that it is defined by a polynomial in $k$ variables with degree at most $N$ and vectors in $E_x$ as a coefficient.

Definition 23. Let $E \to X$ be a vector bundle of rank $r$, where $X$ is compact. A polynomially parametrized section of $E$ in $k$ variables is a polynomial function $$ v \colon \mathbb{R}^k \to \Gamma(X, E) $$ in the sense that for each $x \in X$ there is a polynomially parametrized vector $v_x \colon \mathbb{R}^k \to E_x$, with degree bounded globally by some number $N$.

It turns out we need $r-k+1$ of them. Once we have $v_1, \dotsc, v_{r-k+1} \colon \mathbb{R}^k \to \Gamma(X, E)$, we will define a map $$ X \to K(\mathbb{Z}/2\mathbb{Z}, k) $$ by looking at the locus of where the sections $v_1, \dotsc, v_{r-k+1}$ become linearly dependent. But for this map to make sense, we need some condition on the sections.

Definition 24. Let $E_x$ be a $\mathbb{R}$-vector space of dimension $r$. We say that polynomially parametrized vectors $v_{1,x}, \dotsc, v_{r-k+1,x} \colon \mathbb{R}^k \to E_x$ are generic when the subset $$ \lbrace p \in \mathbb{R}^k : v_{1,x}(p), \dotsc, v_{r-k+1}(p) \text{ are linearly dependent} \rbrace \subseteq \mathbb{R}^k $$ is discrete.

Now we need to solve two problems.

  1. At those discrete points where the sections are linearly dependent, how do we define “multiplicity” modulo $2$?
  2. Are there enough generic families of sections?

We won’t dwell too much on these issues. For the first problem, there are two approaches. Since we are using polynomials, we may use algebraic geometry to define a notion of intersection multiplicity. I don’t know exactly how this works, but one can probably do this. The other approach is to understand the mod $2$ cohomology of Stiefel manifolds, which are homotopy equivalent to the “vectors being linearly independent” locus.

The second issue also can be taken care of with the following, which I’m pretty sure should be true, but don’t actually know how to prove.

Proposition 25. For $E$ a $\mathbb{R}$-vector space of dimension $r$, the space of $r-k+1$ polynomially parametrized vectors of $E$ that are generic is weakly contractible.

Corollary 26. Let $X$ be a compact CW complex, and let $E \to X$ be a rank $r$ vector bundle. Then the space of pointwise generic polynomially parametrized sections $v_1, \dotsc, v_{r-k+1} \colon \mathbb{R}^k \to \Gamma(X, E)$ is nonempty, and moreover weakly contractible.

Once we have these two ingredients, we can now make the following definition.

Definition 27. For $E \to X$ be a real vector bundle, where $X$ is a compact CW complex. Choose $r-k+1$ polynomially parametrized sections $v_1, \dotsc, v_{r-k+1} \colon \mathbb{R}^k \to \Gamma(X,E)$ that are pointwise generic. Then define $$ X \to K(\mathbb{Z}/2\mathbb{Z}, k) $$ by sending $x$ to the configuration where there is a particle on $$ \lbrace p \in D^k : v_ {1,x}(p), \dotsc, v_ {r-k+1,x}(p) \in E_x \text{ are linearly dependent} \rbrace. $$ The corresponding cohomology class is denoted by $w_k(E) \in H^2(X; \mathbb{Z}/2\mathbb{Z})$, and called the $k$th Stiefel–Whitney class.

The cohomology class will not depend on the choice of parametrized sections, because the space of such tuples of sections is path connected.

What about homology?#

To define the cohomology of $X$, what we did was to map $X$ into the configuration space of charged particles in $(D^n, \partial D^n)$, which is actually the same as charged particles in $(S^n, \ast)$. For homology, we will map $S^n$ into the configuration of charged particles in $X$.

Definition 28. For a nice topological space $X$, denote by $\operatorname{Conf}(X; A)$ the space that parametrizes a configuration of $A$-charged particles in $X$. Here, there is nothing such as a particle “vanishing when it hits the boundary.”

Note that each $\operatorname{Conf}(X; A)$ has a natural base point, which is the configuration with no particles. We can now define homology as follows.

Definition 29. Define the homology groups of $X$ as $$ H_n(X; A) = \pi_n(\operatorname{Conf}(X; A), \ast). $$

That this agrees with singular homology is essentially the Dold–Thom theorem.

Theorem 30 (Dold–Thom). For nice spaces, the above definition agrees with singular homology.