[proofplan]
We must verify two claims about the element $x \in C_n(K)$, where $K$ is the simplicial complex on $S^n$ with vertex set $V_K = \{\pm e_0, \ldots, \pm e_n\}$ and top simplices $\{(\varepsilon_0 e_0, \ldots, \varepsilon_n e_n) : \varepsilon \in \{\pm 1\}^{n+1}\}$. First, we compute $d x$ using the simplicial boundary formula and show that the $2^{n+1}$ summands cancel in pairs determined by flipping a single sign $\varepsilon_i$, so $dx = 0$ and $[x] \in H_n(K)$. Second, since $H_n(K) = H_n(S^n) \cong \mathbb{Z}$ by [Homology of Spheres](/theorems/1945), every nonzero class is an integer multiple of a generator; we show $[x]$ is primitive (its coefficients are not all divisible by any integer $> 1$ in the chain basis), hence a generator. The only candidate primitive class is one whose simplicial-chain coefficients are all $\pm 1$, which is exactly the form of $x$.
[/proofplan]
[step:Set up the simplicial complex and the chain $x$]
Let $K$ be the simplicial complex with vertex set
\begin{align*}
V_K = \{\pm e_0, \pm e_1, \ldots, \pm e_n\} \subset \mathbb{R}^{n+1}.
\end{align*}
The top-dimensional simplices are indexed by sign vectors $\varepsilon = (\varepsilon_0, \ldots, \varepsilon_n) \in \{\pm 1\}^{n+1}$: for each $\varepsilon$, the simplex $\sigma_{\varepsilon} = (\varepsilon_0 e_0, \ldots, \varepsilon_n e_n)$ is an oriented $n$-simplex with vertices $\varepsilon_i e_i$. The geometric realisation $|K|$ is the boundary of the cross-polytope $\{x \in \mathbb{R}^{n+1} : \sum |x_i| \leq 1\}$, and the radial projection $|K| \to S^n$, $y \mapsto y/|y|$, is a homeomorphism, so $H_*(K) \cong H_*(S^n)$.
The element under consideration is
\begin{align*}
x = \sum_{\varepsilon \in \{\pm 1\}^{n+1}} \operatorname{sgn}(\varepsilon) \cdot \sigma_{\varepsilon} \in C_n(K),
\end{align*}
where $\operatorname{sgn}(\varepsilon) := \varepsilon_0 \varepsilon_1 \cdots \varepsilon_n \in \{\pm 1\}$ is the product of signs.
[/step]
[step:Compute the boundary $dx$ via the standard simplicial boundary formula]
The simplicial boundary operator acts on an oriented $n$-simplex by
\begin{align*}
d(v_0, v_1, \ldots, v_n) = \sum_{i=0}^{n} (-1)^i (v_0, \ldots, \widehat{v_i}, \ldots, v_n),
\end{align*}
where $\widehat{v_i}$ means $v_i$ is omitted. Applying this to $\sigma_{\varepsilon} = (\varepsilon_0 e_0, \ldots, \varepsilon_n e_n)$,
\begin{align*}
d \sigma_{\varepsilon} = \sum_{i=0}^{n} (-1)^i \tau_i(\varepsilon),
\end{align*}
where
\begin{align*}
\tau_i(\varepsilon) := (\varepsilon_0 e_0, \ldots, \widehat{\varepsilon_i e_i}, \ldots, \varepsilon_n e_n)
\end{align*}
is the oriented $(n-1)$-simplex whose vertex set is $\{\varepsilon_j e_j : j \neq i\}$. Crucially, $\tau_i(\varepsilon)$ depends only on the coordinates $\varepsilon_j$ for $j \neq i$ — it is *independent* of $\varepsilon_i$.
Expanding $dx$ by linearity,
\begin{align*}
dx = \sum_{\varepsilon} \operatorname{sgn}(\varepsilon) \sum_{i=0}^{n} (-1)^i \tau_i(\varepsilon) = \sum_{i=0}^{n} (-1)^i \sum_{\varepsilon} \operatorname{sgn}(\varepsilon) \tau_i(\varepsilon).
\end{align*}
For each fixed $i$, we partition the sum over $\varepsilon \in \{\pm 1\}^{n+1}$ into pairs $(\varepsilon, \varepsilon')$ where $\varepsilon'$ is obtained from $\varepsilon$ by flipping the $i$-th sign: $\varepsilon_j' = \varepsilon_j$ for $j \neq i$ and $\varepsilon_i' = -\varepsilon_i$. Within each such pair:
- $\tau_i(\varepsilon) = \tau_i(\varepsilon')$, since $\tau_i$ does not depend on $\varepsilon_i$.
- $\operatorname{sgn}(\varepsilon') = -\operatorname{sgn}(\varepsilon)$, since flipping $\varepsilon_i$ flips the sign of the product.
So
\begin{align*}
\operatorname{sgn}(\varepsilon) \tau_i(\varepsilon) + \operatorname{sgn}(\varepsilon') \tau_i(\varepsilon') = \operatorname{sgn}(\varepsilon)\, \tau_i(\varepsilon) - \operatorname{sgn}(\varepsilon)\, \tau_i(\varepsilon) = 0.
\end{align*}
Since the $2^{n+1}$ sign vectors partition into $2^n$ disjoint such pairs (indexed by the values of $\varepsilon_j$ for $j \neq i$), the inner sum over $\varepsilon$ vanishes for each $i$. Therefore $dx = 0$ and $[x] \in H_n(K)$.
[guided]
The computation looks formidable but the cancellation mechanism is elegant. Let us unpack it.
**The key observation.** When we compute the $i$-th face $\tau_i(\varepsilon)$ of the simplex $\sigma_{\varepsilon}$, we delete the $i$-th vertex $\varepsilon_i e_i$. The remaining vertices $\{\varepsilon_j e_j : j \neq i\}$ do not involve $\varepsilon_i$ at all. So the face $\tau_i(\varepsilon)$ is *independent of the sign $\varepsilon_i$*.
This creates the pairing mechanism. Consider the involution on $\{\pm 1\}^{n+1}$ that flips only the $i$-th coordinate: $\varepsilon \mapsto \varepsilon'$. Why does it produce a sign cancellation?
*On the face.* $\tau_i(\varepsilon) = \tau_i(\varepsilon')$, as just observed.
*On the sign.* $\operatorname{sgn}(\varepsilon') = \varepsilon_0 \cdots (-\varepsilon_i) \cdots \varepsilon_n = -\operatorname{sgn}(\varepsilon)$.
So when we sum the contributions to $(dx)_i$ (the $i$-th piece of the boundary, contributed by deleting the $i$-th vertex) over $\varepsilon$ and $\varepsilon'$, the face is the same but the signs differ, and the pair cancels.
**Why pair up this way?** We are looking for an involution on $\{\pm 1\}^{n+1}$ that preserves $\tau_i$ (to produce a common face) but flips $\operatorname{sgn}$ (to produce cancellation). The involution "flip $\varepsilon_i$" does exactly this — and it is the *only* such involution we need, because for each $i$ we run the argument with a different pairing.
**The partition.** For fixed $i$, the group $\mathbb{Z}/2$ acts on $\{\pm 1\}^{n+1}$ by flipping $\varepsilon_i$, and the orbits are exactly the $2^n$ pairs. No sign vector is fixed by this involution (since flipping a $\pm 1$ coordinate never returns the same value), so the orbits are all pairs.
**Why $dx = 0$ globally.** For each $i \in \{0, 1, \ldots, n\}$, the inner sum over $\varepsilon$ is zero. Thus the outer sum over $i$ is also zero, giving $dx = 0$.
This is a characteristically "symmetry-based" computation: the structure of the chain $x$ encodes a sign-cancellation that makes it automatically closed.
[/guided]
[/step]
[step:Identify $[x]$ as a generator of $H_n(S^n) \cong \mathbb{Z}$]
Under the homeomorphism $|K| \cong S^n$ (radial projection from the cross-polytope boundary), simplicial homology gives $H_n(K) \cong H_n(S^n) \cong \mathbb{Z}$ by [Homology of Spheres](/theorems/1945) (applied with parameter $n$ where the statement reads $H_{n-1}(S^{n-1}) = \mathbb{Z}$, but with the dimension indices shifted to match our ambient $S^n$).
Fix a generator $y \in H_n(K)$. Then $[x] = k \cdot y$ for some $k \in \mathbb{Z}$; we must show $k = \pm 1$. Choose a representative cycle $\tilde y \in Z_n(K)$ for $y$ in the simplicial basis $\{\sigma_{\varepsilon}\}_{\varepsilon \in \{\pm 1\}^{n+1}}$ of $C_n(K)$ (these are all the $n$-simplices of $K$): write
\begin{align*}
\tilde y = \sum_{\varepsilon} c_{\varepsilon}\, \sigma_{\varepsilon}, \qquad c_{\varepsilon} \in \mathbb{Z}.
\end{align*}
Since $[x] = k \cdot [\tilde y]$ in $H_n(K)$, we have $x - k \tilde y \in B_n(K) = \operatorname{Range}(d_{n+1})$. But $C_{n+1}(K) = 0$ (the simplicial complex $K$ has no simplices of dimension above $n$, since the top-dimensional simplices of $|K| = \partial(\text{cross-polytope})$ are exactly the $n$-dimensional $\sigma_{\varepsilon}$). Hence $B_n(K) = 0$, and so $x = k \tilde y$ as chains:
\begin{align*}
\operatorname{sgn}(\varepsilon) = k\, c_{\varepsilon} \quad \text{for every } \varepsilon \in \{\pm 1\}^{n+1}.
\end{align*}
Since $\operatorname{sgn}(\varepsilon) = \pm 1$ and $c_{\varepsilon} \in \mathbb{Z}$, the equation $\pm 1 = k \cdot c_{\varepsilon}$ forces $k \in \{\pm 1\}$ (and $c_{\varepsilon} = \pm 1$ for every $\varepsilon$, of sign determined by $\operatorname{sgn}(\varepsilon)$).
Therefore $[x] = \pm y$, which is a generator of $H_n(K) \cong \mathbb{Z}$. This completes the proof.
[guided]
**Why is there nothing to quotient by at the chain level?** The simplicial complex $K$ has $n$-dimensional simplices as its top cells — there are no $(n+1)$-simplices. Hence the boundary operator $d_{n+1}: C_{n+1}(K) \to C_n(K)$ has trivial domain, so $B_n(K) = \operatorname{Range}(d_{n+1}) = 0$. Consequently $H_n(K) = Z_n(K) / B_n(K) = Z_n(K)$: the $n$-cycles *are* the $n$-th homology, with no quotienting.
This is a huge simplification. The usual difficulty in showing an element is a generator is that you do not know what lies in $B_n$; here $B_n = 0$, so you can work directly at the chain level.
**The primitive-coefficient argument.** We know $H_n(K) \cong \mathbb{Z}$, so pick any generator $y \in H_n(K)$. Lift it to a cycle $\tilde y \in Z_n(K)$ with integer coefficients $c_{\varepsilon}$ in the simplex basis. Since $[x] \in H_n(K) = \mathbb{Z} \cdot [\tilde y]$, we have $[x] = k [\tilde y]$ for some $k \in \mathbb{Z}$, and then $x - k \tilde y \in B_n(K) = 0$, so $x = k \tilde y$ as chains.
Reading off coefficients in the $\sigma_{\varepsilon}$ basis, $\operatorname{sgn}(\varepsilon) = k c_{\varepsilon}$. Since the LHS is $\pm 1$, $k$ must divide $1$ in $\mathbb{Z}$, so $k \in \{\pm 1\}$.
**The upshot.** Any chain whose coefficients are all $\pm 1$ and which is a cycle must be a generator of $H_n \cong \mathbb{Z}$ (as long as $B_n$ is trivial, which holds here). The chain $x$ fits this description, so $x$ generates $H_n(K) \cong H_n(S^n) \cong \mathbb{Z}$.
**Sanity check.** The element $-x$ is also a generator (it is the other generator of $\mathbb{Z}$). The sign ambiguity corresponds to the choice of orientation of $S^n$ — reflecting any single coordinate $\varepsilon_i \mapsto -\varepsilon_i$ sends $x$ to $-x$, consistent with the fact that such reflections reverse the orientation of $S^n$.
[/guided]
[/step]