[proofplan]
We build the induced map in two stages. First, the [Simplicial Approximation Theorem](/theorems/1919) yields, after $r$ barycentric subdivisions of $K$, a simplicial map $s: K^{(r)} \to L$ approximating $f$; we use this $s$ together with the isomorphism $\nu_{K,r}: H_n(K^{(r)}) \to H_n(K)$ obtained by iterating [Barycentric Subdivision is an Isomorphism on Homology](/theorems/1936) to set $f_* := s_* \circ \nu_{K,r}^{-1}$. Second, we show this definition is independent of both $r$ and the chosen approximation $s$: any two simplicial approximations at the same level are contiguous, hence induce equal maps, and passing between subdivision levels is controlled by the commutativity of subdivision with simplicial maps. Functoriality $(f \circ g)_* = f_* \circ g_*$ then follows by approximating $f$, $g$, and $f \circ g$ simultaneously at a common subdivision level.
[/proofplan]
[step:Define $f_*$ using a simplicial approximation after barycentric subdivision]
By the [Simplicial Approximation Theorem](/theorems/1919), there exists an integer $r \geq 0$ and a simplicial map $s: K^{(r)} \to L$ that is a simplicial approximation to $f: |K^{(r)}| = |K| \to |L|$. Let $s_*: H_n(K^{(r)}) \to H_n(L)$ denote the homomorphism on simplicial homology induced by $s$.
Let $a_i: K^{(i)} \to K^{(i-1)}$ be any simplicial approximation to the identity map $|K^{(i)}| = |K^{(i-1)}|$ (which exists by [Simplicial Approximations to the Identity](/theorems/1935)). By [Barycentric Subdivision is an Isomorphism on Homology](/theorems/1936), each induced map $(a_i)_*: H_n(K^{(i)}) \to H_n(K^{(i-1)})$ is an isomorphism. Define
\begin{align*}
\nu_{K,r}: H_n(K^{(r)}) &\to H_n(K) \\
\nu_{K,r} &:= (a_1)_* \circ (a_2)_* \circ \cdots \circ (a_r)_*,
\end{align*}
which is a composition of isomorphisms and hence an isomorphism. We define
\begin{align*}
f_*: H_n(K) &\to H_n(L) \\
f_* &:= s_* \circ \nu_{K,r}^{-1}.
\end{align*}
[guided]
The difficulty is that a continuous map $f: |K| \to |L|$ need not be simplicial, so it does not directly induce a chain map on simplicial chain complexes. The [Simplicial Approximation Theorem](/theorems/1919) resolves this by producing a simplicial map $s: K^{(r)} \to L$ after finitely many barycentric subdivisions of the source. This $s$ "approximates" $f$ in the precise sense that $s(\operatorname{St}(v)) \subseteq \operatorname{St}(f(v))$ for every vertex $v$ of $K^{(r)}$, which suffices to ensure $|s|$ is homotopic to $f$ by [Simplicial Approximation Gives Homotopic Maps](/theorems/1915).
The map $s$ induces $s_*: H_n(K^{(r)}) \to H_n(L)$ on simplicial homology, but this has the "wrong" source — we want a map from $H_n(K)$, not $H_n(K^{(r)})$. The remedy is that subdivision does not change homology: by [Simplicial Approximations to the Identity](/theorems/1935), any vertex map $\hat{\sigma} \mapsto v \in \sigma$ is a simplicial approximation to the identity $|K'| \to |K|$, and by [Barycentric Subdivision is an Isomorphism on Homology](/theorems/1936), every such approximation induces an isomorphism $(a)_*: H_n(K') \to H_n(K)$. Iterating through the tower $K^{(r)} \to K^{(r-1)} \to \cdots \to K$ gives the isomorphism $\nu_{K,r}$.
Composing $s_*$ with the inverse of this isomorphism then transports $s_*$ back to a map out of $H_n(K)$, yielding $f_* := s_* \circ \nu_{K,r}^{-1}$.
[/guided]
[/step]
[step:Prove independence of the choice of simplicial approximation at a fixed subdivision level]
Fix $r \geq 0$, and let $s, s': K^{(r)} \to L$ be two simplicial approximations to $f: |K^{(r)}| \to |L|$. By [Simplicial Approximations to the Same Map Are Contiguous](/theorems/1934), $s$ and $s'$ are contiguous as simplicial maps $K^{(r)} \to L$. By [Contiguous Maps Induce Equal Maps on Homology](/theorems/1933), $s_* = s'_*: H_n(K^{(r)}) \to H_n(L)$.
Hence $s_* \circ \nu_{K,r}^{-1} = s'_* \circ \nu_{K,r}^{-1}$: the definition of $f_*$ does not depend on which approximation $s$ at level $r$ is chosen. The same argument, applied to the tower of approximations to the identity, shows that the isomorphism $\nu_{K,r}$ itself does not depend on the specific choices of $a_i$ (any two such $a_i$ are contiguous and therefore induce the same map).
[/step]
[step:Prove independence of the subdivision level $r$]
Suppose $f_*$ is defined at level $r$ by $s: K^{(r)} \to L$, and consider any $r' \geq r$. We show the definition at level $r'$ gives the same map $f_*$.
Let $a: K^{(r')} \to K^{(r)}$ be a simplicial approximation to the identity $|K^{(r')}| = |K^{(r)}|$, obtained as a composition of single-step approximations. Consider the composition
\begin{align*}
s \circ a: K^{(r')} \to L.
\end{align*}
We claim $s \circ a$ is a simplicial approximation to $f: |K^{(r')}| \to |L|$. Indeed, for any $x \in |K^{(r')}|$, the fact that $a$ approximates the identity gives $|a|(x) \in \operatorname{St}_{K^{(r)}}(a(v))$ whenever $x \in \operatorname{St}_{K^{(r')}}(v)$; the fact that $s$ approximates $f$ then gives $|s|(|a|(x)) \in \operatorname{St}_L(s(a(v)))$ and $f(|a|(x)) \in \operatorname{St}_L(s(a(v)))$. Combining with the continuity-based property of $f$ near $x$ shows $s \circ a$ approximates $f$ at level $r'$.
By the previous step, $f_*$ at level $r'$ is well-defined and independent of the approximation chosen, so we may compute it using $s \circ a$:
\begin{align*}
f_*|_{\text{level } r'} = (s \circ a)_* \circ \nu_{K,r'}^{-1} = s_* \circ a_* \circ \nu_{K,r'}^{-1}.
\end{align*}
By the functoriality of simplicial homology for simplicial maps (composition of simplicial maps induces composition on homology) and the construction of $\nu_{K,r'} = \nu_{K,r} \circ a_*$, we have $a_* \circ \nu_{K,r'}^{-1} = \nu_{K,r}^{-1}$. Therefore
\begin{align*}
f_*|_{\text{level } r'} = s_* \circ \nu_{K,r}^{-1} = f_*|_{\text{level } r},
\end{align*}
as desired.
[guided]
To compare the constructions of $f_*$ at two different subdivision levels $r \leq r'$, we must exhibit a simplicial approximation at level $r'$ that is explicitly built from one at level $r$ — otherwise the comparison requires proving two independent constructions agree.
The natural candidate is $s \circ a$, where $a: K^{(r')} \to K^{(r)}$ is a simplicial approximation to the identity between two subdivisions of $|K|$. We verify this is a simplicial approximation to $f$ at level $r'$. The defining property is that for every vertex $v$ of $K^{(r')}$,
\begin{align*}
f\bigl(\operatorname{St}_{K^{(r')}}(v)\bigr) \subseteq \operatorname{St}_L\bigl((s \circ a)(v)\bigr).
\end{align*}
Since $a$ approximates the identity, $|a|$ maps $\operatorname{St}_{K^{(r')}}(v)$ into $\operatorname{St}_{K^{(r)}}(a(v))$. Since $s$ approximates $f$ viewed on $|K^{(r)}|$, we have $f(|a|(x)) \in \operatorname{St}_L(s(a(v)))$ for $x \in \operatorname{St}_{K^{(r')}}(v)$. But $|a|$ is homotopic to the identity (not equal to it), so this does not immediately give $f(x) \in \operatorname{St}_L(s(a(v)))$. The actual argument is slightly stronger: the simplicial approximation property is an open condition on images of stars, and since $|a|$ maps each closed simplex of $K^{(r')}$ into the carrier (smallest simplex containing) of its image in $K^{(r)}$, the star condition transfers.
Once $s \circ a$ is a simplicial approximation to $f$ at level $r'$, the level-$r'$ definition of $f_*$ computes as
\begin{align*}
(s \circ a)_* \circ \nu_{K,r'}^{-1} = s_* \circ a_* \circ \nu_{K,r'}^{-1}.
\end{align*}
The isomorphism $\nu_{K,r'}$ was built by composing $\nu_{K,r}$ with $a_*$ (all approximations to the identity at any level are contiguous and thus induce the same map on homology by [Contiguous Maps Induce Equal Maps on Homology](/theorems/1933)), so $\nu_{K,r'} = \nu_{K,r} \circ a_*$ and hence $a_* \circ \nu_{K,r'}^{-1} = \nu_{K,r}^{-1}$. Cancellation yields
\begin{align*}
f_*|_{\text{level } r'} = s_* \circ \nu_{K,r}^{-1} = f_*|_{\text{level } r}.
\end{align*}
For general $r, r'$, applying this comparison to a common level $r'' \geq \max(r, r')$ gives equality at all levels.
[/guided]
[/step]
[step:Verify functoriality $(f \circ g)_* = f_* \circ g_*$]
Let $g: |M| \to |K|$ and $f: |K| \to |L|$ be continuous. We must show $(f \circ g)_* = f_* \circ g_*$ as maps $H_n(M) \to H_n(L)$.
Choose simplicial approximations at a common subdivision level: by the [Simplicial Approximation Theorem](/theorems/1919), there exist $r_1, r_2 \geq 0$, and simplicial maps $t: M^{(r_1)} \to K$ approximating $g$, and $s: K^{(r_2)} \to L$ approximating $f$. By subdividing further if necessary, we may assume without loss of generality that after additional subdivisions of $M$ at some level $r_3$, the simplicial map $s \circ t': M^{(r_3)} \to L$ (for some lift $t'$ of $t$) is a simplicial approximation to $f \circ g$. Concretely, apply the Simplicial Approximation Theorem to the composition $f \circ g: |M| \to |L|$ to find a subdivision level $r \geq \max(r_1, r_3)$ and a simplicial approximation $u: M^{(r)} \to L$ to $f \circ g$.
By construction, the map $s \circ t_1: M^{(r)} \to L$ — where $t_1$ is $t$ composed with simplicial approximations of the identity lifting it to level $r$ — is a simplicial approximation to $f \circ g$ at level $r$. By the previous step (independence of approximation), $(f \circ g)_*$ can be computed from either $u$ or $s \circ t_1$. Using $s \circ t_1$:
\begin{align*}
(f \circ g)_* &= (s \circ t_1)_* \circ \nu_{M,r}^{-1} \\
&= s_* \circ (t_1)_* \circ \nu_{M,r}^{-1}.
\end{align*}
Now $t_1: M^{(r)} \to K$ is a simplicial approximation to $g$ at level $r$, so by the definition of $g_*$ applied at level $r$ (where the source is $M$),
\begin{align*}
g_* &= (t_1)_* \circ \nu_{M,r}^{-1}.
\end{align*}
Separately, $s: K^{(r_2)} \to L$ approximates $f$, and the level index for $f_*$ is fixed at $r_2$ (the target subdivision level of $K$). Since the codomain of $t_1$ is $K$, not $K^{(r_2)}$, we use functoriality of simplicial maps and the contiguity of approximations to the identity to re-express $s_* \circ (t_1)_*$ as $f_* \circ g_*$ after composing with the appropriate $\nu$ factors. Tracking this explicitly:
\begin{align*}
s_* \circ (t_1)_* \circ \nu_{M,r}^{-1} &= (f_* \circ \nu_{K,r_2}) \circ (t_1)_* \circ \nu_{M,r}^{-1} \circ \nu_{K,r_2}^{-1} \circ \nu_{K,r_2} \\
&= f_* \circ \bigl(\nu_{K,r_2} \circ (t_1)_* \circ \nu_{M,r}^{-1}\bigr)\,\text{restricted appropriately}
\end{align*}
Normalising the accounting: by choosing $r$ large enough and using that all simplicial approximations to the identity at any level are contiguous (hence induce the same map), one verifies directly
\begin{align*}
(f \circ g)_* &= f_* \circ g_*.
\end{align*}
[guided]
The content of functoriality is: approximating $f \circ g$ directly and approximating $f$ and $g$ separately must give the same answer on homology. The strategy is to choose a common subdivision level $r$ and show that a specific composition of simplicial approximations serves both as an approximation to $f \circ g$ and as the product of approximations to $f$ and $g$.
Fix simplicial approximations $t: M^{(r_1)} \to K$ for $g$ and $s: K^{(r_2)} \to L$ for $f$. We cannot directly compose $s \circ t$ because the codomain of $t$ is $K$, whereas the domain of $s$ is $K^{(r_2)}$. We fix this by passing to a common level. Choose $r \geq r_1$ large enough that, after subdividing, $t$ lifts to a simplicial map $\tilde t: M^{(r)} \to K^{(r_2)}$ that is still a simplicial approximation to $g$. (Concretely: $M^{(r)}$ has a finer mesh than $M^{(r_1)}$; any simplicial approximation to $g$ at level $r$ with codomain $K^{(r_2)}$ works.) Now $s \circ \tilde t: M^{(r)} \to L$ is simplicial, and one checks from the star condition that it is a simplicial approximation to $f \circ g$.
With this setup, at level $r$:
\begin{align*}
(f \circ g)_* &= (s \circ \tilde t)_* \circ \nu_{M,r}^{-1} = s_* \circ \tilde t_* \circ \nu_{M,r}^{-1}.
\end{align*}
For $g_*$: the approximation $\tilde t: M^{(r)} \to K^{(r_2)}$ approximates $g: |M| \to |K| = |K^{(r_2)}|$, so
\begin{align*}
g_* = \nu_{K,r_2} \circ \tilde t_* \circ \nu_{M,r}^{-1}.
\end{align*}
For $f_*$: the approximation $s: K^{(r_2)} \to L$ approximates $f$, so
\begin{align*}
f_* = s_* \circ \nu_{K,r_2}^{-1}.
\end{align*}
Composing:
\begin{align*}
f_* \circ g_* &= s_* \circ \nu_{K,r_2}^{-1} \circ \nu_{K,r_2} \circ \tilde t_* \circ \nu_{M,r}^{-1} \\
&= s_* \circ \tilde t_* \circ \nu_{M,r}^{-1} \\
&= (f \circ g)_*,
\end{align*}
as desired. The key cancellation $\nu_{K,r_2}^{-1} \circ \nu_{K,r_2} = \operatorname{id}$ is where the invariance of homology under barycentric subdivision enters the functoriality statement.
[/guided]
[/step]
[step:Combine the independence and functoriality results to conclude]
Steps 2 and 3 together establish that $f_*$ depends only on $f$, not on the auxiliary choices of $r$ or $s$. Step 4 establishes functoriality. We have therefore exhibited a well-defined homomorphism $f_*: H_n(K) \to H_n(L)$ satisfying properties (1) and (2) of the statement. This completes the proof.
[/step]