spanned by respectively the elements of $X$, $X_{k}$. An element of ${{\mathbb R}}X_k$ is denoted by $$f=\sum_{z\in X_k}f(z)z$$ and is identified with the real-valued function on $X_{k}$ given by $z \mapsto f(z)$. Such an element $f\in {{\mathbb R}}X_k$ can be extended to an element $\widetilde{f}\in {{\mathbb R}}X$ by setting, for all $u \in X$, $$\widetilde{f}(u)=\sum_{z\in X_k, z\subset u}f(z).$$ If an element $g \in {{\mathbb R}}X$ is equal to some $\widetilde{f}$, for $f \in {{\mathbb R}}X_{k}$, we say that $g$ has degree $k$. The differentiation $\gamma$ is the operator defined by linearity from $$\gamma(z) =\sum_{y\in X_{k-1},y\subset z}y$$ for all $z\in X_k$ and for all $k=0,1, \ldots n$, and $\operatorname{Harm}_{k}$ is the kernel of $\gamma$: $$\operatorname{Harm}_k =\ker(\gamma|_{{{\mathbb R}}X_k}).$$

\[thm:design\] A set $\mathcal{B} \subset X_{m}$, where $m \leq n$, of blocks is a $t$-design if and only if $\sum_{b\in \mathcal{B}}\widetilde{f}(b)=0$ for all $f\in \operatorname{Harm}_k$, $1\leq k\leq t$.

In [@Bachoc], the harmonic weight enumerator associated to a linear code $C$ was defined as follows:

Let $C$ be a linear code of length $n$ and let $f\in\operatorname{Harm}_{k}$. The harmonic weight enumerator associated to $C$ and $f$ is $$W_{C,f}(x,y)=\sum_{c\in C}\widetilde{f}(c)x^{n-{{\rm wt}}(c)}y^{{{\rm wt}}(c)}.$$

Then the structure of these invariant rings is described as follows:

\[thm:invariant\]

1.  Let 