Back to resources

Article and note

A Series Learning through the MacWilliams IdentityPart 8 of 12

An Introduction to Group Actions and Cycle Indices through the MacWilliams Identity

Among the five proof systems for the MacWilliams identity, this note focuses on the proof that appears through group actions and cycle indices, and introduces group actions, orbits, fixed points, Burnside's lemma, Polya enumeration, cycle indices, permutation groups constructed from codes, and complete cycle indices.
Published:
Updated:
Reading time:
35 min (about 7,631 words)
Tagscoding theoryMacWilliams identitygroup actionscycle indexBurnside lemmaPolya enumerationcomplete weight enumeratorfinite fieldsexpository note
Download PDF

Introduction

One of the fundamental theorems in coding theory is the MacWilliams identity. Let EE be the coordinate set, let n=En=\card{E}, and, for a linear code CFqEC \leq \F_{q}^{E} over the finite field Fq\F_{q}, consider its dual code

C={uFqE:uc=0 for all cC}C^{\perp} = \{ u \in \F_{q}^{E} : u \cdot c = 0 \text{ for all } c \in C \}

where

uc=eEuece.u \cdot c = \sum_{e \in E} u_{e} c_{e}.

For a codeword cFqEc \in \F_{q}^{E}, write its support and Hamming weight as

supp(c)={eE:ce0},wt(c)=supp(c).\supp(c) = \{ e \in E: c_{e} \neq 0 \}, \qquad \wt(c) = \card{\supp(c)}.

Define the weight enumerator of the linear code CC by

WC(X,Y)=cCXnwt(c)Ywt(c).W_{C}(X,Y) = \sum_{c \in C} X^{n - \wt(c)} Y^{\wt(c)}.

The MacWilliams identity is the formula saying that the weight enumerator of the dual code can be computed from the weight enumerator of CC as follows:

WC(X,Y)=1CWC(X+(q1)Y,XY).W_{C^{\perp}}(X, Y) = \frac{1}{\card{C}} W_{C}\bigl( X + (q - 1)Y, X - Y\bigr).

This is the MacWilliams identity.

In this series, I use proofs of the MacWilliams identity as a guide to an introduction to neighbouring areas and concepts. Accordingly, this series is aimed at readers who already know the following basic material in coding theory:

We assume familiarity, at least at a basic level, with

  • what a (finite) field is,

  • what a linear code over a finite field is,

  • what the Hamming weight is,

  • what the dual code is.

(There is no problem if you do not know a proof of the MacWilliams identity.)

This note does not assume Parts 1–7. In the latter half, we use a calculation corresponding to the orthogonality of additive characters and the complete weight enumerator, but the necessary definitions and facts are introduced inside this note. Also, this note does not go deeply into the motivation, across the whole series, for separating the proofs into these five families; it is organised so that the proof in this part can be read using only the language of group actions and cycle indices.

In this series, I look at proof methods for the MacWilliams identity under the following five broad families. However, this classification is a map for the series as a whole, and is not necessary in order to read the proof in this note:

  1. Fourier, character, and Poisson methods.

  2. Möbius inversion, lattice-theoretic, and shortening/puncturing methods.

  3. Orthogonal-polynomial and association-scheme methods.

  4. Matroid and Tutte-polynomial methods.

  5. Moment and double-counting methods.

The proof treated in this note is written, on the surface, in the language of

group actions, Burnside's lemma, Pólya enumeration, and cycle indices.

If compressed into the five families, it is close to the Fourier, character, and Poisson methods. This is because, at the final stage where the dual code CC^{\perp} is extracted, the additive characters of the finite field Fq\F_q, or equivalently the character table of the additive group (Fq,+)(\F_q,+), appear. However, the main subject of this note is not character theory. The aim here is to use a proof of the MacWilliams identity as a guide to an introduction to group actions and cycle indices.

A group action is a language for describing a situation where the elements of a group behave as symmetries of a set. When a group acts on a finite set, that set decomposes into orbits. The formula that counts the number of orbits as an average of numbers of fixed points is Burnside's lemma. Furthermore, if we view group elements as permutations, the object that records their cycle decompositions is the cycle index. In Pólya enumeration, by substituting variables into this cycle index, one can count colourings while taking symmetries into account.

In coding theory, a codeword c=(ce)eEc = (c_{e})_{e \in E} can be viewed, at each coordinate, as a translation

aa+ce.a \longmapsto a + c_{e}.

In other words, one can construct a permutation group from the code CC. The cycle index of this permutation group records almost exactly the weight enumerator of CC. Moreover, if we refine the cycle index slightly and record the translation amount ceFqc_{e} \in \F_{q} at each coordinate itself, then the complete weight enumerator appears. The viewpoint of this note is to look at the MacWilliams identity through this refined cycle index.

The flow of the note is as follows.

group actions → orbits and fixed points → Burnside's lemma → cycle indices → Pólya enumeration → permutation groups constructed from codes → complete cycle indices → the MacWilliams identity

For the relation between cycle indices and weight enumerators of codes, Cameron [Cam02] states that the cycle index of the permutation group associated with a linear code becomes the weight enumerator, up to normalisation. For the relation between complete cycle indices and complete weight enumerators, see Miezaki–Oura [MO19]. For classical treatments of Pólya enumeration and cycle indices, see Pólya [Ply37], Harary–Palmer [HP73], and others. Cameron [Cam95] is also a standard reference for the basic theory of permutation groups.

Group Actions

We begin with the definition of a group action. Here we treat only finite groups. In coding theory, the letter GG is often used to denote a generator matrix, but in this note, following the general language of group actions, GG denotes a group. Please note that it is not notation for a generator matrix.

Definition 2.1.

Let GG be a group and let Ω\Omega be a set. We say that GG acts on Ω\Omega if, for each gGg \in G and each xΩx \in \Omega, an element gxΩg \cdot x \in \Omega is defined, and the following two conditions hold:

  1. For the identity element 1GG1_{G} \in G, for every xΩx \in \Omega,

    1Gx=x1_{G} \cdot {x} = x

    holds.

  2. For all g,hGg, h \in G and xΩx \in \Omega,

    g(hx)=(gh)xg \cdot (h \cdot x) = (gh) \cdot x

    holds.

In this case, Ω\Omega is called a GG-set.

A group action is a way to "realise the elements of a group as symmetries of a set". Indeed, for each gGg \in G, we obtain a map

ΩΩ,xgx.\Omega \to \Omega, \qquad x \mapsto g \cdot x.

This map is a bijection. Its inverse is xg1xx \mapsto g^{-1} \cdot x. Thus each element of GG defines a permutation of Ω\Omega.

Example 2.2 (Natural action of a symmetric group).

Let Ω={1,2,,n}\Omega = \{ 1, 2, \dots, n \}. Write Sym(Ω)\Sym(\Omega) for the group consisting of all permutations of Ω\Omega. Then Sym(Ω)\Sym(\Omega) acts naturally on Ω\Omega. More concretely, for a permutation σSym(Ω)\sigma \in \Sym(\Omega) and a point iΩi \in \Omega, it is enough to define

σiσ(i).\sigma \cdot i \coloneqq \sigma(i).

Example 2.3 (Action of a cyclic group on a regular polygon).

Label the vertex set of a regular mm-gon as

Ω={0,1,,m1}.\Omega = \{ 0, 1, \dots, m - 1 \}.

The cyclic group Z/mZ\mathbb{Z}/m\mathbb{Z} acts on Ω\Omega by rotations. Concretely,

ai=i+a(modm).\overline{a} \cdot i = i + a \pmod{m}.

Let us also look at an example close to coding theory.

Example 2.4 (Translation action by a code).

Let V=FqEV = \F_{q}^{E}, and let CVC \leq V be a linear code. If we regard CC as an additive group, then CC acts on VV by translations:

cv=v+c(cC,vV).c \cdot v = v + c \qquad(c \in C,\, v \in V).

The orbits of this action are the cosets of CC,

v+C={v+c:cC}.v + C = \{ v + c: c \in C\}.

In this example, the group action decomposes VV into cosets. This is the feeling that "a group action quotients an object by symmetries".

Orbits, Fixed Points, and Stabilisers

The first things to look at for a group action are orbits and fixed points.

Definition 3.1.

Suppose that GG acts on a set Ω\Omega. For xΩx \in \Omega, define

OrbG(x){gx:gG}.\Orb_{G}(x) \coloneqq \{ g \cdot x: g \in G \}.

This is called the orbit of xx. Also define

StabG(x){gG:gx=x}.\Stab_{G}(x) \coloneqq \{ g \in G:g \cdot x = x \}.

This is called the stabiliser of xx. Furthermore, for gGg \in G, define

FixΩ(g){xΩ:gx=x}.\Fix_{\Omega}(g) \coloneqq \{ x \in \Omega: g \cdot x = x \}.

This is called the fixed point set of gg.

The orbit is the set of all points that can be reached by moving the point xx by elements of the group. The stabiliser is the set of all group elements that do not move the point xx. The fixed point set is the set of all points not moved by the group element gg. Note that StabG(x)\Stab_{G}(x) is indeed a subgroup of GG. This is because the identity fixes xx, the product of two elements fixing xx also fixes xx, and the inverse of an element fixing xx also fixes xx. There is a basic relation between orbits and stabilisers.

Theorem 3.2 (Orbit–stabiliser theorem).

Suppose that a finite group GG acts on a finite set Ω\Omega. Then, for every xΩx \in \Omega,

OrbG(x)StabG(x)=G\card{\Orb_G(x)}\card{\Stab_G(x)} = \card{G}

holds.

Proof

Consider the map

GOrbG(x),ggx.G \to \Orb_{G}(x), \qquad g \mapsto g \cdot x.

The condition gx=hxg \cdot x = h \cdot x is equivalent to

h1gx=x.h^{-1}g \cdot x = x.

In other words, it is equivalent to h1gStabG(x)h^{-1}g \in \Stab_{G}(x). Therefore, the inverse image of each point of OrbG(x)\Orb_{G}(x) has the same number of elements as StabG(x)\Stab_{G}(x). Hence

G=OrbG(x)StabG(x).\card{G} = \card{\Orb_{G}(x)}\card{\Stab_{G}(x)}.
End of proof

We shall use this theorem later when proving Burnside's lemma. Intuitively, it expresses the fact that the larger the orbit of a point is, the fewer symmetries fix that point.

Burnside's Lemma

When a group action decomposes a set Ω\Omega into several orbits, Burnside's lemma is the formula that gives the number of these orbits as an average of numbers of fixed points. It is also called the Cauchy–Frobenius lemma.

Theorem 4.1 (Burnside's lemma).

Suppose that a finite group GG acts on a finite set Ω\Omega. Then the number of orbits is given by

Ω/G=1GgGFixΩ(g).\card{\Omega/G} = \frac{1}{\card{G}} \sum_{g \in G}\card{\Fix_{\Omega}(g)}.

Here Ω/G\Omega/G denotes the set of all orbits.

Proof

Count the set

S={(g,x)G×Ω:gx=x}S = \{ (g, x) \in G \times \Omega: g \cdot x = x \}

in two ways.

First, fixing gGg \in G, the number of xx satisfying gx=xg \cdot x = x is FixΩ(g)\card{\Fix_{\Omega}(g)}. Hence

S=gGFixΩ(g).\card{S} = \sum_{g \in G}\card{\Fix_{\Omega}(g)}.

Next, fixing xΩx \in \Omega, the number of gg satisfying gx=xg \cdot x = x is StabG(x)\card{\Stab_{G}(x)}. Hence

S=xΩStabG(x).\card{S} = \sum_{x \in \Omega}\card{\Stab_{G}(x)}.

Now split Ω\Omega into orbits. Fix one orbit O\mathcal{O}. For any xOx\in \mathcal{O}, the orbit–stabiliser theorem gives

StabG(x)=GO.\card{\Stab_{G}(x)} = \frac{\card{G}}{\card{\mathcal{O}}}.

Therefore the contribution from this orbit is

xOStabG(x)=OGO=G.\sum_{x \in \mathcal{O}}\card{\Stab_{G}(x)} = \card{\mathcal{O}} \cdot \frac{\card{G}}{\card{\mathcal{O}}} = \card{G}.

Since each orbit contributes G\card{G}, we obtain

S=Ω/GG.\card{S} = \card{\Omega/G}\card{G}.

Comparing the two expressions and dividing by G\card{G} gives the claim.

End of proof

The point of Burnside's lemma is summed up in the sentence

the number of orbits is the average number of fixed points.

This idea of "averaging along a group action" leads to cycle indices and Pólya enumeration. Averaging also appears in the proof of the MacWilliams identity. However, Burnside's lemma itself does not directly give the dual code CC^{\perp}. In Burnside's lemma, one averages the number of fixed points over group elements gGg \in G. On the other hand, in the proof of the MacWilliams identity later on, one averages the character values ψ(uc)\psi(u \cdot c) over elements cCc \in C of CC as an additive group, and uses their orthogonality to determine whether uCu \in C^{\perp}. What is common is that averaging over group elements acts as a device for extracting symmetry or orthogonality. For this reason, the averaging operation appearing in Burnside's lemma is the entrance to the viewpoint of this note.

Cycle Decompositions of Permutations and Cycle Indices

We now turn to cycle indices. A permutation σSym(Ω)\sigma \in \Sym(\Omega) of a finite set Ω\Omega can be decomposed as a product of disjoint cycles. For example, if

σ=(1  3  5)(2  4),\sigma = (1 \; 3 \; 5)(2 \; 4),

then there is one 33-cycle and one 22-cycle. Fixed points are regarded as 11-cycles.

Definition 5.1.

Let Ω\Omega be a finite set and let σSym(Ω)\sigma \in \Sym(\Omega). For 1\ell \geq 1, write

c(σ)c_{\ell}(\sigma)

for the number of cycles of length \ell appearing in the cycle decomposition of σ\sigma. The sequence (c1(σ),c2(σ),)(c_{1}(\sigma), c_{2}(\sigma),\dots) is called the cycle type of σ\sigma.

Of course, since Ω\Omega is finite, c(σ)=0c_{\ell}(\sigma) = 0 for all sufficiently large \ell. Also,

1c(σ)=Ω.\sum_{\ell \geq 1} \ell c_{\ell}(\sigma) = \card{\Omega}.

Definition 5.2 (Cycle index).

Suppose that a finite group GG acts on a finite set Ω\Omega. Since each gGg \in G determines a permutation of Ω\Omega, we can consider its cycle numbers c(g)c_{\ell}(g). Define the cycle index of GG by

ZG,Ω(s1,s2,)1GgG1sc(g).\Zcycle_{G,\Omega}(s_{1}, s_{2}, \dots) \coloneqq \frac{1}{\card{G}} \sum_{g \in G} \prod_{\ell \geq 1} s_{\ell}^{c_{\ell}(g)}.

In this note, we define the cycle index as an average over the group elements. Strictly speaking, the cycle index is not determined by the abstract group GG alone; it depends on how GG acts on which finite set Ω\Omega. Even for the same group, different actions can give different cycle indices. Some references use the unnormalised version without the factor 1/G1/\card{G}. Either convention has the same substance, but in Pólya enumeration the averaged version corresponds directly to Burnside's lemma.

Example 5.3 (Rotation group of a triangle).

Let Ω\Omega be the set of the three vertices of a triangle, and suppose that G=Z/3ZG = \mathbb{Z}/3\mathbb{Z} acts on Ω\Omega by rotations. The identity transformation fixes the three points, so its cycle type is c1=3c_{1} = 3. The two non-trivial rotations each rotate the three vertices in one 33-cycle, so their cycle type is c3=1c_3=1. Therefore

ZG,Ω(s1,s2,s3,)=13(s13+2s3).\Zcycle_{G,\Omega}(s_{1}, s_{2}, s_{3}, \dots) = \frac{1}{3}\left( s_{1}^{3} + 2s_{3} \right).

For example, if one colours the vertices of the triangle with two colours, one may substitute s1=2s_{1}=2, s3=2s_{3}=2 into the variables of the cycle index. This corresponds, in the Pólya enumeration we shall see later, to reading that there are two choices of colour both for cycles of length 11 and for cycles of length 33. Then the number of orbits is

13(23+22)=4.\frac{1}{3}\left(2^{3}+2\cdot 2\right)=4.

In other words, substituting into the cycle index shows that there are four two-colourings up to rotation.

The cycle index does not record all the information of the group action. However, it compresses the information needed for counting colourings very efficiently. We shall see this point in the next section.

Pólya Enumeration

Pólya enumeration is a method for counting colourings considered the same under a group action. Here we state the weighted form.

Let the finite set Ω\Omega be the set of "places", and let the finite set AA be the set of "colours". A colouring means a map f ⁣:ΩAf \colon \Omega \to A. If GG acts on Ω\Omega, then GG also acts on the set of all colourings AΩA^{\Omega}. The action is defined by

(gf)(x)=f(g1x).(g \cdot f)(x) = f(g^{-1} \cdot x).

This definition means that we first move the place back by g1g^{-1} and then look at the colour. It can be thought of as constructing a pullback action on functions from an action on places. We use g1g^{-1} here so that the action on the set of colourings is also a left action. With this definition, g(hf)=(gh)fg\cdot(h\cdot f)=(gh)\cdot f holds.

Assign a weight variable waw_{a} to each colour aAa \in A. Define the weight monomial of a colouring ff by

mon(f)=xΩwf(x).\mon(f) = \prod_{x \in \Omega} w_{f(x)}.

This weight monomial does not change under the action of GG. Indeed, gg is only permuting the order of the factors in the product. Thus, for an orbit O\mathcal{O} of colourings, its weight monomial mon(O)\mon(\mathcal{O}) is well-defined.

Theorem 6.1 (Pólya's enumeration theorem).

Suppose that a finite group GG acts on a finite set Ω\Omega. Let AA be the colour set, and assign a weight variable waw_{a} to each colour aAa \in A. For 1\ell \geq 1, set

P=aAwa.P_{\ell} = \sum_{a \in A} w_{a}^{\ell}.

Then the sum of the orbit weight monomials of colourings is given by

OAΩ/Gmon(O)=ZG,Ω(P1,P2,P3,).\sum_{\mathcal{O} \in A^{\Omega}/G}\mon(\mathcal{O}) = \Zcycle_{G,\Omega}(P_{1}, P_{2}, P_{3}, \dots).
Proof

Use Burnside's lemma in weighted form. Since the weight monomial is constant on each orbit, the sum of the orbit weight monomials is equal to

1GgGfAΩgf=fmon(f).\frac{1}{\card{G}} \sum_{g \in G} \sum_{\substack{f \in A^{\Omega} \\ g \cdot f = f}} \mon(f).

Indeed, fixing one orbit O\mathcal{O}, for each ff in that orbit the number of group elements fixing it is StabG(f)\card{\Stab_{G}(f)}. By the orbit–stabiliser theorem, the contribution from the whole orbit is

1GOStabG(f)mon(f)=mon(O).\frac{1}{\card{G}} \card{\mathcal{O}}\card{\Stab_G(f)}\mon(f) = \mon(\mathcal{O}).

Next fix gGg \in G and count the colourings fixed by gg. A colouring ff satisfies gf=fg \cdot f = f if and only if ff is constant on each cycle of gg. If one colours a cycle of length \ell with a colour aAa \in A, the contribution to the weight monomial is waw_{a}^{\ell}. Therefore the contribution from one cycle of length \ell is

P=aAwa.P_{\ell} = \sum_{a \in A} w_{a}^{\ell}.

Since gg has c(g)c_{\ell}(g) cycles of length \ell, the sum of the weight monomials of all colourings fixed by gg is

1Pc(g).\prod_{\ell \geq 1} P_{\ell}^{c_{\ell}(g)}.

Averaging this over gGg \in G gives

1GgG1Pc(g)=ZG,Ω(P1,P2,P3,).\frac{1}{\card{G}} \sum_{g \in G}\prod_{\ell \geq 1} P_{\ell}^{c_{\ell}(g)} = \Zcycle_{G,\Omega}(P_{1}, P_{2}, P_{3}, \dots).
End of proof

What this theorem shows is that the cycle index records all at once the "sum of the weight monomials of the colourings fixed" by the group elements. On a cycle of a permutation gg, a fixed colouring must be constant. Therefore the term waw_{a}^{\ell} appears for a cycle of length \ell. This idea of "multiplying the contributions cycle by cycle and averaging over the whole group" is the core of the cycle index.

Burnside's lemma and Pólya enumeration up to this point are preparation for understanding what the cycle index used later records as an "average over the group elements". In the proof of the MacWilliams identity below, we do not directly apply Pólya's enumeration theorem itself. Rather, we apply a cycle-index-like average expression to the permutation group constructed from a code, and finally extract the dual code using the orthogonality of additive characters.

Constructing a Permutation Group from a Code

We now return to coding theory. We construct a permutation group from a linear code CFqEC \leq \F_{q}^{E}. Write q=pmq = p^{m}, and let pp be the characteristic.

In the earlier example, CC acted by translations on the whole space V=FqEV=\F_q^E. Here we consider a different action. The previous action was for decomposing the whole space V=FqEV=\F_q^E into cosets of CC. The action used here is for looking at the cycle type of the permutation obtained on each coordinate fibre {e}×Fq\{e\}\times\F_q. Since the purpose is different, the set acted on is also changed from VV to ΩC=E×Fq\Omega_C=E\times\F_q, defined below. For each coordinate ee, prepare one copy of Fq\F_q, and on that copy {e}×Fq\{e\}\times\F_q translate by cec_e. With this construction, whether each coordinate of a codeword is zero or non-zero, and hence the Hamming weight, becomes visible as the cycle type of a permutation. To distinguish the non-zero values themselves, we shall need the complete cycle index introduced later.

Consider the set

ΩCE×Fq.\Omega_{C} \coloneqq E\times \F_{q}.

This is the set obtained by placing one copy of Fq\F_q for each coordinate eEe \in E. If desired, one can also view the fibre above ee under the projection

E×FqE,(e,a)eE\times\F_q \to E, \qquad (e,a)\mapsto e

as {e}×Fq\{e\}\times\F_q. Below, however, for readers meeting this for the first time, we shall call it the "ee-th copy". For a codeword c=(ce)eECc = (c_{e})_{e \in E} \in C, define a permutation σc\sigma_{c} of ΩC\Omega_{C} by

σc(e,a)=(e,a+ce)(eE,aFq).\sigma_{c}(e, a) = (e, a + c_{e}) \qquad(e \in E,\, a \in \F_{q}).

Thus, on the ee-th copy {e}×Fq\{e\}\times\F_q, we translate Fq\F_{q} by cec_{e}.

Proposition 7.1.

The map

CSym(ΩC),cσcC \to \Sym(\Omega_{C}), \qquad c \mapsto \sigma_{c}

is an injective homomorphism from CC, as an additive group, to a permutation group. Therefore

G(C){σc:cC}G(C) \coloneqq \{ \sigma_{c} : c \in C \}

is a permutation group isomorphic to CC.

Proof

Let c,dCc, d \in C. For any (e,a)ΩC(e, a) \in \Omega_{C},

σc(σd(e,a))=σc(e,a+de)=(e,a+de+ce)=σc+d(e,a).\sigma_{c}(\sigma_{d}(e, a)) = \sigma_{c}(e, a + d_{e}) = (e, a + d_{e} + c_{e}) = \sigma_{c+d}(e,a).

Hence σcσd=σc+d\sigma_{c}\sigma_{d} = \sigma_{c+d}, so the map is a homomorphism.

Also, if σc\sigma_{c} is the identity permutation, then for every eEe \in E and every aFqa \in \F_{q} we have a+ce=aa + c_{e} = a. Therefore ce=0c_{e} = 0 for all ee, so c=0c = 0. Thus the map is injective.

End of proof

In what follows, we use this injection to index the elements of G(C)G(C) by codewords cCc \in C, and write averages over G(C)G(C) as averages over CC.

Computing the cycle index of this permutation group G(C)G(C) gives the weight enumerator. First look at one coordinate. If ce=0c_{e} = 0, then the map aa+cea \mapsto a + c_{e} is the identity map, so it has qq 11-cycles on Fq\F_{q}. On the other hand, if ce0c_{e} \neq 0, then aa+cea \mapsto a + c_{e} is a non-trivial translation. In the additive group of the finite field Fq\F_{q}, the additive order of a non-zero element cec_{e} is pp. Therefore each orbit of this translation has length pp, and Fq\F_{q} decomposes into q/pq/p pp-cycles. Here it is important that the cycle length is pp, not qq. As an additive group, Fq\F_q is an mm-dimensional vector space over Fp\F_p, so for any non-zero element dd we get a cycle of length pp of the form

0, d, 2d, , (p1)d.0,\ d,\ 2d,\ \dots,\ (p-1)d.

Thus the whole of Fq\F_q splits into q/pq/p pp-cycles. For example, when q=4q=4, the characteristic is p=2p=2. Therefore a non-zero translation aa+da\mapsto a+d does not make the four points of F4\F_4 into a single 44-cycle, but splits them into two 22-cycles.

Theorem 7.2 (Cycle index of the permutation group of a code).

Let CFqEC \leq \F_{q}^{E} be a linear code, and let q=pmq = p^{m}. The cycle index of the permutation group G(C)G(C) defined above is

ZG(C),ΩC(s1,s2,)=1CcCs1q(nwt(c))sp(q/p)wt(c).(7.1)\Zcycle_{G(C),\Omega_C}(s_{1}, s_{2}, \dots) = \frac{1}{\card{C}} \sum_{c \in C} s_{1}^{q(n - \wt(c))} s_{p}^{(q/p)\wt(c)}. \tag{7.1}
Proof

Fix cCc \in C. At a coordinate ee with ce=0c_{e} = 0, the set {e}×Fq\{ e \} \times \F_{q} contains qq 11-cycles. The number of such coordinates is nwt(c)n - \wt(c). Therefore the total number of 11-cycles is q(nwt(c))q(n - \wt(c)).

On the other hand, at a coordinate ee with ce0c_{e} \neq 0, the translation on {e}×Fq\{ e \} \times \F_{q} splits into q/pq/p pp-cycles. The number of such coordinates is wt(c)\wt(c), so the total number of pp-cycles is (q/p)wt(c)(q/p)\wt(c). No cycles of any other length appear.

Hence the cycle-index monomial of σc\sigma_{c} is

s1q(nwt(c))sp(q/p)wt(c).s_{1}^{q(n - \wt(c))} s_{p}^{(q/p)\wt(c)}.

Averaging this over cCc \in C gives (7.1).

End of proof

This viewpoint, in which the ordinary cycle index of the permutation group obtained from a code records the Hamming weight enumerator, appears in Cameron [Cam02]. In this note, we later refine this viewpoint by adding translation amounts so that it corresponds to the complete weight enumerator.

From Theorem 7.2, we see that the cycle index of G(C)G(C) essentially contains the weight enumerator of CC. To read this without using fractional powers, set

U0=s1q,U1=spq/p.U_{0} = s_{1}^{q}, \qquad U_{1} = s_{p}^{q/p}.

Then (7.1) can be written as

ZG(C),ΩC(s1,s2,)=1CWC(U0,U1).\Zcycle_{G(C),\Omega_C}(s_{1}, s_{2}, \dots) = \frac{1}{\card{C}} W_{C}(U_{0}, U_{1}).

Thus, in the ordinary cycle index, s1s_{1} and sps_{p} are the ingredients for U0U_{0} and U1U_{1} respectively, and we obtain

1CWC(U0,U1).\frac{1}{\card{C}} W_{C}(U_{0}, U_{1}).

Here we read not s1s_{1} and sps_{p} themselves, but their powers U0,U1U_{0}, U_{1} as the variables of the weight enumerator.

In other words, the Hamming weight of a codeword can be read as the cycle type of the corresponding permutation. Zero coordinates produce qq fixed points, and non-zero coordinates produce q/pq/p pp-cycles. In this sense, the weight enumerator is a specialisation of the cycle index.

From the Ordinary Cycle Index to the Complete Cycle Index

The ordinary cycle index seen in the preceding section is enough to record the Hamming weight enumerator. However, the ordinary cycle index has one weakness. It regards permutations simply as permutations and records only their cycle lengths. For this reason, it does not distinguish which value each non-zero component ce0c_{e} \neq 0 has.

For example, when q=5q = 5, both ce=1c_{e} = 1 and ce=2c_{e} = 2 give a translation aa+cea \mapsto a + c_{e} that is a 55-cycle. Thus the ordinary cycle index alone cannot see the difference between 11 and 22. This is not a problem for the Hamming weight enumerator, since all non-zero values are identified there, but to write the MacWilliams identity more naturally in the language of cycle indices, it is useful to refine the record so that it remembers the translation amount at each coordinate.

What we want to retain here is the additional labelled information consisting of the coordinate fibre {e}×Fq\{e\}\times\F_q of ΩC=E×Fq\Omega_C=E\times\F_q and the translation amount cec_e used on it. This information cannot be recovered from the cycle type of the permutation σc\sigma_c alone. In the special situation of the translation permutation group constructed from a code, we record this labelled information so that it corresponds to the complete weight enumerator.

Thus, for each aFqa \in \F_{q}, prepare a variable xax_{a}. Here xax_a is a variable of the complete weight enumerator, and is different notation from ZG,Ω\Zcycle_{G,\Omega}, which denotes the ordinary cycle index. To a codeword cCc \in C, associate the monomial

eExce.\prod_{e \in E} x_{c_{e}}.

This records which translation aa+cea \mapsto a + c_{e} is used on each coordinate fibre {e}×Fq\{e\}\times\F_q.

Definition 8.1 (Complete weight enumerator).

The complete weight enumerator of a linear code CFqEC \leq \F_{q}^{E} is defined by

cweC((xa)aFq)=cCeExce.\cwe_{C}((x_{a})_{a \in \F_{q}}) = \sum_{c \in C} \prod_{e \in E} x_{c_{e}}.

For a standard treatment of the MacWilliams identity itself for complete weight enumerators, see MacWilliams–Sloane [MS77, Chapters 5 and 19]. What this note emphasises, however, is the point that this identity can be read as an identity for the complete cycle index of the translation permutation group constructed from a code.

Definition 8.2 (Complete cycle index).

For a linear code CFqEC \leq \F_{q}^{E}, define

cZC((xa)aFq)=1CcCeExce.\cZ_{C}((x_{a})_{a \in \F_{q}}) = \frac{1}{\card{C}} \sum_{c \in C} \prod_{e \in E} x_{c_{e}}.

In this note, we call this the complete cycle index of CC.

With this definition,

cweC((xa)aFq)=CcZC((xa)aFq).\cwe_C((x_{a})_{a \in \F_{q}}) = \card{C}\,\cZ_{C}((x_{a})_{a \in \F_{q}}).

Thus the complete cycle index is the complete weight enumerator normalised as an average over the group elements. One should note that the complete cycle index in this note is not the ordinary cycle index itself that is defined standardly for a general permutation group. Whereas the ordinary cycle index looks only at cycle lengths of permutations, the cZC\cZ_C of this note is a record that retains the labels coming from the code, namely the coordinate fibre {e}×Fq\{e\}\times\F_q and the translation amount cec_e. Thus cZC\cZ_C is not determined by the cycle type of the permutation alone, but depends on the expression involving the coordinate values cec_e of the codeword cc. What is called a complete cycle index in the literature is sometimes defined as a larger polynomial recording the cycle lengths of permutations together with information about the group element, using variables such as s(h,i)s(h,i). In this note, we use cZC\cZ_C only for translation permutation groups coming from codes, specialised to the form that corresponds directly to the complete weight enumerator, and then averaged by dividing by C\card{C}. This viewpoint is in line with the relation between complete cycle indices and complete weight enumerators treated by Miezaki–Oura [MO19]. Here we extract only the part needed for the variable transformation in the MacWilliams identity.

The Hamming weight enumerator is a specialisation of the complete weight enumerator. Indeed, if we set

x0=X,xa=Y(a0),x_{0} = X, \qquad x_{a} = Y \quad(a \neq 0),

then, for any cCc \in C,

eExce=Xnwt(c)Ywt(c).\prod_{e \in E} x_{c_{e}} = X^{n - \wt(c)} Y^{\wt(c)}.

Hence

cweC((xa))x0=X,xa=Y(a0)=WC(X,Y).\cwe_{C}((x_{a}))\bigg|_{x_{0} = X,\, x_{a} = Y \, (a \neq 0)} = W_{C}(X,Y).

The important point here is that the variable transformation

XX+(q1)Y,YXYX \mapsto X + (q - 1)Y, \qquad Y \mapsto X - Y

in the MacWilliams identity comes from a more symmetric transformation at the level of complete weight enumerators. That transformation is given by the character table of the additive group (Fq,+)(\F_q,+) of the finite field Fq\F_q. We shall see this in the next section.

The Character-Table Transform in One Coordinate

From here on, we transform variables on the finite set Fq\F_q as in a finite Fourier transform. The basis describing that transform is given by the characters of the additive group (Fq,+)(\F_q,+).

To prove the MacWilliams identity at the level of complete weight enumerators, fix a non-trivial additive character of the finite field Fq\F_{q}. That is, take a map ψ ⁣:FqC×\psi \colon \F_{q} \to \C^{\times} satisfying

ψ(a+b)=ψ(a)ψ(b)\psi(a + b) = \psi(a)\psi(b)

and not identically equal to 11. In particular, when q=pq=p, one may think of ψ(a)=exp(2π1a/p)\psi(a)=\exp(2\pi \sqrt{-1}a/p). For a general q=pmq=p^m, one obtains such an additive character by using the trace map from Fq\F_q to Fp\F_p and defining

ψ(a)=exp(2π1pTrFq/Fp(a)).\psi(a) = \exp\left( \frac{2 \pi \sqrt{-1}}{p} \Tr_{\F_{q}/\F_{p}}(a) \right).

Here TrFq/Fp(a)\Tr_{\F_q/\F_p}(a) is an element of Fp\F_p, but inside the exponential function we represent it by one of 0,1,,p10,1,\dots,p-1 and read it as an integer.

For the standard background on Fourier analysis on finite groups and character tables, see Terras [Ter99]. For the trace map and additive characters of finite fields, Lidl–Niederreiter [LN83] is standard.

We shall use only the following property.

Lemma 9.1.

For bFqb \in \F_{q},

aFqψ(ab)={q,b=0,0,b0\sum_{a \in \F_{q}}\psi(ab) = \begin{cases} q, & b = 0,\\ 0, & b \neq 0 \end{cases}

holds.

Proof

If b=0b = 0, then ψ(ab)=ψ(0)=1\psi(ab) = \psi(0) = 1 for all aFqa \in \F_{q}, so the sum is qq.

Suppose that b0b \neq 0. Then the map aaba \mapsto ab is a bijection of Fq\F_{q}, so

aFqψ(ab)=tFqψ(t).\sum_{a \in \F_{q}} \psi(ab) = \sum_{t \in \F_{q}} \psi(t).

Write the right-hand side as SS. Since ψ\psi is non-trivial, there exists dFqd \in \F_{q} such that ψ(d)1\psi(d) \neq 1. As tt runs over all of Fq\F_{q}, so does t+dt + d, and hence

S=tFqψ(t+d)=tFqψ(t)ψ(d)=ψ(d)S.S = \sum_{t \in \F_{q}}\psi(t + d) = \sum_{t \in \F_{q}}\psi(t)\psi(d) = \psi(d)S.

Since ψ(d)1\psi(d) \neq 1, we get S=0S = 0.

End of proof

Next, define a one-coordinate transform of the variables xax_{a}. For each bFqb \in \F_{q}, set

xbaFqψ(ab)xa.(9.1)x_{b}^{\ast} \coloneqq \sum_{a \in \F_{q}} \psi(ab) x_{a}. \tag{9.1}

This is the result of multiplying the variable vector (xa)aFq(x_{a})_{a \in \F_{q}} by the character table of the additive group (Fq,+)(\F_q,+) of Fq\F_{q}. Indeed, for bFqb \in \F_q, if we set

χb(a)=ψ(ab),\chi_b(a)=\psi(ab),

then χb\chi_b is an additive character of (Fq,+)(\F_q,+), and as bb runs over all of Fq\F_q, all additive characters appear exactly once. The placement of the indices is a matter of convention, but in this note we define the new bb-th variable by xb=aψ(ab)xax_b^\ast=\sum_a\psi(ab)x_a. Some references use conventions involving ψ(ab)\psi(-ab) or the transpose matrix. With the convention in this note, we define xb=aψ(ab)xax_b^\ast=\sum_a\psi(ab)x_a so that, when expanded later, the sum cCψ(uc)\sum_{c\in C}\psi(u\cdot c) appears. If we consider the matrix indexed by rows and columns a,bFqa, b \in \F_{q},

Ha,b=ψ(ab),H_{a, b} = \psi(ab),

then (9.1) can be written as

xb=aFqHa,bxa.x_{b}^{\ast} = \sum_{a \in \F_{q}} H_{a, b} x_{a}.

In Pólya enumeration, we substituted

saAwas_{\ell} \mapsto \sum_{a \in A} w_{a}^{\ell}

into the cycle index. Here, for the complete cycle index, we substitute the variable transformation given by the character table of the additive group (Fq,+)(\F_q,+). This transformation produces the complete weight enumerator of the dual code.

The Complete-Weight-Enumerator MacWilliams Identity and the Complete Cycle Index

We prove the MacWilliams identity for complete weight enumerators. This is also a formula for a variable transformation of the complete cycle index.

Theorem 10.1 (Complete-weight-enumerator MacWilliams identity).

Let CFqEC \leq \F_{q}^{E} be a linear code. For each bFqb \in \F_{q}, define

xb=aFqψ(ab)xa.x_{b}^{\ast} = \sum_{a \in \F_{q}}\psi(ab) x_{a}.

Then

cweC((xa)aFq)=1CcweC((xb)bFq)(10.1)\cwe_{C^{\perp}}((x_{a})_{a \in \F_{q}}) = \frac{1}{\card{C}} \cwe_{C}((x_{b}^{\ast})_{b \in \F_{q}}) \tag{10.1}

holds.

Proof

Expand the numerator on the right-hand side.

cweC((xb)bFq)=cCeExce=cCeE(ueFqψ(uece)xue)=cCuFqE(eEψ(uece))eExue.\begin{aligned} \cwe_{C}((x_{b}^{\ast})_{b \in \F_{q}}) &= \sum_{c \in C} \prod_{e \in E} x_{c_{e}}^\ast \\ &= \sum_{c \in C} \prod_{e \in E} \left( \sum_{u_{e} \in \F_{q}} \psi(u_{e} c_{e}) x_{u_{e}} \right) \\ &= \sum_{c \in C} \sum_{u \in \F_q^E} \left(\prod_{e \in E} \psi(u_{e} c_{e}) \right) \prod_{e \in E} x_{u_{e}}. \end{aligned}

By the property of an additive character,

eEψ(uece)=ψ(eEuece)=ψ(uc).\prod_{e \in E} \psi(u_{e} c_{e}) = \psi\left(\sum_{e \in E} u_{e} c_{e} \right) = \psi(u \cdot c).

Therefore, interchanging the order of summation gives

cweC((xb))=uFqE(cCψ(uc))eExue.(10.2)\cwe_{C}((x_{b}^{\ast})) = \sum_{u \in \F_{q}^{E}} \left( \sum_{c \in C} \psi(u \cdot c) \right) \prod_{e \in E} x_{u_{e}}. \tag{10.2}

Now examine the inner sum. If uCu \in C^{\perp}, then uc=0u \cdot c = 0 for every cCc \in C, so

cCψ(uc)=C.\sum_{c \in C}\psi(u \cdot c) = \card{C}.

On the other hand, if uCu \notin C^{\perp}, then there exists c0Cc_{0} \in C such that uc00u \cdot c_{0} \neq 0. Put duc0d \coloneqq u \cdot c_{0}, so that d0d \neq 0. Consider the sum

S=cCψ(uc).S = \sum_{c \in C} \psi(u \cdot c).

Choose λFq\lambda \in \F_{q} later. Since CC is a linear code, λc0C\lambda c_{0} \in C, and as cc runs over all of CC, so does c+λc0c + \lambda c_{0}, exactly once. Hence

S=cCψ(u(c+λc0))=cCψ(uc)ψ(λd)=ψ(λd)S.S = \sum_{c \in C} \psi(u \cdot (c + \lambda c_{0})) = \sum_{c \in C} \psi(u \cdot c) \psi(\lambda d) = \psi(\lambda d)S.

Since d0d \neq 0, the map λλd\lambda \mapsto \lambda d is a bijection, and since ψ\psi is non-trivial, there exists λFq\lambda \in \F_{q} such that ψ(λd)1\psi(\lambda d) \neq 1. Therefore S=0S=0.

Thus

cCψ(uc)={C,uC,0,uC.\sum_{c \in C} \psi(u \cdot c) = \begin{cases} \card{C}, & u\in C^{\perp},\\ 0, & u\notin C^{\perp}. \end{cases}

Substituting this into (10.2), we get

cweC((xb))=CuCeExue=CcweC((xa)).\begin{aligned} \cwe_{C}((x_{b}^{\ast})) &= \card{C} \sum_{u \in C^{\perp}} \prod_{e \in E} x_{u_{e}} \\ &= \card{C}\,\cwe_{C^{\perp}}((x_{a})). \end{aligned}

Dividing both sides by C\card{C} gives the claim.

End of proof

The equality obtained at the end of the proof is, for the unnormalised complete weight enumerator,

cweC((xb)bFq)=CcweC((xa)aFq).\cwe_{C}((x_{b}^{\ast})_{b \in \F_q}) = \card{C}\,\cwe_{C^\perp}((x_{a})_{a \in \F_q}).

On the other hand, since cZC=C1cweC\cZ_C=\card{C}^{-1}\cwe_C, applying the character-table transform to the complete cycle index gives

cZC((xb)bFq)=cweC((xa)aFq).\cZ_{C}((x_{b}^{\ast})_{b \in \F_q}) = \cwe_{C^\perp}((x_{a})_{a \in \F_q}).

Thus what appears at this stage is the complete weight enumerator of the dual code.

If we want to write the formula between complete cycle indices, we must also use cZC=C1cweC\cZ_{C^\perp}=\card{C^\perp}^{-1}\cwe_{C^\perp}. Since the standard inner product is non-degenerate, we have dimC+dimC=n\dim C+\dim C^\perp=n, and therefore CC=qn\card{C}\card{C^\perp}=q^n. Hence

cZC((xa))=CqncZC((xb))\cZ_{C^{\perp}}((x_{a})) = \frac{\card{C}}{q^{n}}\, \cZ_{C}((x_{b}^{\ast}))

is the resulting form. Therefore one must distinguish the statement that, with the normalisation in this note, applying the character-table transform to the complete cycle index gives the complete weight enumerator of the dual code, from the statement that, when written between complete cycle indices, a factor C/qn\card{C}/q^n appears.

This proof is very close to the usual character-theoretic proof. However, here we regard each codeword as a "monomial of the complete cycle index", and transform the complete cycle index using the character table. In this sense, the MacWilliams identity can be read as

a character-table transform of the complete cycle index of the translation permutation group constructed from a code.

Specialisation to the Hamming Weight Enumerator

Finally, we derive the usual MacWilliams identity from the complete-weight- enumerator version. Specialise the variables by setting

x0=X,xa=Y(a0).x_{0} = X, \qquad x_{a} = Y \quad(a \neq 0).

Then, if b=0b=0,

x0=aFqxa=X+(q1)Y.x_{0}^{\ast} = \sum_{a \in \F_{q}} x_{a} = X + (q - 1)Y.

On the other hand, if b0b \neq 0, then by Lemma 9.1,

aFqψ(ab)=0,\sum_{a \in \F_{q}} \psi(ab) = 0,

and hence

xb=aFqψ(ab)xa=x0+YaFq×ψ(ab)=X+Y(aFqψ(ab)1)=XY.\begin{aligned} x_{b}^{\ast} &= \sum_{a \in \F_{q}} \psi(ab)x_{a} \\ &= x_{0} + Y \sum_{a \in \F_{q}^{\times}} \psi(ab) \\ &= X + Y\left( \sum_{a \in \F_{q}} \psi(ab) - 1 \right) \\ &= X - Y. \end{aligned}

Therefore, when the complete-weight-enumerator MacWilliams identity

cweC((xa))=1CcweC((xb))\cwe_{C^{\perp}}((x_{a})) = \frac{1}{\card{C}}\cwe_{C}((x_{b}^{\ast}))

is read under this specialisation, the left-hand side becomes WC(X,Y)W_{C^{\perp}}(X, Y), and the right-hand side becomes

1CWC(X+(q1)Y,XY).\frac{1}{\card{C}} W_{C}\bigl( X + (q - 1)Y, X - Y \bigr).

Thus we obtain the following.

Theorem 11.1 (MacWilliams identity).

Let CFqEC \leq \F_{q}^{E} be a linear code. Then

WC(X,Y)=1CWC(X+(q1)Y,XY)W_{C^{\perp}}(X, Y) = \frac{1}{\card{C}} W_{C}\bigl( X + (q - 1)Y, X - Y \bigr)

holds.

Proof

We have now reached the MacWilliams identity from the viewpoint of group actions and cycle indices. If one looks only at the end of the proof, it may look like a calculation with character sums, but the viewpoint of this note lies in the preceding step: codewords are viewed as translation permutations and embedded into a cycle index.

A Small Example: the Binary Repetition Code of Length 33

Let us check this in a concrete example. Let E={1,2,3}E = \{ 1, 2, 3 \}, and consider the binary repetition code

C={000,111}F23.C = \{ 000, 111 \} \leq \F_{2}^{3}.

Its dual code is the binary even-weight code of length 33,

C={000,110,101,011}.C^{\perp} = \{ 000, 110, 101, 011 \}.

First, construct the permutation group from CC. The set is

ΩC={1,2,3}×F2.\Omega_{C} = \{ 1, 2, 3 \} \times \F_{2}.

The zero word 000000 is the identity permutation, so it has 66 fixed points. On the other hand, 111111 swaps 00 and 11 on each copy {e}×F2\{ e \} \times \F_{2}, so it has three 22-cycles. Therefore the ordinary cycle index is

ZG(C),ΩC(s1,s2,)=12(s16+s23).\Zcycle_{G(C),\Omega_C}(s_{1}, s_{2}, \dots) = \frac{1}{2}(s_{1}^{6} + s_{2}^{3}).

Since we are in the binary case, if we set

U0=s12,U1=s2,U_{0} = s_{1}^{2}, \qquad U_{1} = s_{2},

then

2ZG(C),ΩC(s1,s2,)=U03+U13=WC(U0,U1).2\Zcycle_{G(C),\Omega_C}(s_{1}, s_{2}, \dots) = U_{0}^{3} + U_{1}^{3} = W_{C}(U_{0}, U_{1}).

After that, reading U0=XU_{0}=X, U1=YU_{1}=Y gives

WC(X,Y)=X3+Y3.W_{C}(X,Y)=X^{3}+Y^{3}.

Next, looking at the complete weight enumerator, we have

cweC(x0,x1)=x03+x13.\cwe_{C}(x_{0}, x_{1}) = x_{0}^{3} + x_{1}^{3}.

Therefore the complete cycle index in the sense of this note is

cZC(x0,x1)=12(x03+x13).\cZ_{C}(x_{0}, x_{1}) = \frac{1}{2}(x_{0}^{3} + x_{1}^{3}).

The non-trivial additive character of F2\F_{2} is ψ(a)=(1)a\psi(a) = (-1)^{a}, so the character-table transform is

x0=x0+x1,x1=x0x1.x_{0}^{\ast} = x_{0} + x_{1}, \qquad x_{1}^{\ast} = x_{0} - x_{1}.

Therefore

1CcweC(x0,x1)=12((x0+x1)3+(x0x1)3)=x03+3x0x12.\begin{aligned} \frac{1}{\card{C}} \cwe_{C}(x_{0}^{\ast}, x_{1}^{\ast}) &= \frac{1}{2}\left((x_{0} + x_{1})^{3} + (x_{0} - x_{1})^{3} \right)\\ &= x_{0}^{3} + 3x_{0}x_{1}^{2}. \end{aligned}

On the other hand, the complete weight enumerator of the even-weight code C={000,110,101,011}C^{\perp} = \{ 000, 110, 101, 011 \} is

cweC(x0,x1)=x03+3x0x12.\cwe_{C^{\perp}}(x_{0}, x_{1}) = x_{0}^{3} + 3x_{0} x_{1}^{2}.

Thus the complete-weight-enumerator MacWilliams identity indeed holds.

Specialising to the Hamming weight enumerator gives

WC(X,Y)=X3+Y3,WC(X,Y)=X3+3XY2.W_{C}(X, Y) = X^{3} + Y^{3}, \qquad W_{C^{\perp}}(X, Y) = X^{3} + 3XY^{2}.

The MacWilliams identity is

12WC(X+Y,XY)=12((X+Y)3+(XY)3)=X3+3XY2=WC(X,Y).\begin{aligned} \frac{1}{2}W_{C}(X + Y, X - Y) &= \frac{1}{2}\left((X + Y)^{3} + (X - Y)^{3} \right)\\ &= X^{3} + 3XY^{2} = W_{C^{\perp}}(X,Y). \end{aligned}

In this example, the ordinary cycle index records information which, after removing the normalisation and specialising appropriately, becomes WC(X,Y)=X3+Y3W_{C}(X, Y) = X^{3} + Y^{3}. Also, the complete cycle index itself is 12(x03+x13)\frac{1}{2}(x_{0}^{3} + x_{1}^{3}), and removing the normalisation gives the complete weight enumerator x03+x13x_{0}^{3} + x_{1}^{3}. With the normalisation in this note, applying the character-table transform to that complete cycle index gives the complete weight enumerator of the dual code. To write the formula between complete cycle indices, one further adjusts the normalisation by adding a factor.

What Were Group Actions and Cycle Indices Doing in This Proof?

Let us organise the roles played by group actions and cycle indices in this proof.

First, group actions allowed us to view codewords as permutations. A codeword cCc\in C gives, at each coordinate, the translation

aa+ce.a\mapsto a+c_e.

By placing these translations on all coordinate copies {e}×Fq\{e\}\times\F_q, we constructed the permutation group G(C)G(C) from the code CC.

Second, the ordinary cycle index recorded the Hamming weight. At a zero coordinate, qq fixed points appear; at a non-zero coordinate, q/pq/p pp-cycles appear. Therefore, from the cycle type of the permutation, one can read off the number of zero coordinates and the number of non-zero coordinates of the codeword. For this reason, the cycle index of G(C)G(C) essentially contains the weight enumerator of CC.

Third, the complete cycle index recorded the types of non-zero values as well. In the ordinary cycle index, non-zero translations have the same cycle type and so are not distinguished. Therefore, in addition to the cycle type of the permutation, we recorded the labelled information of the translation amount ceFqc_{e} \in \F_{q} on each coordinate fibre as the variable xcex_{c_{e}}. This record is the complete weight enumerator, and after dividing by C\card{C} it becomes what this note calls the complete cycle index.

Fourth, Pólya enumeration gave meaning to "averaging along a group action". In Burnside's lemma, the number of orbits appeared as an average of numbers of fixed points. In Pólya enumeration, substituting variables into the cycle index counted colourings with symmetries taken into account. In the coding-theoretic proof here as well, averaging the character values ψ(uc)\psi(u\cdot c) over cCc \in C extracted the dual code CC^{\perp}.

Fifth, the character-table transform extracted the dual code. When we put the transform

xb=aFqψ(ab)xax_{b}^{\ast} = \sum_{a \in \F_{q}} \psi(ab) x_{a}

into the variables of the complete cycle index, the expansion contains

cCψ(uc).\sum_{c \in C}\psi(u\cdot c).

This sum is C\card{C} only when uCu \in C^{\perp}, and is 00 otherwise. Thus, with the normalisation in this note, the transform of the complete cycle index becomes the complete weight enumerator of the dual code. To write the formula between complete cycle indices, one further includes the factor C/qn\card{C}/q^n.

In one sentence, the point is as follows.

The MacWilliams identity is the formula saying that, when one applies the character-table transform of the additive group (Fq,+)(\F_q,+) of the finite field Fq\F_q to the complete cycle index of the translation permutation group constructed from a code, the complete weight enumerator of the dual code appears, with a difference in normalisation.

Concepts Seen in This Part

In this part, while aiming for a proof of the MacWilliams identity, we introduced the basic tools of group actions and cycle indices. They can be organised as follows.

Group action

A structure realising group elements as permutations of a set. In coding theory, group actions appeared by viewing codewords as translations on the coordinate copies {e}×Fq\{e\}\times\F_q.

Orbit

The set of all points that can be reached by moving one point by group elements. A group action decomposes a set into orbits.

Stabiliser

The set of all group elements fixing a given point. By the orbit–stabiliser theorem, the product of the size of an orbit and the size of a stabiliser is the order of the group.

Fixed point

A point not moved by a given group element. In Burnside's lemma, the number of orbits was computed as an average of numbers of fixed points.

Burnside's lemma

A formula counting the number of orbits as the average number of fixed points. It is the basis of Pólya enumeration.

Cycle type

The numbers of cycles of each length when a permutation is decomposed into disjoint cycles.

Cycle index

A polynomial obtained by recording the cycle type of each group element as a monomial and averaging over the whole group. In Pólya enumeration, one counts orbits of colourings by substituting suitable variables into the cycle index.

Pólya enumeration

A method for counting colourings while taking symmetries into account. Since colouring a cycle of length \ell with one colour contributes waw_{a}^{\ell}, one substitutes P=awaP_{\ell}=\sum_a w_a^\ell into the cycle index.

Permutation group constructed from a code

The permutation group obtained by viewing a codeword cCc \in C as the permutation (e,a)(e,a+ce)(e, a) \mapsto (e, a + c_{e}) of E×FqE \times \F_{q}. Its cycle index essentially records the weight enumerator.

Complete cycle index

Not the ordinary cycle index itself, but a labelled record that keeps, as the variable xcex_{c_{e}}, the translation amount ceFqc_{e} \in \F_{q} on each coordinate fibre coming from the code. The complete cycle index in this note is this record divided by C\card{C} as a normalisation, and apart from this normalisation it is the complete weight enumerator.

Character-table transform

The variable transformation xb=aψ(ab)xax_{b}^{\ast} = \sum_{a} \psi(ab) x_{a} coming from the character table of the additive group (Fq,+)(\F_q,+) of the finite field Fq\F_q. With the normalisation in this note, applying this transform to the complete cycle index gives the complete weight enumerator of the dual code. To write the formula between complete cycle indices, one further includes the factor C/qn\card{C}/q^n.

Looking Back at This Proof Family

On the surface, the proof in this note is a proof using group actions, Burnside's lemma, Pólya enumeration, and cycle indices. On the other hand, if compressed into the five families, it is close to

Fourier, character, and Poisson methods.

The reason is that the principle ultimately extracting the dual code is the character orthogonality

cCψ(uc)={C,uC,0,uC\sum_{c\in C}\psi(u\cdot c) = \begin{cases} \card{C}, & u \in C^{\perp},\\ 0, & u\notin C^{\perp} \end{cases}

However, the viewpoint in this note has a different appearance from the usual character-theoretic proof. In the usual character-theoretic proof, CC^{\perp} is extracted directly as the annihilator subgroup of the characters. By contrast, in this note, we first represented the code as a permutation group, interpreted its cycle index as a weight enumerator, and then applied the character-table transform to the complete cycle index.

Thus, at a deep level this proof contains a Fourier-theoretic principle, but its surface-level tools are group actions and cycle indices. This difference is the phenomenon this series aims to look at: the same theorem can be seen in the languages of different areas.

Next Time

Finally, let us give the next preview in the series. The mathematical body of this note is complete at this point. Next time, we shall look at the MacWilliams identity from the side of factor graphs and partition functions.

In the proof in this note, we viewed codewords as permutations and understood the MacWilliams identity in the language of averages along group actions and cycle indices. Next time, we shall view a code as a collection of local constraints. That is, rather than treating all codewords as one large set, we shall decompose them into coordinates, check equations, and state variables, and express them as a partition function on a graph.

The main characters next time will be

local constraints → factor graphs → partition functions → dual graphs → the MacWilliams identity.

Even among proofs belonging to the same Fourier, character, and Poisson family, next time the viewpoint will be not to "transform all at once", but to glue local transformations together over the whole graph.

References

  1. [Cam02] Peter J. Cameron. Cycle index, weight enumerator, and Tutte polynomial. Electron. J. Combin., vol. 9, no. 1, pp. Note 2, 10, 2002. doi:10.37236/1663 ↩1 ↩2
  2. [MO19] Tsuyoshi Miezaki and Manabu Oura. On the cycle index and the weight enumerator. Des. Codes Cryptogr., vol. 87, no. 6, pp. 1237–1242, 2019. doi:10.1007/s10623-018-0518-x ↩1 ↩2
  3. [Ply37] G. Pólya. Kombinatorische Anzahlbestimmungen für Gruppen, Graphen und chemische Verbindungen. Acta Math., vol. 68, no. 1, pp. 145–254, 1937. doi:10.1007/BF02546665
  4. [HP73] Frank Harary and Edgar M. Palmer. Graphical enumeration. Academic Press, New York-London, pp. xiv+271, 1973
  5. [Cam95] Peter J. Cameron. Permutation groups. Handbook of combinatorics, Vol.\ 1,\ 2, pp. 611–645, 1995
  6. [MS77] F. J. MacWilliams and N. J. A. Sloane. The theory of error-correcting codes. II. North-Holland Publishing Co., Amsterdam-New York-Oxford, vol. Vol. 16, pp. i–ix and 370–762, 1977
  7. [Ter99] Audrey Terras. Fourier analysis on finite groups and applications. Cambridge University Press, Cambridge, vol. 43, pp. x+442, 1999. doi:10.1017/CBO9780511626265
  8. [LN83] Rudolf Lidl and Harald Niederreiter. Finite fields. Addison-Wesley Publishing Company, Advanced Book Program, Reading, MA, vol. 20, pp. xx+755, 1983

This series

A Series Learning through the MacWilliams Identity · Part 8 of 12

Back to series list

Disclaimer

Articles on this site are based on the operator's personal understanding, investigation, and research notes. I try to keep the content accurate, but it may contain errors or incomplete explanations. I do not guarantee its accuracy, completeness, usefulness, or currentness.

Please use the information on this site at your own judgment and responsibility. To the extent permitted by law, the operator is not liable for damages, losses, or disadvantages arising from using, or being unable to use, information on this site.

If you notice an error, unclear explanation, broken link, or insufficient citation, please contact the operator. I will review the content and, when appropriate, correct, update, or remove it.