[proofplan]
We define $f_n : C_n(K) \to C_n(L)$ on the basis of oriented simplices by sending an ordered simplex $(a_0, \ldots, a_n)$ to $(f(a_0), \ldots, f(a_n))$ when the vertices $f(a_0), \ldots, f(a_n)$ are pairwise distinct (hence span an $n$-simplex of $L$) and to $0$ otherwise, then extend $\mathbb{Z}$-linearly. The main content is to verify the chain-map identity $d_n^L \circ f_n = f_{n-1} \circ d_n^K$ on basis elements. This requires a case analysis: if $f$ is injective on $\{a_0, \ldots, a_n\}$ the identity reduces to the naturality of the alternating-sum formula; if $f$ identifies exactly two vertices the two surviving face contributions on the $L$-side cancel with opposite signs, which exactly matches the image being zero on the $K$-side; if $f$ identifies three or more vertices everything vanishes on both sides. Applying [Chain Maps Induce Maps on Homology](/theorems/1922) then produces the induced homomorphism $f_* : H_n(K) \to H_n(L)$.
[/proofplan]
[step:Define $f_n$ on basis elements and extend linearly]
Recall that a simplicial map $f : K \to L$ is a function $f : V_K \to V_L$ between vertex sets such that for every simplex $\langle a_0, \ldots, a_k \rangle \in K$, the image set $\{f(a_0), \ldots, f(a_k)\} \subseteq V_L$ spans a simplex of $L$ (possibly of lower dimension, if $f$ identifies vertices).
We use the ordered chain complex: $C_n(K) = \mathbb{Z}\langle \text{ordered } n\text{-simplices of } K \rangle / \sim$, where $(a_0, \ldots, a_n) \sim \operatorname{sgn}(\pi) \, (a_{\pi(0)}, \ldots, a_{\pi(n)})$ for every permutation $\pi \in S_{n+1}$. The boundary operator $d_n : C_n(K) \to C_{n-1}(K)$ is given on basis elements by the alternating-sum formula
\begin{align*}
d_n(a_0, \ldots, a_n) = \sum_{i=0}^n (-1)^i (a_0, \ldots, \widehat{a_i}, \ldots, a_n),
\end{align*}
where $\widehat{a_i}$ denotes deletion.
Define $f_n$ on an ordered basis element $(a_0, \ldots, a_n) \in C_n(K)$ by
\begin{align*}
f_n(a_0, \ldots, a_n) := \begin{cases} (f(a_0), \ldots, f(a_n)) \in C_n(L), & \text{if } f(a_0), \ldots, f(a_n) \text{ are pairwise distinct}, \\ 0, & \text{otherwise}, \end{cases}
\end{align*}
and extend $\mathbb{Z}$-linearly to all of $C_n(K)$.
We must check $f_n$ is well defined on the quotient by permutation-with-sign. Let $\pi \in S_{n+1}$.
*Case A: $f(a_0), \ldots, f(a_n)$ pairwise distinct.* Then $f(a_{\pi(0)}), \ldots, f(a_{\pi(n)})$ are also pairwise distinct (same set), and by the same permutation sign convention in $C_n(L)$,
\begin{align*}
f_n(a_{\pi(0)}, \ldots, a_{\pi(n)}) = (f(a_{\pi(0)}), \ldots, f(a_{\pi(n)})) = \operatorname{sgn}(\pi) (f(a_0), \ldots, f(a_n)) = \operatorname{sgn}(\pi) f_n(a_0, \ldots, a_n).
\end{align*}
*Case B: some $f(a_i) = f(a_j)$ with $i \neq j$.* Then the set $\{f(a_{\pi(0)}), \ldots, f(a_{\pi(n)})\}$ has a repetition, so $f_n(a_{\pi(0)}, \ldots, a_{\pi(n)}) = 0 = \operatorname{sgn}(\pi) \cdot 0 = \operatorname{sgn}(\pi) f_n(a_0, \ldots, a_n)$.
In both cases $f_n$ is permutation-equivariant with sign, so it descends to a well-defined group homomorphism $f_n : C_n(K) \to C_n(L)$.
[/step]
[step:Verify the chain-map identity on injectively-mapped simplices]
We must show $d_n^L \circ f_n = f_{n-1} \circ d_n^K$ on each basis element $\sigma = (a_0, \ldots, a_n) \in C_n(K)$. Let $b_i := f(a_i) \in V_L$, $i = 0, \ldots, n$.
Suppose first that $b_0, \ldots, b_n$ are pairwise distinct. Then $f_n(\sigma) = (b_0, \ldots, b_n)$ and
\begin{align*}
d_n^L(f_n(\sigma)) = \sum_{i=0}^n (-1)^i (b_0, \ldots, \widehat{b_i}, \ldots, b_n).
\end{align*}
On the other side,
\begin{align*}
f_{n-1}(d_n^K(\sigma)) = \sum_{i=0}^n (-1)^i f_{n-1}(a_0, \ldots, \widehat{a_i}, \ldots, a_n).
\end{align*}
For each $i$, the tuple $(a_0, \ldots, \widehat{a_i}, \ldots, a_n)$ has image $(b_0, \ldots, \widehat{b_i}, \ldots, b_n)$. Since $b_0, \ldots, b_n$ are all distinct, deleting $b_i$ leaves $n$ distinct vertices, so $f_{n-1}(a_0, \ldots, \widehat{a_i}, \ldots, a_n) = (b_0, \ldots, \widehat{b_i}, \ldots, b_n)$. Therefore
\begin{align*}
f_{n-1}(d_n^K(\sigma)) = \sum_{i=0}^n (-1)^i (b_0, \ldots, \widehat{b_i}, \ldots, b_n) = d_n^L(f_n(\sigma)).
\end{align*}
[/step]
[step:Verify the chain-map identity when $f$ identifies exactly two vertices]
Suppose there exist indices $p < q$ such that $b_p = b_q$, and all other $b_i$ (for $i \notin \{p, q\}$) are distinct from each other and from $b_p$. Then the set $\{b_0, \ldots, b_n\}$ has exactly $n$ distinct elements, so $f_n(\sigma) = 0$ (the image tuple has a repetition), and therefore $d_n^L(f_n(\sigma)) = 0$.
We must show $f_{n-1}(d_n^K(\sigma)) = 0$ as well. Compute:
\begin{align*}
f_{n-1}(d_n^K(\sigma)) = \sum_{i=0}^n (-1)^i f_{n-1}(a_0, \ldots, \widehat{a_i}, \ldots, a_n).
\end{align*}
For each $i$, the $(n-1)$-face has image tuple $(b_0, \ldots, \widehat{b_i}, \ldots, b_n)$:
- If $i \notin \{p, q\}$: the tuple still contains both $b_p$ and $b_q$ (which are equal), so it has a repetition and $f_{n-1}$ sends it to $0$.
- If $i = p$: deleting $b_p$ leaves a tuple $(b_0, \ldots, \widehat{b_p}, \ldots, b_n)$, which contains $b_q$ but not $b_p$. Since $b_p = b_q$, this tuple is $(b_0, \ldots, \widehat{b_p}, \ldots, b_n)$ with entry $b_q$ at position $q$, and all entries are now distinct. Hence $f_{n-1}(a_0, \ldots, \widehat{a_p}, \ldots, a_n) = (b_0, \ldots, \widehat{b_p}, \ldots, b_n)$.
- If $i = q$: similarly, $f_{n-1}(a_0, \ldots, \widehat{a_q}, \ldots, a_n) = (b_0, \ldots, \widehat{b_q}, \ldots, b_n)$.
So
\begin{align*}
f_{n-1}(d_n^K(\sigma)) = (-1)^p (b_0, \ldots, \widehat{b_p}, \ldots, b_n) + (-1)^q (b_0, \ldots, \widehat{b_q}, \ldots, b_n).
\end{align*}
We now show the two surviving terms cancel. Let $T_p := (b_0, \ldots, \widehat{b_p}, \ldots, b_n)$ and $T_q := (b_0, \ldots, \widehat{b_q}, \ldots, b_n)$. These are tuples of the same $n$ distinct vertices (namely $\{b_0, \ldots, b_n\} \setminus \{b_p\} = \{b_0, \ldots, b_n\} \setminus \{b_q\}$, since $b_p = b_q$), differing in the position of the single element $b_p = b_q$.
Explicitly, in $T_p$ the element $b_q$ (which equals $b_p$) appears at position $q - 1$ (since we removed position $p < q$, shifting positions $p+1, \ldots, n$ down by one). In $T_q$ the element $b_p$ (which equals $b_q$) appears at position $p$ (no shift, since we removed position $q > p$). The other $n - 1$ entries $\{b_i : i \notin \{p, q\}\}$ appear in the same order in both $T_p$ and $T_q$ (their relative positions are unaffected by which of $p, q$ is removed — both tuples contain them in their original order with appropriate index shifts).
So $T_p$ is obtained from $T_q$ by moving one entry from position $p$ to position $q - 1$. This is a cyclic shift of the $q - p$ positions $\{p, p+1, \ldots, q-1\}$, which is the composition of $q - p - 1$ adjacent transpositions, hence has sign $(-1)^{q-p-1}$. Therefore, in $C_{n-1}(L)$,
\begin{align*}
T_p = (-1)^{q-p-1} T_q.
\end{align*}
Substituting:
\begin{align*}
f_{n-1}(d_n^K(\sigma)) = (-1)^p (-1)^{q-p-1} T_q + (-1)^q T_q = (-1)^{q-1} T_q + (-1)^q T_q = (-1)^{q-1}(1 - 1) T_q = 0.
\end{align*}
Hence $d_n^L(f_n(\sigma)) = 0 = f_{n-1}(d_n^K(\sigma))$, as required.
[guided]
This is the interesting case — the case in which the map $f$ is neither injective on the vertices of $\sigma$ nor collapses enough to kill everything. Here is how to see it clearly.
**The geometric picture.** The simplex $\sigma = (a_0, \ldots, a_n)$ has $n + 1$ vertices. If $f$ identifies exactly two of them — say $a_p$ and $a_q$ — then $f(\sigma)$ is degenerate: a genuine $n$-simplex has been collapsed to an $(n-1)$-simplex (the $n$ surviving vertices) with one "fold" where $a_p$ and $a_q$ got glued. On chains this degeneracy forces $f_n(\sigma) = 0$.
**The $K$-side computation.** The boundary $d_n^K(\sigma)$ is an alternating sum over the $n + 1$ faces, each obtained by deleting one vertex. When we apply $f_{n-1}$, most faces still contain the folded pair $\{a_p, a_q\}$ and so get sent to $0$ (the image tuple has a repetition). Only two faces survive: the face that deletes $a_p$ and the face that deletes $a_q$. These two faces map to *the same* $(n-1)$-simplex of $L$ (the image set $\{b_0, \ldots, b_n\} \setminus \{b_p\}$ is independent of whether we remove position $p$ or position $q$, since $b_p = b_q$), but with *different orderings*.
**Sign analysis of the two surviving tuples.** The two tuples $T_p$ and $T_q$ are both orderings of the same $n$-element vertex set. They differ only in where the "shared vertex" $b_p = b_q$ sits:
- $T_p$: remove the $p$th entry; positions $p+1, \ldots, n$ shift down. The shared vertex ends up at position $q - 1$.
- $T_q$: remove the $q$th entry; positions $0, \ldots, q-1$ are unchanged. The shared vertex ends up at position $p$.
So $T_q \mapsto T_p$ is a cyclic shift on the block $\{p, p+1, \ldots, q-1\}$ (of length $q - p$) by one position. A cyclic shift of length $m$ has sign $(-1)^{m-1}$, so the sign is $(-1)^{q-p-1}$. Hence $T_p = (-1)^{q-p-1} T_q$ in $C_{n-1}(L)$.
**Cancellation.** The alternating-sum prefactors are $(-1)^p$ on $T_p$ and $(-1)^q$ on $T_q$. Substituting $T_p = (-1)^{q-p-1} T_q$:
\begin{align*}
(-1)^p T_p + (-1)^q T_q = (-1)^p (-1)^{q-p-1} T_q + (-1)^q T_q = ((-1)^{q-1} + (-1)^q) T_q = 0,
\end{align*}
using $(-1)^{q-1} + (-1)^q = (-1)^{q-1}(1 + (-1)) = 0$.
**Moral.** The alternating signs in the boundary operator are *designed* to make this kind of cancellation automatic. This is the same combinatorial mechanism that makes $d \circ d = 0$: collapsing a dimension on the target creates pairs of faces that cancel in the alternating sum.
[/guided]
[/step]
[step:Verify the chain-map identity when $f$ identifies three or more vertices]
Suppose the image set $\{b_0, \ldots, b_n\}$ has at most $n - 1$ distinct elements, equivalently there exist two distinct pairs of indices identified, say $\{p, q\}$ and $\{p', q'\}$ (allowing overlap among $\{p, q, p', q'\}$ but such that at least three of the $b_i$'s coincide or two disjoint pairs coincide). Equivalently, for every $i \in \{0, \ldots, n\}$, the $(n-1)$-face $(b_0, \ldots, \widehat{b_i}, \ldots, b_n)$ still has a repeated entry.
We verify this equivalence. If at most $n - 1$ of the $b_i$'s are distinct, some value is attained at least twice and at least one more repetition exists. Removing a single $b_i$ can destroy at most one repetition, so at least one repetition survives in every $(n-1)$-face. Hence $f_{n-1}$ sends every face to $0$:
\begin{align*}
f_{n-1}(d_n^K(\sigma)) = \sum_{i=0}^n (-1)^i \cdot 0 = 0.
\end{align*}
Similarly, $f_n(\sigma) = 0$ because $(b_0, \ldots, b_n)$ already has a repetition, so $d_n^L(f_n(\sigma)) = 0$. Both sides vanish.
[/step]
[step:Combine cases and conclude that $f_\bullet$ is a chain map]
The three cases — $b_0, \ldots, b_n$ all distinct, exactly one coincidence, at least two coincidences — exhaust the possibilities. In each case,
\begin{align*}
d_n^L(f_n(\sigma)) = f_{n-1}(d_n^K(\sigma)),
\end{align*}
so the identity holds on every basis element of $C_n(K)$. By linearity of both sides in $\sigma$, the identity extends to all of $C_n(K)$:
\begin{align*}
d_n^L \circ f_n = f_{n-1} \circ d_n^K.
\end{align*}
This holds for every $n$, so $f_\bullet = (f_n)_{n \ge 0}$ is a chain map $C_\bullet(K) \to C_\bullet(L)$.
By [Chain Maps Induce Maps on Homology](/theorems/1922), applied to the chain map $f_\bullet$ just constructed, we obtain a group homomorphism
\begin{align*}
f_* : H_n(K) = H_n(C_\bullet(K)) &\to H_n(L) = H_n(C_\bullet(L)) \\
[c] &\mapsto [f_n(c)],
\end{align*}
for every $n \ge 0$. This completes the proof.
[/step]