[guided]Closure under pointwise products is the linchpin of the Stone--Weierstrass argument, and the technical content is the $\phi$-shuffle identity. We prove the identity from first principles, then read off closure under products and the algebra structure.
**The unweighted shuffle identity for signatures.** The signature is a *character* on the shuffle algebra: for $h, g \in T(V)$,
\begin{align*}
\langle h, S(\gamma) \rangle \cdot \langle g, S(\gamma)\rangle = \langle h \shuffle g, S(\gamma)\rangle,
\end{align*}
where $\shuffle$ is the shuffle product on $T(V)$ (sums over interleavings of indices). This is the [shuffle product identity for signatures](/theorems/???), a consequence of Chen's identity for iterated integrals. On homogeneous components $h \in V^{\otimes n}$, $g \in V^{\otimes m}$, only the level-$n$ piece of $S(\gamma)$ pairs nontrivially with $h$ (and likewise for $g$ at level $m$), and shuffling produces a tensor of degree $n + m$, so
\begin{align*}
\langle h, S(\gamma)^{(n)}\rangle_{V^{\otimes n}} \cdot \langle g, S(\gamma)^{(m)}\rangle_{V^{\otimes m}} = \langle h \shuffle g, S(\gamma)^{(n+m)}\rangle_{V^{\otimes (n+m)}}.
\end{align*}
**Translating to the $\phi$-weighted inner product.** Take $h \in V^{\otimes n}$ and $g \in V^{\otimes m}$ homogeneous. Recall the $\phi$-weighted inner product is defined level-by-level by $\langle h, S(\gamma)\rangle_\phi = \phi(n)\langle h, S(\gamma)^{(n)}\rangle_{V^{\otimes n}}$ when $h$ lives at level $n$. So
\begin{align*}
k_\phi^h(\gamma) \cdot k_\phi^g(\gamma) = \phi(n)\langle h, S(\gamma)^{(n)}\rangle_{V^{\otimes n}} \cdot \phi(m)\langle g, S(\gamma)^{(m)}\rangle_{V^{\otimes m}} = \phi(n)\phi(m) \langle h \shuffle g, S(\gamma)^{(n+m)}\rangle_{V^{\otimes (n+m)}}.
\end{align*}
We want to express the right-hand side as $\langle \star, S(\gamma)\rangle_\phi$ for some $\star \in V^{\otimes (n+m)}$. By the same level-by-level definition, $\langle \star, S(\gamma)\rangle_\phi = \phi(n+m) \langle \star, S(\gamma)^{(n+m)}\rangle$, so we want
\begin{align*}
\phi(n)\phi(m) \langle h \shuffle g, S(\gamma)^{(n+m)}\rangle = \phi(n+m) \langle \star, S(\gamma)^{(n+m)}\rangle.
\end{align*}
This forces (by non-degeneracy of the inner product on $V^{\otimes (n+m)}$, modulo orthogonal directions to $S(\gamma)^{(n+m)}$, but the cleanest fix is to rescale the tensor itself):
\begin{align*}
\star := \frac{\phi(n)\phi(m)}{\phi(n+m)} \, h \shuffle g.
\end{align*}
We define $h \shuffle_\phi g := \star$ for homogeneous $h, g$ and extend bilinearly to $T(V) \times T(V) \to T(V)$. This is well-defined since $\phi(n+m) > 0$ for all $n, m \ge 0$ (the conditions of the [Sufficient Condition for Signature Membership](/theorems/???) include positivity of $\phi$ on $\mathbb{N} \cup \{0\}$).
**Putting it together.** With this definition,
\begin{align*}
k_\phi^h(\gamma) \cdot k_\phi^g(\gamma) = \phi(n+m) \langle h \shuffle_\phi g, S(\gamma)^{(n+m)}\rangle = \langle h \shuffle_\phi g, S(\gamma)\rangle_\phi = k_\phi^{h \shuffle_\phi g}(\gamma).
\end{align*}
Bilinearity of $\shuffle_\phi$ extends the identity from homogeneous tensors to all of $T(V) \times T(V)$.
**Why was rescaling necessary?** The product of two weighted inner products carries the factor $\phi(n)\phi(m)$, while a single weighted inner product on a degree-$(n+m)$ tensor carries the factor $\phi(n+m)$. The unweighted shuffle does not know about $\phi$, so directly substituting it would give the wrong scaling. The rescaling factor $\phi(n)\phi(m)/\phi(n+m)$ in the definition of $\shuffle_\phi$ is exactly the correction needed. For the unweighted choice $\phi \equiv 1$, the factor is $1$ and we recover the ordinary shuffle.
**Closure of $T(V)$ under $\shuffle_\phi$.** If $h \in V^{\otimes n}$ and $g \in V^{\otimes m}$ then $h \shuffle g \in V^{\otimes (n+m)}$ (interleaving indices preserves total degree), so $h \shuffle_\phi g$ is a scalar multiple of $h \shuffle g$ and lives in $V^{\otimes (n+m)} \subset T(V)$. Bilinearity extends closure to all finite-degree tensors. Hence $h, g \in T(V) \implies h \shuffle_\phi g \in T(V)$, and consequently
\begin{align*}
k_\phi^h \cdot k_\phi^g = k_\phi^{h \shuffle_\phi g} \in \mathcal{A}.
\end{align*}
**Why work with $\mathcal{A}$ rather than the full $\mathcal{H}_\phi|_\mathcal{K}$?** The shuffle product of two finite-degree tensors is a finite-degree tensor, so $T(V)$ is closed under $\shuffle_\phi$. For infinite-degree elements $h, g \in T_\phi((V))$, the formal expression $h \shuffle_\phi g$ may not converge in $T_\phi((V))$ — there is no general guarantee that the resulting tensor has finite $\phi$-norm. By restricting to $\mathcal{A}$, we sidestep this convergence question. Since $\mathcal{A} \subseteq \mathcal{H}_\phi|_\mathcal{K}$, uniform density of $\mathcal{A}$ implies uniform density of the larger family, which is what we need for Universality Equivalence.
**Algebra structure of $\mathcal{A}$.** Closure under sums and real scalar multiplication follows from linearity of $h \mapsto k_\phi^h$ in $h$: $k_\phi^{c_1 h + c_2 g}(\gamma) = c_1 k_\phi^h(\gamma) + c_2 k_\phi^g(\gamma)$, and $c_1 h + c_2 g \in T(V)$. Combined with closure under products, this makes $\mathcal{A}$ a real subalgebra of $C(\mathcal{K})$.[/guided]