Back to resources

Article and note

A Series Learning through the MacWilliams IdentityPart 7 of 12

An Introduction to Matroids and Tutte Polynomials through the MacWilliams Identity

This note introduces the matroid and Tutte-polynomial proof of the MacWilliams identity, starting from the rank function associated with a code.
Published:
Updated:
Reading time:
39 min (about 8,465 words)
Tagscoding theoryMacWilliams identitymatroidsTutte polynomialGreene theoremweight enumeratorfinite fields
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 let CFqEC \leq \F_{q}^{E} be a linear code over the finite field Fq\F_{q}, and consider its dual code

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

where

uc=eEueceu \cdot c = \sum_{e \in E} u_{e} c_{e}

is the standard inner product. In this note, for a word cFqEc \in \F_{q}^{E}, write the support of cc and its 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)}

respectively. Define the weight enumerator of the linear code CC by

WC(X,Y)cCXnwt(c)Ywt(c)W_{C}(X, Y) \coloneqq \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–6. However, to keep the perspective of the series clear, let us again begin by checking which proof family we are looking at. In this series, I look at proof methods for the MacWilliams identity under the following five broad families:

  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.

In this note, I focus on the fourth of these: the matroid and Tutte-polynomial approach. Thus the aim of Part 7 is to use a proof of the MacWilliams identity as a guide to an introduction to the matroid associated with a code, the Tutte polynomial, and Greene's theorem connecting them.

One point to keep in mind is that this note does not develop matroid theory systematically. Matroids have many basic notions, such as independent sets, bases, circuits, closure, flats, minors, and representability. However, to reach the MacWilliams identity, what we need is the rank function obtained from a code CFqEC \leq \F_{q}^{E}, and the Tutte polynomial defined from that rank function. I am considering writing a separate article introducing matroid theory from the viewpoint of coding theory, so I leave a systematic treatment of matroid theory for that occasion. Thus, in this note, we pass through the entrance to matroids by the shortest route and put the emphasis on the relation between weight enumerators and Tutte polynomials.

From the viewpoint of coding theory, the reason matroids appear naturally is as follows. If we look only at a subset AEA \subseteq E of the coordinate set EE, then the code CC gives the restricted code CA={cAFqAcC}FqA\res{C}{A} = \{ \res{c}{A} \in \F_{q}^{A} \mid c \in C \} \leq \F_{q}^{A}. Its dimension

rC(A)dimFq(CA)r_{C}(A) \coloneqq \dim_{\F_{q}}(\res{C}{A})

measures how much of the information in the code CC can be distinguished by the coordinates left in AA. This function rCr_{C} becomes the rank function of a matroid. On the other hand, the weight enumerator counts codewords according to the size of their supports. Thus, roughly speaking, Greene's theorem says:

From the Tutte polynomial collecting the dimensions of the restrictions to coordinate subsets, one can recover the distribution of supports of codewords.

This sentence is at the centre of the proof in this note.

The flow of the note is as follows. First, we define matroids by rank functions and construct a matroid M(C)M(C) from a code CFqEC \leq \F_{q}^{E} by rC(A)=dimFq(CA)r_{C}(A) = \dim_{\F_{q}}(\res{C}{A}). Next, we check that dual codes, puncturing, and shortening correspond to duality, deletion, and contraction for matroids. After that, we introduce the Tutte polynomial

TM(x,y)=AE(x1)rM(E)rM(A)(y1)ArM(A)\Tutte_{M}(x, y) = \sum_{A \subseteq E}(x - 1)^{r_{M}(E) - r_{M}(A)}(y - 1)^{\card{A}-r_{M}(A)}

and look at special values, duality, and the deletion-contraction formula. Finally, we prove Greene's theorem

WC(X,Y)=YndimC(XY)dimCTM(C)(X+(q1)YXY,XY)W_{C}(X, Y) = Y^{n - \dim C}(X - Y)^{\dim C} \Tutte_{M(C)}\left( \frac{X + (q - 1)Y}{X - Y}, \frac{X}{Y} \right)

and derive the MacWilliams identity from the duality of the Tutte polynomial.

Matroids were introduced by Whitney [Whi35]. A basic reference for the matroid version of the Tutte polynomial is Crapo [Cra69], and the relation between weight enumerators of codes and Tutte polynomials is due to Greene [Gre76]. For a survey of how properties of linear codes can be read from the Tutte polynomial starting from this theorem, see Britz–Cameron [BC22]. For a standard textbook on matroid theory, see Oxley [Oxl11].

Matroids, from Rank Functions

In this note, we define matroids by rank functions. As the phrase "by rank functions" suggests, matroids have many equivalent definitions, connected by what is called cryptomorphism. Roughly speaking, this is similar to the way a topology can be described by open sets, closed sets, interior operators, or closure operators, with axioms for each description, and once one of them is fixed the others are determined. For matroids, there are many axiom systems, including those using independent sets, dependent sets, bases, circuits, flats, and hyperplanes. In this note, we adopt the axioms for a rank function. This is the most natural formulation for a note starting from coding theory. From a code CFqEC \leq \F_{q}^{E}, we directly obtain, for each coordinate subset AEA \subseteq E, the dimension of the restricted code CA\res{C}{A}. The rank function here is an abstraction of this "dimension for each subset".

In this sense, one may interpret a matroid as an abstraction of the notion of dimension appearing in linear algebra. The word "matroid", introduced by Whitney [Whi35], comes from "matrix" plus the suffix "-oid", meaning something like a matrix. Indeed, if we consider a generator matrix of a linear code, then the dimension of CA\res{C}{A} corresponds to the rank of the submatrix consisting of the columns labelled by AA. In fact, if GG is a generator matrix of CC, then CA\res{C}{A} is the row space of the submatrix GA\res{G}{A} obtained by retaining only the columns of GG belonging to AA. That is,

rC(A)=dim(CA)=rank(GA)r_{C}(A) = \dim(\res{C}{A}) = \rank(\res{G}{A})

Thus M(C)M(C) may also be viewed as recording the linear dependence relations among the column vectors of a generator matrix. In this sense, a matroid really can be regarded as something "matrix-like".

Definition 2.1 (Matroid).

Let EE be a finite set and let r ⁣:2EZr \colon 2^{E} \to \mathbb{Z} be an integer-valued function. The pair M=(E,r)M = (E, r) is called a matroid if the following conditions hold for all A,BEA, B \subseteq E:

  1. 0r(A)A0\leq r(A) \leq \card{A}.

  2. If ABA \subseteq B, then r(A)r(B)r(A) \leq r(B).

  3. r(AB)+r(AB)r(A)+r(B)r(A \cup B) + r(A \cap B) \leq r(A) + r(B).

The set EE is called the ground set of MM, and rr is called the rank function of MM. When we want to emphasise MM, we write rMr_{M}. Also, r(A)r(A) is called the rank of AA, and r(M)r(E)r(M) \coloneqq r(E) is called the rank of MM.

The third condition (R3) is called submodularity. It is obtained by replacing the equality in the dimension formula dim(V+W)+dim(VW)=dimV+dimW\dim (V + W) + \dim (V \cap W) = \dim V + \dim W (for vector spaces VV and WW over a common field) by an inequality. Intuitively, it says that the sum of the amounts of information seen from two subsets separately is at least the sum of the amounts of information seen from their union and intersection. Since the Tutte polynomial can be defined using only the rank function, this definition is sufficient for this note.

Let us extract the terminology we need from the rank function. A subset IEI \subseteq E is called independent if rM(I)=Ir_{M}(I) = \card{I}. Also, a subset BEB \subseteq E is called a basis of MM (plural: bases) if rM(B)=B=rM(E)r_{M}(B) = \card{B} = r_{M}(E). In this note, we use this terminology especially when interpreting the special value TM(2,1)\Tutte_{M}(2, 1) of the Tutte polynomial.

An element eEe \in E is called a loop if rM({e})=0r_{M}(\{ e \}) = 0. Also, an element eEe \in E is called a coloop or an isthmus (plural: isthmi) if rM(E)rM(E{e})=1r_{M}(E) - r_{M}(E \setminus \{ e \}) = 1.

Although we will not explain this in detail here because it is not the main topic, as already appears in Whitney's original paper [Whi35], matroids also abstract the rank of graphs. The terms "loop" and "isthmus" above come from loops and isthmi (bridges) in graphs.

Example 2.2 (Uniform matroid).

Let EE be a finite set, and let 0kEn0 \leq k \leq \card{E} \eqqcolon n. Define r ⁣:2EZr \colon 2^{E} \to \mathbb{Z} by

r(A)min{k,A}(AE)r(A) \coloneqq \min\{ k, \card{A} \} \qquad (A \subseteq E)
Then (E,r)(E, r) is a matroid.

Indeed, boundedness (R1) and monotonicity (R2) follow immediately from

0r(A)=min{k,A}A,r(A)=min{k,A}min{k,B}=r(B)\begin{aligned} &0 \leq r(A) = \min \{ k, \card{A} \} \leq \card{A},\\ &r(A) = \min \{ k, \card{A} \} \leq \min \{ k, \card{B} \} = r(B) \end{aligned}

so it remains to check submodularity (R3). If ABk\card{A \cap B} \geq k, then A,B,ABk\card{A}, \card{B}, \card{A \cup B} \geq k, hence r(A)=r(B)=r(AB)=r(AB)=kr(A) = r(B) = r(A \cup B) = r(A \cap B) = k, and equality holds. Thus consider the case AB<k\card{A \cap B} < k. If ABk\card{A \cup B} \leq k, then A,Bk\card{A}, \card{B} \leq k, so all ranks are equal to the cardinalities of the corresponding sets, and equality again holds. Therefore it suffices to prove the case AB<k<AB\card{A \cap B} < k < \card{A \cup B}. In this case r(AB)=kr(A \cup B) = k and r(AB)=ABr(A \cap B) = \card{A \cap B}. If Ak\card{A} \geq k, then by monotonicity r(B)r(AB)r(B) \geq r(A \cap B), and hence

r(A)+r(B)k+r(AB)=r(AB)+r(AB)r(A) + r(B) \geq k + r(A \cap B) = r(A \cup B) + r(A \cap B)

The case Bk\card{B} \geq k is the same. Finally, if A<k\card{A} < k and B<k\card{B} < k, then

r(A)+r(B)=A+B=AB+AB>k+r(AB)=r(AB)+r(AB)\begin{aligned} r(A) + r(B) &= \card{A} + \card{B} \\ &= \card{A \cup B} + \card{A \cap B} \\ &> k + r(A \cap B) = r(A \cup B) + r(A \cap B) \end{aligned}

Thus submodularity ((R3)) holds.

This matroid is called the uniform matroid, and is denoted by Uk,nU_{k, n}.

Uniform matroids are the basic examples supporting most of the concrete examples used in this note. In particular, the single loop, the single coloop, and the small matroids arising from the repetition code and the even-weight code can all be written as uniform matroids.

As a special case of a uniform matroid, Un,nU_{n, n} is called the free matroid. In this case, r(A)=Ar(A) = \card{A} for every AEA \subseteq E. Also, in U0,nU_{0, n} we have r(A)=0r(A) = 0 for every AEA \subseteq E. In particular, U0,0U_{0, 0} in the case E=E = \emptyset is called the empty matroid.

The Matroid Associated with a Code

We now translate the objects on the coding-theory side into the language of matroids. There is only one thing to do in this section. We restrict the code CC to each coordinate subset and record the dimension. This "record of the dimensions of all restricted codes" becomes a matroid.

Let CFqEC \leq \F_{q}^{E} be a linear code and let SES \subseteq E. If we change our viewpoint on a word cFqEc \in \F_{q}^{E} from an EE-indexed vector c=(ci)iEc = (c_{i})_{i \in E} to a map from EE to Fq\F_{q}, namely c ⁣:EFq,icic \colon E \to \F_{q}, \, i \mapsto c_{i}, then the restriction map cS ⁣:SFq\res{c}{S} \colon S \to \mathbb{F}_{q} corresponds to the vector cS=(ci)iS\res{c}{S} = (c_{i})_{i \in S} obtained by taking the part indexed by SS. Thus define the restricted code to SS by

CS{cSFqScC}\res{C}{S} \coloneqq \{ \res{c}{S} \in \F_{q}^{S} \mid c \in C \}

In other words, CS\res{C}{S} is the punctured code CESC^{E \setminus S} obtained from the codewords of CC by deleting the coordinates in ESE \setminus S.

Proposition 3.1 (Matroid associated with a code).

For a linear code CFqEC \leq \F_{q}^{E} with finite coordinate set EE, define the map

rC ⁣:2EZ,rC(A)dimFq(CA)r_{C} \colon 2^{E} \to \mathbb{Z}, \qquad r_{C}(A) \coloneqq \dim_{\F_{q}}(\res{C}{A})

Then M(C)(E,rC)M(C) \coloneqq (E, r_{C}) is a matroid.

Proof
Boundedness (R1)

For every AEA \subseteq E, we have CAFqA\res{C}{A} \leq \F_{q}^{A}, and hence

0rC(A)dimFqFqA=A0 \leq r_{C}(A) \leq \dim_{\F_{q}} \F_{q}^{A} = \card{A}

Thus boundedness (R1) holds.

Monotonicity (R2)

If ABEA \subseteq B \subseteq E, then CA\res{C}{A} is the image CBA\res{\res{C}{B}}{A} obtained by restricting CB\res{C}{B} further to AA. Hence rC(A)rC(B)r_{C}(A) \leq r_{C}(B).

Submodularity (R3)

Let A,BEA, B \subseteq E. Using the restriction maps CACAB\res{C}{A} \to \res{C}{A \cap B} and CBCAB\res{C}{B} \to \res{C}{A \cap B}, consider the vector space

P{(u,v)CACB:uAB=vAB}P \coloneqq \{ (u, v) \in \res{C}{A} \oplus \res{C}{B}: \res{u}{A \cap B} = \res{v}{A \cap B} \}

This PP is the kernel of the map

CACBCAB,(u,v)uABvAB\res{C}{A} \oplus \res{C}{B} \to \res{C}{A\cap B},\quad (u,v)\mapsto \res{u}{A\cap B}-\res{v}{A\cap B}

and this map is surjective. Indeed, for any wCABw \in \res{C}{A \cap B}, choose cCc \in C such that w=cABw = \res{c}{A \cap B}. Then (cA,0)(\res{c}{A}, 0) is sent to ww by this map. Therefore, by the rank-nullity theorem,

dimFqP=dimFqCA+dimFqCBdimFqCAB=rC(A)+rC(B)rC(AB)\begin{aligned} \dim_{\F_{q}} P &= \dim_{\F_{q}} \res{C}{A} + \dim_{\F_{q}} \res{C}{B} - \dim_{\F_{q}} \res{C}{A \cap B} \\ &= r_{C}(A) + r_{C}(B) - r_{C}(A \cap B) \end{aligned}

On the other hand, restricting an element of CAB\res{C}{A \cup B} to AA and to BB gives an element of PP, and this correspondence is injective. Thus dimCABdimFqP\dim \res{C}{A \cup B} \leq \dim_{\F_{q}} P, and so

rC(AB)rC(A)+rC(B)rC(AB)r_{C}(A \cup B) \leq r_{C}(A) + r_{C}(B) - r_{C}(A \cap B)

Submodularity follows.

End of proof

The matroid M(C)M(C) on EE determined by this rank function is called the matroid associated with CC, or the matroid of CC. Let us first look at small examples to see what this definition is observing.

Example 3.2 (Binary repetition code).

Let E={1,2,3}E = \{ 1, 2, 3 \} and consider the binary repetition code of length 33

C={000,111}F2EC = \{ 000, 111 \} \leq \F_{2}^{E}

If A=A = \emptyset, then rC(A)=0r_{C}(A) = 0. If AA \neq \emptyset, then CA\res{C}{A} is the 11-dimensional repetition code of length A\card{A}, and hence rC(A)=1r_{C}(A) = 1. Therefore the matroid associated with CC is the uniform matroid of size 33 and rank 11, namely M(C)=U1,3M(C) = U_{1, 3}.

Example 3.3 (Even-weight code of length 33).

Let E={1,2,3}E = \{ 1, 2, 3 \} and consider the binary even-weight code

C={000,110,101,011}F2EC = \{ 000, 110, 101, 011 \} \leq \F_{2}^{E}

The rank of every singleton is 11, the rank of every two-element subset is 22, and rC(E)=2r_{C}(E) = 2. Therefore the matroid associated with CC is the uniform matroid of size 33 and rank 22, namely M(C)=U2,3M(C) = U_{2,3}.

Both examples gave uniform matroids. Of course, the matroid obtained from a code is not always a uniform matroid. (For instance, try considering the matroid associated with C={000,100,011,111}F2{1,2,3}C = \{ 000, 100, 011, 111 \} \leq \F_{2}^{\{ 1, 2, 3 \}}.) However, the repetition code and the even-weight code are just the right size for following the later calculations of Tutte polynomials by hand.

To move towards the MacWilliams identity, we next need to handle duality and the removal of coordinates. On the coding-theory side, dual codes, punctured codes, and shortened codes appear. On the matroid side, the corresponding operations are duality, deletion, and contraction.

Duality, Deletion, and Contraction

To connect the Tutte polynomial with the MacWilliams identity, we need to be able to handle duality, deletion, and contraction in terms of rank functions. First, just as codes have dual codes, matroids have duals.

Definition 4.1 (Dual matroid).

Let M=(E,rM)M = (E, r_{M}) be a matroid. Define a function r ⁣:2EZr^{\ast} \colon 2^{E} \to \mathbb{Z} by

r(A)ArM(E)+rM(EA)r^{\ast}(A) \coloneqq \card{A} - r_{M}(E) + r_{M}(E \setminus A)

for each AEA \subseteq E. The pair (E,r)(E, r^{\ast}) is called the dual of MM, and is denoted by MM^{\ast}.

The dual of a matroid is indeed a matroid, and is called the dual matroid.

Proposition 4.2.

For every matroid MM, the dual MM^{\ast} is a matroid.

Proof

It suffices to check that rM=rr_{M^{\ast}} = r^{\ast} satisfies the axioms for the rank function of a matroid.

Boundedness (R1)

Note that rMr_{M} satisfies the rank-function axioms. For SES \subseteq E and eESe \in E \setminus S, applying submodularity of rMr_{M} gives

rM(S{e})+rM(S{e})rM(S)+rM({e})rM(S)+1r_{M}(S \cup \{ e \}) + r_{M}(S \cap \{ e \}) \leq r_{M}(S) + r_{M}(\{ e \}) \leq r_{M}(S) + 1

Since eSe \notin S, we have rM(S{e})=rM()=0r_{M}(S \cap \{ e \}) = r_{M}(\emptyset) = 0, and hence rM(S{e})rM(S)+1r_{M}(S \cup \{ e \}) \leq r_{M}(S) + 1. Repeating this, for SES \subseteq E and TEST \subseteq E \setminus S we get

rM(ST)rM(S)+T(4.1)r_{M}(S \cup T) \leq r_{M}(S) + \card{T} \tag{4.1}

Applying this with S=EAS = E \setminus A and T=AT = A gives

rM(E)rM(EA)+Ar_{M}(E) \leq r_{M}(E \setminus A) + \card{A}

Therefore

ArM(E)+rM(EA)0\card{A} - r_{M}(E) + r_{M}(E \setminus A) \geq 0

Also, by monotonicity, rM(EA)rM(E)r_{M}(E\setminus A) \leq r_M(E), and hence

rM(A)=ArM(E)+rM(EA)Ar_{M^{\ast}}(A) = \card{A} - r_{M}(E) + r_{M}(E \setminus A) \leq \card{A}
Monotonicity (R2)

If ABA \subseteq B, then EBEAE \setminus B \subseteq E \setminus A. Applying (4.1) with S=EBS = E \setminus B and T=BAT = B \setminus A, we get

rM(EA)=rM((EB)(BA))rM(EB)+BA\begin{aligned} r_{M}(E \setminus A) &= r_{M}\bigl( (E \setminus B) \cup (B \setminus A) \bigr) \\ &\leq r_{M}(E \setminus B) + \card{B \setminus A} \end{aligned}

Adding ArM(E)\card{A} - r_{M}(E) to both sides gives

rM(A)=ArM(E)+rM(EA)ArM(E)+rM(EB)+BA=BrM(E)+rM(EB)=rM(B)\begin{aligned} r_{M^{\ast}}(A) &= \card{A} - r_{M}(E) + r_{M}(E \setminus A) \\ &\leq \card{A} - r_{M}(E) + r_{M}(E \setminus B) + \card{B \setminus A} \\ &= \card{B} - r_{M}(E) + r_{M}(E \setminus B) = r_{M^{\ast}}(B) \end{aligned}

This proves monotonicity (R2).

Submodularity (R3)

Since E(AB)=(EA)(EB)E \setminus (A \cup B) = (E \setminus A) \cap (E \setminus B) and E(AB)=(EA)(EB)E \setminus (A \cap B) = (E \setminus A) \cup (E \setminus B), submodularity of rMr_{M^{\ast}} is exactly submodularity of rMr_{M}. Indeed,

r(A)+r(B)r(AB)r(AB)=r(EA)+r(EB)r(E(AB))r(E(AB))\begin{aligned} &r^{\ast}(A) + r^{\ast}(B) - r^{\ast}(A \cup B) - r^{\ast}(A \cap B)\\ &= r(E \setminus A) + r(E \setminus B)\\ &\quad - r(E \setminus (A \cap B)) - r(E \setminus(A \cup B)) \end{aligned}

and the right-hand side is non-negative by submodularity of rr.

Thus Definition Definition 4.1 indeed defines a matroid.

End of proof

In particular, the rank of the dual matroid MM^{\ast} is

rM(E)=ErM(E)r_{M^{\ast}}(E) = \card{E} - r_{M}(E)

Also, the formula immediately gives (M)=M(M^{\ast})^{\ast}=M. As we show below, MM^{\ast} corresponds to the dual code CC^{\perp}. These facts abstract dimC=EdimC\dim C^{\perp} = \card{E} - \dim C and (C)=C(C^{\perp})^{\perp} = C.

Proposition 4.3 (Dual codes and dual matroids).

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

M(C)=M(C)M(C^{\perp}) = M(C)^{\ast}

holds.

Proof

Put kdimCk \coloneqq \dim C, and let AEA \subseteq E. The kernel of the projection CCAC^{\perp} \to \res{C^{\perp}}{A} consists of the codewords of CC^{\perp} that are 00 on AA. If this kernel is restricted to EAE \setminus A, it can be identified with the orthogonal complement of CEAFqEA\res{C}{E \setminus A} \leq \F_{q}^{E \setminus A}. Indeed, an element uCu \in C^{\perp} that is zero on AA can be identified with a vector ww on EAE \setminus A. Then, for every cCc \in C, we have 0=uc=wcEA0 = u \cdot c = w \cdot \res{c}{E \setminus A}, so ww belongs to the orthogonal complement of CEA\res{C}{E \setminus A}. Conversely, given such a ww, extend it by zero on AA. Therefore the dimension of the kernel is

EArC(EA)\card{E \setminus A} - r_{C}(E \setminus A)

Hence

rC(A)=dimC(EArC(EA))=(nk)EA+rC(EA)=ArC(E)+rC(EA)\begin{aligned} r_{C^{\perp}}(A) &= \dim C^{\perp} -\bigl(\card{E \setminus A} - r_{C}(E \setminus A) \bigr)\\ &= (n - k) - \card{E \setminus A} + r_{C}(E \setminus A) \\ &= \card{A} - r_{C}(E) + r_{C}(E \setminus A) \end{aligned}

This is exactly the dual rank function in Definition Definition 4.1.

End of proof

Proposition 4.3 is one of the most important translations in this part. Taking the dual code agrees with taking the dual of the associated matroid. Therefore, when we later use the duality of the Tutte polynomial, it will be reflected directly as an identity about the weight enumerator of the dual code.

Next come deletion and contraction. On the matroid side, these are defined by rank functions. On the coding-theory side, deletion corresponds to puncturing, and the operation corresponding to contraction is shortening.

Definition 4.4 (Deletion and contraction of matroids).

Let M=(E,rM)M = (E, r_{M}) be a matroid, and let SES \subseteq E. Define two matroids M\SM \backslash S and M/SM/S on ESE \setminus S as follows: for every AESA \subseteq E \setminus S,

rM\S(A)rM(A),rM/S(A)rM(AS)rM(S)\begin{aligned} r_{M \backslash S}(A) &\coloneqq r_{M}(A), \\ r_{M/S}(A) &\coloneqq r_{M}(A \cup S) - r_{M}(S) \end{aligned}

We call M\SM \backslash S the deletion of SS, and M/SM/S the contraction of SS. If S={e}S = \{ e \}, then instead of writing M\{e}M \backslash \{ e \} or M/{e}M/\{ e \}, we simply write M\eM \backslash e or M/eM/e.

The rank functions of deletion and contraction also satisfy the three conditions in

The set EE is called the ground set of MM, and rr is called the rank function of MM. When we want to emphasise MM, we write rMr_{M}. Also, r(A)r(A) is called the rank of AA, and r(M)r(E)r(M) \coloneqq r(E) is called the rank of MM.Definition 2.1. For deletion, this is clear because we have simply restricted the domain of rMr_{M}. For contraction, non-negativity follows from rM(AS)rM(S)r_{M}(A \cup S) \geq r_{M}(S), and the upper bound rM(AS)rM(S)Ar_{M}(A \cup S) - r_{M}(S) \leq \card{A} follows from the inequality (4.1), which appeared in the proof of Proposition 4.2 and says that adding elements can increase rank by at most the number of added elements. Monotonicity follows from monotonicity of rMr_{M}. Submodularity follows by applying submodularity to ASA \cup S and BSB \cup S for A,BESA, B \subseteq E \setminus S, which gives

rM((AB)S)+rM((AB)S)rM(AS)+rM(BS)r_{M}((A \cup B) \cup S) + r_{M}((A \cap B) \cup S) \leq r_{M}(A \cup S) + r_{M}(B \cup S)

Definition 4.5 (Puncturing and shortening of codes).

Let CFqEC \leq \F_{q}^{E} be a linear code, and let SES \subseteq E. The code

CSCESFqESC^{S} \coloneqq \res{C}{E \setminus S} \leq \F_{q}^{E \setminus S}

is called the punctured code by SS. Also,

C(S){cC:supp(c)S}CC(S) \coloneqq \{ c \in C : \supp(c) \subseteq S \} \leq C

is called the subcode induced by SS (the subcode supported in SS), and

CS{cES:cC,cs=0 for all sS}=C(ES)SFqES\begin{aligned} C_{S} &\coloneqq \{ \res{c}{E\setminus S} : c \in C, \, c_{s} = 0 \text{ for all } s \in S \} \\ &= C(E\setminus S)^{S} \leq \F_{q}^{E \setminus S} \end{aligned}

is called the shortened code by SS.

To avoid confusion, let us summarise the notation in a table.

NotationOperationCoordinate set of the resulting code
CS\res{C}{S}restrict to SSSS
CSC^{S}puncture, deleting SSESE \setminus S
CSC_{S}take codewords with 00 on SS, then delete SSESE\setminus S
C(S)C(S)subcode of codewords whose supports are contained in SSsubcode on EE

The following proposition shows that deletion and contraction of matroids correspond to puncturing and shortening of codes:

Proposition 4.6 (Puncturing, shortening, deletion, and contraction).

For every linear code CFqEC \leq \F_{q}^{E} and every SES \subseteq E,

M(CS)=M(C)\S,M(CS)=M(C)/SM(C^{S}) = M(C) \backslash S, \qquad M(C_{S}) = M(C)/S

holds.

Proof

Let AESA \subseteq E \setminus S. For puncturing,

rCS(A)=dim((CES)A)=dim(CA)=rC(A)r_{C^{S}}(A) = \dim(\res{(\res{C}{E \setminus S})}{A}) = \dim(\res{C}{A}) = r_{C}(A)

so indeed M(CS)=M(C)\SM(C^{S}) = M(C) \backslash S.

For shortening, consider the restriction map CASCS\res{C}{A \cup S} \to \res{C}{S}. This map is surjective, and its kernel consists of the codewords of CC that are 00 on SS, restricted to ASA \cup S. If we then remove the coordinates in SS, this kernel can be identified with CSA\res{C_{S}}{A}. Therefore

rCS(A)=dim(CSA)=dim(CAS)dim(CS)=rC(AS)rC(S)r_{C_{S}}(A) = \dim(\res{C_{S}}{A}) = \dim(\res{C}{A \cup S}) - \dim(\res{C}{S}) = r_{C}(A \cup S) - r_{C}(S)

This is exactly the rank function of M(C)/SM(C)/S.

End of proof

Example 4.7 (Even-weight code of length 33).

Consider again the code from Example 3.3,

C={000,110,101,011}F2{1,2,3}C = \{ 000, 110, 101, 011 \} \leq \F_{2}^{\{ 1, 2, 3\}}

If we delete coordinate 33, we obtain

C{3}={00,10,01,11}F2{1,2}C^{\{ 3 \}} = \{ 00, 10, 01, 11 \} \leq \F_{2}^{\{ 1, 2 \}}

This is the full two-dimensional space, so the associated matroid is U2,2U_{2, 2}. On the other hand, M(C)=U2,3M(C) = U_{2,3} and U2,3\3=U2,2U_{2,3} \backslash 3 = U_{2,2}. Thus indeed M(C{3})=M(C)\3M(C^{\{ 3 \}}) = M(C) \backslash 3.

Next shorten at coordinate 33. The codewords whose coordinate 33 is 00 are 000000 and 110110, so

C{3}={00,11}F2{1,2}C_{\{ 3 \}} = \{ 00, 11 \} \leq \F_{2}^{\{ 1, 2 \}}

This is the binary repetition code of length 22, and the associated matroid is U1,2U_{1,2}. Also, U2,3/3=U1,2U_{2, 3}/3 = U_{1,2}, so indeed M(C{3})=M(C)/3M(C_{\{ 3 \}}) = M(C)/3.

Deletion and contraction, and likewise puncturing and shortening, are dual operations. Indeed, direct calculation from the rank functions shows that for every SES\subseteq E,

(M\S)=M/S,(M/S)=M\S(M \backslash S)^{\ast} = M^{\ast}/S, \qquad (M/S)^{\ast} = M^{\ast} \backslash S

This corresponds, on the coding-theory side, to the fact that puncturing and shortening are interchanged by taking dual codes:

(CS)=(C)S,(CS)=(C)S(C^{S})^{\perp} = (C^{\perp})_{S}, \qquad (C_{S})^{\perp} = (C^{\perp})^{S}

The Tutte Polynomial

We now turn to the Tutte polynomial. All the matroid information prepared so far is contained in the rank function rMr_{M}. The Tutte polynomial is a two-variable polynomial that uses the rank function to count all subsets according to their rank defect and their degree of dependence. However, it is worth noting that in general one cannot recover the matroid from its Tutte polynomial.

Definition 5.1 (Tutte polynomial).

Let M=(E,rM)M = (E, r_{M}) be a matroid. The Tutte polynomial of MM is defined by

TM(x,y)AE(x1)rM(E)rM(A)(y1)ArM(A)Z[x,y]\Tutte_{M}(x, y) \coloneqq \sum_{A \subseteq E} (x - 1)^{r_{M}(E) - r_{M}(A)} (y - 1)^{\card{A} - r_{M}(A)} \in \mathbb{Z}\lbrack x, y \rbrack

If one looks only at the defining formula, it may seem a little sudden. However, for each AEA \subseteq E, the two exponents in the summand,

rM(E)rM(A),ArM(A)r_{M}(E) - r_{M}(A), \qquad \card{A} - r_{M}(A)

each have meaning. The first measures how far AA falls short of the rank of the whole matroid. For the second, recall that AA is independent when A=rM(A)\card{A} = r_{M}(A). Thus the second measures how much dependence is contained in AA, or how much room there is with respect to being dependent. The Tutte polynomial collects these two quantities over all AEA \subseteq E. The former is sometimes called the rank defect of AA, and the latter the nullity of AA.

By the rank-function axioms in

The set EE is called the ground set of MM, and rr is called the rank function of MM. When we want to emphasise MM, we write rMr_{M}. Also, r(A)r(A) is called the rank of AA, and r(M)r(E)r(M) \coloneqq r(E) is called the rank of MM.Definition 2.1, the exponents rM(E)rM(A)r_{M}(E) - r_{M}(A) and ArM(A)\card{A} - r_{M}(A) are both non-negative integers. Therefore TM(x,y)\Tutte_{M}(x, y) is a two-variable polynomial with integer coefficients.

The empty matroid U0,0U_{0, 0}, the single loop U0,1U_{0, 1}, and the single coloop U1,1U_{1, 1} play an important role in the Tutte polynomial, even though they are simple examples. Let us first compute these three Tutte polynomials.

Example 5.2 (The empty matroid and one-point matroids).

For the empty matroid U0,0U_{0, 0}, the only subset in the sum is \emptyset, so

TU0,0(x,y)=(x1)00(y1)00=1\Tutte_{U_{0, 0}}(x, y) = (x - 1)^{0 - 0}(y - 1)^{0 - 0} = 1

For U0,1U_{0, 1} on the singleton E={e}E = \{ e \}, the element ee is a loop, and

TU0,1(x,y)=(x1)00(y1)00+(x1)00(y1)10=1+(y1)=y\Tutte_{U_{0,1}}(x, y) = (x - 1)^{0 - 0}(y - 1)^{0 - 0} + (x - 1)^{0 - 0}(y - 1)^{1 - 0} = 1 + (y - 1) = y

On the other hand, in U1,1U_{1, 1} the element ee is a coloop, and

TU1,1(x,y)=(x1)10(y1)00+(x1)11(y1)11=(x1)+1=x\Tutte_{U_{1,1}}(x, y) = (x - 1)^{1 - 0}(y - 1)^{0 - 0} + (x - 1)^{1 - 1}(y - 1)^{1 - 1} = (x - 1) + 1 = x

The empty matroid, the single loop, and the single coloop are important because they also appear as initial values for the deletion-contraction formula. In particular, the fact that a single loop gives yy and a single coloop gives xx appears directly in the later formula.

Example 5.3 (The Tutte polynomial of the binary repetition code).

For the binary repetition code C={000,111}C = \{ 000, 111 \} in Example 3.2, we had M(C)=U1,3M(C) = U_{1,3}. In U1,3U_{1, 3}, the rank of the empty set is 00, and the rank of every non-empty subset is 11. Hence

TU1,3(x,y)=(30)(x1)10(y1)00+(31)(x1)11(y1)11+(32)(x1)11(y1)21+(33)(x1)11(y1)31=x1+3+3(y1)+(y1)2=x+y+y2\begin{aligned} \Tutte_{U_{1, 3}}(x,y) &= \binom{3}{0}(x - 1)^{1 - 0}(y - 1)^{0 - 0} + \binom{3}{1}(x - 1)^{1 - 1}(y - 1)^{1 - 1} \\ &\qquad + \binom{3}{2}(x - 1)^{1 - 1}(y - 1)^{2 - 1} + \binom{3}{3}(x - 1)^{1 - 1}(y - 1)^{3 - 1} \\ &= x - 1 + 3 + 3(y - 1) + (y - 1)^{2} \\ &= x + y + y^{2} \end{aligned}

Example 5.4 (The Tutte polynomial of the even-weight code of length 33).

For the even-weight code CC in Example 3.3, we had M(C)=U2,3M(C) = U_{2,3}. The Tutte polynomial of U2,3U_{2, 3} is

TU2,3(x,y)=(30)(x1)20(y1)00+(31)(x1)21(y1)11+(32)(x1)22(y1)22+(33)(x1)22(y1)32=(x1)2+3(x1)+3+(y1)=x2+x+y\begin{aligned} \Tutte_{U_{2, 3}}(x, y) &= \binom{3}{0}(x - 1)^{2 - 0}(y - 1)^{0 - 0} + \binom{3}{1}(x - 1)^{2 - 1}(y - 1)^{1 - 1} \\ &\qquad + \binom{3}{2}(x - 1)^{2 - 2}(y - 1)^{2 - 2} + \binom{3}{3}(x - 1)^{2 - 2}(y - 1)^{3 - 2} \\ &= (x - 1)^{2} + 3(x - 1) + 3 + (y - 1) \\ &= x^{2} + x + y \end{aligned}

The following special values are useful for grasping the meaning of the Tutte polynomial.

Proposition 5.5.

Let MM be a matroid.

  1. TM(1,1)\Tutte_M(1,1) is the number of bases of MM.

  2. TM(2,1)\Tutte_M(2,1) is the number of independent subsets of MM.

Proof

Note that (x1)0(x - 1)^{0} and (y1)0(y - 1)^{0} are, as usual, equal to 11.

When x=1x = 1 and y=1y = 1, a term is not 00 if and only if both exponents are 00, that is,

rM(E)rM(A)=0andArM(A)=0r_{M}(E) - r_{M}(A) = 0 \quad\text{and}\quad \card{A} - r_{M}(A) = 0

This is equivalent to AA being a basis. Therefore TM(1,1)\Tutte_M(1, 1) is equal to the number of bases.

Next let x=2x = 2 and y=1y = 1. Then for every AEA \subseteq E,

(x1)rM(E)rM(A)=1(x - 1)^{r_{M}(E) - r_{M}(A)} = 1

so a term is not 00 if and only if the exponent of (y1)(y - 1) is 00, that is,

ArM(A)=0\card{A} - r_{M}(A) = 0

This is equivalent to AA being independent.

End of proof

Duality and the Deletion-Contraction Formula

We now check two basic properties of the Tutte polynomial. The first is duality.

Proposition 6.1 (Duality of the Tutte polynomial).

For every matroid MM,

TM(x,y)=TM(y,x)\Tutte_{M^{\ast}}(x, y) = \Tutte_{M}(y, x)

holds.

Proof

By the definition of the dual matroid,

rM(EA)=EArM(E)+rM(A)r_{M^{\ast}}(E \setminus A) = \card{E \setminus A} - r_{M}(E) + r_{M}(A)

Hence

EArM(EA)=rM(E)rM(A)\card{E \setminus A} - r_{M^{\ast}}(E \setminus A) = r_{M}(E) - r_{M}(A)

Also, since rM(E)=ErM(E)r_{M^{\ast}}(E) = \card{E} - r_{M}(E), we also get

rM(E)rM(EA)=ArM(A)r_{M^{\ast}}(E) - r_{M^{\ast}}(E \setminus A) = \card{A} - r_M(A)

Therefore

TM(x,y)=AE(x1)rM(E)rM(A)(y1)ArM(A)=BE(x1)BrM(B)(y1)rM(E)rM(B)=TM(y,x)\begin{aligned} \Tutte_{M^{\ast}}(x, y) &= \sum_{A \subseteq E} (x - 1)^{r_{M^{\ast}}(E) - r_{M^{\ast}}(A)} (y - 1)^{\card{A} - r_{M^{\ast}}(A)}\\ &= \sum_{B \subseteq E} (x - 1)^{\card{B} - r_{M}(B)} (y - 1)^{r_{M}(E) - r_{M}(B)}\\ &=\Tutte_{M}(y, x) \end{aligned}

as required.

End of proof

The second is the deletion-contraction formula. This is the basic formula for computing the Tutte polynomial recursively.

Proposition 6.2 (Deletion-contraction formula).

Let MM be a matroid on EE, and let eEe \in E. Then the following hold:

  1. If ee is a loop, then

    TM(x,y)=yTM\e(x,y).\Tutte_{M}(x, y) = y\Tutte_{M \backslash e}(x, y).
  2. If ee is a coloop, then

    TM(x,y)=xTM/e(x,y).\Tutte_{M}(x, y) = x\Tutte_{M/e}(x, y).
  3. If ee is neither a loop nor a coloop, then

    TM(x,y)=TM\e(x,y)+TM/e(x,y).\Tutte_{M}(x, y) = \Tutte_{M \backslash e}(x, y) + \Tutte_{M/e}(x, y).
Proof

Put EE{e}E^{\prime} \coloneqq E \setminus\{ e \}.

(i)

Assume that ee is a loop. Then, for every AEA \subseteq E^{\prime},

rM(A{e})=rM(A),rM(E)=rM(E)r_{M}(A \cup \{ e \}) = r_{M}(A), \qquad r_{M}(E) = r_{M}(E^{\prime})

Splitting the sum defining the Tutte polynomial into subsets containing ee and subsets not containing it, we get

TM(x,y)=eDE(x1)rM(E)rM(D)(y1)DrM(D)+eSE(x1)rM(E)rM(S)(y1)SrM(S)=DE(x1)rM(E)rM(D)(y1)(D+1)rM(D)+SE(x1)rM\e(E)rM\e(S)(y1)SrM\e(S)=(y1)TM\e(x,y)+TM\e(x,y)=yTM\e(x,y)\begin{aligned} \Tutte_{M}(x, y) &= \sum_{e \in D \subseteq E} (x - 1)^{r_{M}(E) - r_{M}(D)} (y - 1)^{\card{D} - r_{M}(D)}\\ &\qquad + \sum_{e \notin S \subseteq E} (x - 1)^{r_{M}(E) - r_{M}(S)} (y - 1)^{\card{S} - r_{M}(S)} \\ &= \sum_{D^{\prime} \subseteq E^{\prime}} (x - 1)^{r_{M}(E^{\prime}) - r_{M}(D^{\prime})} (y - 1)^{\bigl( \card{D^{\prime}} + 1 \bigr) - r_{M}(D^{\prime})} \\ &\qquad + \sum_{S \subseteq E^{\prime}} (x - 1)^{r_{M \backslash e}(E^{\prime}) - r_{M \backslash e}(S)} (y - 1)^{\card{S} - r_{M \backslash e}(S)} \\ &= (y - 1) \Tutte_{M \backslash e}(x, y) + \Tutte_{M \backslash e}(x, y) \\ &= y\Tutte_{M \backslash e}(x, y) \end{aligned}

This proves (i).

(ii)

The case where ee is a coloop follows from duality. Indeed, ee is a coloop of MM if and only if ee is a loop of MM^{\ast}. Also, (M/e)=M\e(M/e)^{\ast} = M^{\ast} \backslash e. Therefore, by (i) and Proposition 6.1,

TM(x,y)=TM(y,x)=xTM\e(y,x)=xT(M/e)(y,x)=xTM/e(x,y)\begin{aligned} \Tutte_M(x, y) &= \Tutte_{M^{\ast}}(y, x)\\ &= x\Tutte_{M^{\ast} \backslash e}(y, x)\\ &= x\Tutte_{(M/e)^{\ast}}(y, x)\\ &= x\Tutte_{M/e}(x, y) \end{aligned}

This proves (ii).

(iii)

Suppose that ee is neither a loop nor a coloop. Then rM({e})=1r_{M}(\{ e \}) = 1 and rM(E)=rM(E)r_{M}(E) = r_{M}(E^{\prime}). The contribution from subsets not containing ee is, by definition, exactly TM\e(x,y)\Tutte_{M \backslash e}(x, y). Write a subset containing ee as A{e}A \cup \{e\}, where AEA \subseteq E^{\prime}. By the rank formula for contraction,

rM/e(A)=rM(A{e})1,rM/e(E)=rM(E)1r_{M/e}(A) = r_{M}(A \cup \{ e \}) - 1, \qquad r_{M/e}(E^{\prime}) = r_{M}(E) - 1

Therefore the contribution from subsets containing ee is TM/e(x,y)\Tutte_{M/e}(x, y). Hence

TM(x,y)=TM\e(x,y)+TM/e(x,y)\Tutte_{M}(x, y) = \Tutte_{M \backslash e}(x, y) + \Tutte_{M/e}(x, y)
End of proof

Example 6.3 (Computing TU2,3(x,y)\Tutte_{U_{2,3}}(x, y) using the deletion-contraction formula).

Let M=U2,3M = U_{2, 3}, and choose an element eEe \in E. This ee is neither a loop nor a coloop, so by (iii),

TU2,3(x,y)=TU2,3\e(x,y)+TU2,3/e(x,y)\Tutte_{U_{2, 3}}(x, y) =\Tutte_{U_{2, 3} \backslash e}(x, y) + \Tutte_{U_{2,3}/e}(x, y)

Here U2,3\e=U2,2U_{2, 3} \backslash e = U_{2,2} and U2,3/e=U1,2U_{2,3}/e = U_{1,2}. Since U2,2U_{2, 2} consists of two coloops, TU2,2(x,y)=x2\Tutte_{U_{2, 2}}(x, y) = x^{2}. Also, TU1,2(x,y)=x+y\Tutte_{U_{1, 2}}(x, y) = x + y. Therefore

TU2,3(x,y)=x2+x+y\Tutte_{U_{2, 3}}(x, y) = x^{2} + x + y

This agrees with the direct computation in Example 5.4.

Invariants of this deletion-contraction type are often treated as Tutte–Grothendieck invariants, or simply T–G invariants. For a classical survey of the basic properties, universality, and applications of the Tutte polynomial, Brylawski–Oxley [BO92] is a standard reference.

If we generalise the above formula slightly, the relation with weight enumerators becomes easier to see. Consider a matroid invariant T~M(s,t,a,b)\widetilde{\Tutte}_{M}(s, t, a, b) satisfying the following recursions:

  1. T~U0,0(s,t,a,b)=1\widetilde{\Tutte}_{U_{0, 0}}(s, t, a, b) = 1,

  2. if ee is a loop, then T~M(s,t,a,b)=sT~M\e(s,t,a,b)\widetilde{\Tutte}_{M}(s, t, a, b) = s\widetilde{\Tutte}_{M \backslash e}(s, t, a, b),

  3. if ee is a coloop, then T~M(s,t,a,b)=tT~M/e(s,t,a,b)\widetilde{\Tutte}_{M}(s, t, a, b) = t\widetilde{\Tutte}_{M/e}(s, t, a, b),

  4. if ee is neither a loop nor a coloop, then

    T~M(s,t,a,b)=aT~M\e(s,t,a,b)+bT~M/e(s,t,a,b).\widetilde{\Tutte}_{M}(s, t, a, b) = a\widetilde{\Tutte}_{M \backslash e}(s, t, a, b) + b \widetilde{\Tutte}_{M/e}(s, t, a, b).

The uniqueness is clear by induction on the size of the ground set. The value is determined on the empty matroid, and in the non-empty case, once an element ee is chosen, the right-hand side is written in terms of matroids whose ground sets have one fewer element. By a simple renormalisation of the ordinary Tutte polynomial, the solution is obtained as follows. Here aa and bb are treated as invertible formal parameters. More strictly, one should work in a suitable coefficient ring, or read the formula after clearing denominators.

Proof

Put TM(s,t,a,b)aErM(E)brM(E)TM(tb,sa)\displaystyle \overline{\Tutte}_{M}(s, t, a, b) \coloneqq a^{\card{E} - r_{M}(E)} b^{r_{M}(E)} \Tutte_{M}\left( \frac{t}{b}, \frac{s}{a} \right). We show that T~M(s,t,a,b)=TM(s,t,a,b)\widetilde{\Tutte}_{M}(s, t, a, b) = \overline{\Tutte}_{M}(s, t, a, b) by checking that TM(s,t,a,b)\overline{\Tutte}_{M}(s, t, a, b) actually satisfies the recurrence in (a), (b), (c), and (d).

(a)
(b)

If ee is a loop, then rM\e(E{e})=rM(E)r_{M \backslash e}(E \setminus \{ e \}) = r_{M}(E). Therefore, by

Proposition 6.2(i),

TM(s,t,a,b)=aaE{e}rM\e(E{e})brM\e(E{e})saTM\e(tb,sa)=sTM\e(s,t,a,b)\begin{aligned} \overline{\Tutte}_{M}(s, t, a, b) &= a \cdot a^{\card{E \setminus \{ e \}} - r_{M \backslash e}(E \setminus \{ e \})} b^{r_{M \backslash e}(E \setminus \{ e \})} \frac{s}{a} \Tutte_{M \backslash e}\left( \frac{t}{b}, \frac{s}{a} \right) \\ &= s\overline{\Tutte}_{M \backslash e}(s, t, a, b) \end{aligned}

as required.

(c)

If ee is a coloop, then rM/e(E{e})=rM(E)1r_{M/e}(E \setminus \{ e \}) = r_{M}(E) - 1. Therefore, by

Proposition 6.2(ii),

TM(s,t,a,b)=aE{e}rM/e(E{e})brM/e(E{e})btbTM/e(tb,sa)=tTM/e(s,t,a,b)\begin{aligned} \overline{\Tutte}_{M}(s, t, a, b) &= a^{\card{E \setminus \{ e \}} - r_{M/e}(E \setminus \{ e \})} b^{r_{M/e}(E \setminus \{ e \})} \cdot b \cdot \frac{t}{b} \Tutte_{M/e}\left( \frac{t}{b}, \frac{s}{a} \right) \\ &= t\overline{\Tutte}_{M/e}(s, t, a, b) \end{aligned}

as required.

(d)

If ee is neither a loop nor a coloop, then by

Proposition 6.2(iii),

TM(s,t,a,b)=aErM(E)brM(E)(TM\e(tb,sa)+TM/e(tb,sa))=aaE{e}rM\e(E{e})brM\e(E{e})TM\e(tb,sa)+aE{e}rM/e(E{e})bbrM/e(E{e})TM/e(tb,sa)=aTM\e(s,t,a,b)+bTM/e(s,t,a,b)\begin{aligned} \overline{\Tutte}_{M}(s, t, a, b) &= a^{\card{E} - r_{M}(E)} b^{r_{M}(E)} \left(\Tutte_{M \backslash e} \left( \frac{t}{b}, \frac{s}{a} \right) + \Tutte_{M/e} \left( \frac{t}{b}, \frac{s}{a} \right) \right) \\ &= a \cdot a^{\card{E \setminus \{ e \}} - r_{M \backslash e}(E \setminus \{ e \})} b^{r_{M \backslash e}(E \setminus \{ e \})} \Tutte_{M \backslash e}\left( \frac{t}{b}, \frac{s}{a} \right) \\ &\quad + a^{\card{E \setminus \{ e \}} - r_{M/e}(E \setminus \{ e \})} b \cdot b^{r_{M/e}(E \setminus \{ e \})} \Tutte_{M/e}\left( \frac{t}{b}, \frac{s}{a} \right) \\ &= a\overline{\Tutte}_{M \backslash e}(s, t, a, b) + b\overline{\Tutte}_{M/e}(s, t, a, b) \end{aligned}

as required.

End of proof

Indeed, one can check directly from

Proposition 6.2 that the right-hand side satisfies the four recursions above. Thus the proposition says the powerful fact that every polynomial satisfying these four recursions for deletion and contraction is obtained from the Tutte polynomial. In this sense, the Tutte polynomial can be viewed as one of the most universal matroid invariants involving deletion and contraction. This viewpoint is a shortcut to reading Greene's theorem as saying that the weight enumerator is a specialisation of the Tutte polynomial.

Greene's Theorem

We now connect the weight enumerator of a code with the Tutte polynomial. Let us first organise what we want to prove. The Tutte polynomial satisfies very clean recursions with respect to deletion and contraction of matroids. On the other hand, the weight enumerator of a code can also be decomposed recursively by puncturing or shortening one coordinate. Greene's theorem writes the fact that these two recursions have the same form as an explicit change of variables.

First, let us check the recursion on the side of weight enumerators. Here we fix an element eEe \in E and split into cases according to whether ee is a loop, a coloop, or neither, in the matroid M(C)M(C). In the matroid M(C)M(C) associated with a code, ee being a loop is equivalent to every codeword having 00 in coordinate ee. Indeed, for rC({e})=dimC{e}=0r_{C}(\{ e \}) = \dim \res{C}{\{ e \}} = 0 to hold, it is necessary and sufficient that C{e}={0}\res{C}{\{ e \}} = \{ 0 \}, and this is equivalent to every codeword having 00 in coordinate ee.

On the other hand, ee being a coloop is equivalent to the existence in CC of a codeword which is non-zero only in coordinate ee. This may be easier to understand by looking at duality rather than directly at ranks. A coloop is a loop in the dual matroid, and the dual matroid corresponds exactly to the dual code. Thus ee being a coloop means that every codeword of the dual code CC^{\perp} has 00 in coordinate ee. A word that is non-zero only in coordinate ee and zero everywhere else is orthogonal to all such vectors, hence is a codeword of CC. Conversely, if CC contains a codeword which is non-zero only in coordinate ee and zero everywhere else, then every codeword of CC^{\perp} has 00 in coordinate ee. More algebraically, ee being a coloop means that rC(E)rC(E{e})=1r_{C}(E) - r_{C}(E \setminus \{ e \}) = 1. This is equivalent to saying that the kernel of the projection CCE{e}C \to \res{C}{E \setminus \{ e \}} is 11-dimensional. This kernel consists of all codewords whose coordinates other than ee are all 00.

Proposition 7.1 (Puncturing-shortening recursion for weight enumerators).

Let CFqEC \leq \F_{q}^{E} be a linear code, and let eEe \in E.

  1. If ee is a loop of M(C)M(C), then

    WC(X,Y)=XWC{e}(X,Y).W_{C}(X, Y) = X W_{C^{\{ e \}}}(X, Y).
  2. If ee is a coloop of M(C)M(C), then

    WC(X,Y)=(X+(q1)Y)WC{e}(X,Y).W_{C}(X, Y) = \bigl( X + (q - 1)Y \bigr) W_{C_{\{ e \}}}(X, Y).
  3. If ee is neither a loop nor a coloop of M(C)M(C), then

    WC(X,Y)=YWC{e}(X,Y)+(XY)WC{e}(X,Y).W_{C}(X, Y) = YW_{C^{\{ e \}}}(X, Y) + (X - Y)W_{C_{\{ e \}}}(X, Y).
Proof

Put EE{e}E^{\prime} \coloneqq E \setminus \{ e \}.

(i)

Assume that ee is a loop. Then rC({e})=0r_{C}(\{ e \}) = 0, so every codeword has 00 in coordinate ee. Therefore each codeword of CC is obtained by extending a codeword of C{e}C^{\{ e \}} by adding one zero coordinate. The weight does not change, while the length increases by 11, so the weight enumerator is multiplied by XX. Hence WC(X,Y)=XWC{e}(X,Y)W_{C}(X, Y) = XW_{C^{\{ e \}}}(X, Y). Formally,

WC(X,Y)=cCXEwt(c)Ywt(c)=cCXX(E1)wt(cE{e})Ywt(cE{e})=XcC{e}XE{e}wt(c)Ywt(c)=XWC{e}(X,Y)\begin{aligned} W_{C}(X, Y) &= \sum_{c \in C} X^{\card{E} - \wt(c)} Y^{\wt(c)} \\ &= \sum_{c \in C} X \cdot X^{(\card{E} - 1) - \wt(\res{c}{E \setminus \{ e \}})} Y^{\wt(\res{c}{E \setminus \{ e \}})} \\ &= X \sum_{c^{\prime} \in C^{\{ e \}}} X^{\card{E \setminus \{ e \}} - \wt(c^{\prime})} Y^{\wt(c^{\prime})} = XW_{C^{\{ e \}}}(X, Y) \end{aligned}
(ii)

Assume that ee is a coloop. Then rC(E)rC(E)=1r_{C}(E) - r_{C}(E^{\prime}) = 1, so the kernel of the projection CCE=C{e}C \to \res{C}{E^{\prime}} = C^{\{ e \}} is one-dimensional. This kernel is a one-dimensional subspace supported only on coordinate ee. In particular, there exists a codeword which is non-zero only in coordinate ee. By subtracting a suitable scalar multiple of such a codeword from any cCc \in C, we can make coordinate ee equal to 00 without changing the values on EE^{\prime}. Therefore C{e}=C{e}C^{\{ e \}} = C_{\{ e \}}, and each codeword of C{e}C_{\{ e \}} lifts to CC in qq ways. Among these lifts, one has coordinate ee equal to 00, while the remaining q1q - 1 have coordinate ee non-zero. The former contributes a factor XX to the weight enumerator, and the latter contribute a factor YY. Thus, writing the argument formally,

WC(X,Y)=cC{e}(XXEwt(c)Ywt(c)+(q1)YXEwt(c)Ywt(c))=(X+(q1)Y)WC{e}(X,Y)\begin{aligned} W_{C}(X, Y) &= \sum_{c^{\prime} \in C_{\{ e \}}} \left( X \cdot X^{\card{E^{\prime}}-\wt(c^{\prime})}Y^{\wt(c^{\prime})} + (q - 1)Y \cdot X^{\card{E^{\prime}} - \wt(c^{\prime})} Y^{\wt(c^{\prime})} \right) \\ &= \bigl( X + (q - 1)Y \bigr) W_{C_{\{ e \}}}(X, Y) \end{aligned}
(iii)

Assume that ee is neither a loop nor a coloop. Since it is not a coloop, we have rC(E)=rC(E)r_{C}(E) = r_{C}(E^{\prime}), so the projection CC{e}C \to C^{\{ e \}} is injective. Therefore each codeword of C{e}C^{\{ e \}} corresponds to a unique codeword of CC. Since it is not a loop, the projection CFqC \to \F_{q} to coordinate ee is non-zero. Its image is the one-dimensional space Fq\F_{q}, so this map is surjective, and its kernel is a codimension-one subspace of CC. Restricting this kernel to EE^{\prime} gives C{e}C_{\{ e \}}. Thus the codewords of C{e}C^{\{ e \}} whose lift to CC has 00 in coordinate ee are exactly the codewords of C{e}C_{\{ e \}}.

We therefore split the codewords of C{e}C^{\{ e \}} into two parts. Those belonging to C{e}C_{\{ e \}} acquire one zero coordinate in CC, giving a factor XX. Those not belonging to C{e}C_{\{ e \}} acquire one non-zero coordinate, giving a factor YY.

WC(X,Y)=cCesupp(c)XEwt(c)Ywt(c)WC(X,Y)+cCesupp(c)XEwt(c)Ywt(c)WC+(X,Y)W_{C}(X, Y) = \underbrace{\sum_{\substack{c \in C \\ e \notin \supp(c)}} X^{\card{E} - \wt(c)} Y^{\wt(c)}}_{\eqqcolon W_{C}^{-}(X, Y)} + \underbrace{\sum_{\substack{c \in C \\ e \in \supp(c)}} X^{\card{E} - \wt(c)} Y^{\wt(c)}}_{\eqqcolon W_{C}^{+}(X, Y)}

Then WC{e}(X,Y)=WC/XW_{C_{\{ e \}}}(X, Y) = W_{C}^{-}/X and WC{e}(X,Y)=WC(X,Y)/X+WC+/YW_{C^{\{ e \}}}(X, Y) = W_{C}^{-}(X, Y)/X + W_{C}^{+}/Y. Therefore

WC(X,Y)=WC(X,Y)+WC+(X,Y)=YWC{e}(X,Y)+(XY)WC{e}(X,Y)\begin{aligned} W_{C}(X, Y) &= W_{C}^{-}(X, Y) + W_{C}^{+}(X, Y) \\ &= Y W_{C^{\{ e \}}}(X, Y) + (X - Y)W_{C_{\{ e \}}}(X, Y) \end{aligned}

as required.

End of proof

Combining

Proposition 7.1 with Proposition 4.6, we see that the recursion for weight enumerators operates on the same ground set as the deletion-contraction recursion for matroids. However, the coefficients are different from those of the Tutte polynomial itself. For the Tutte polynomial, the coefficients in the loop, coloop, and general cases were respectively yy, xx, 11, and 11. For the weight enumerator, these are replaced by XX, X+(q1)YX + (q - 1)Y, YY, and XYX - Y. Greene's theorem is the precise reflection of this replacement.

At first glance, rC(A)=dimCAr_{C}(A) = \dim \res{C}{A} seems to record only "the dimension of the image visible from the coordinate set AA", and does not seem to count individual codeword weights directly. However, the number of codewords whose support is contained in AA is determined by C(A)=qkrC(EA)\card{C(A)} = q^{k - r_{C}(E \setminus A)}. This fact is the key reason why a weight enumerator emerges from a Tutte polynomial.

Theorem 7.2 (Greene's theorem).

Let CFqEC \leq \F_{q}^{E} be a linear code, and let n=En = \card{E} and k=dimCk = \dim C. Then

WC(X,Y)=Ynk(XY)kTM(C)(X+(q1)YXY,XY)W_{C}(X, Y) = Y^{n - k}(X - Y)^{k} \Tutte_{M(C)}\left( \frac{X + (q - 1)Y}{X - Y}, \frac{X}{Y} \right)

holds.

Combining

Proposition 7.1 with Proposition 4.6, we obtain

WC(X,Y)=T~M(C)(X,X+(q1)Y,Y,XY)=Ynk(XY)kTM(C)(X+(q1)YXY,XY)\begin{aligned} W_{C}(X, Y) &= \widetilde{\Tutte}_{M(C)}(X, X + (q - 1)Y, Y, X - Y) \\ &= Y^{n - k} (X - Y)^{k} \Tutte_{M(C)}\left( \frac{X + (q - 1)Y}{X - Y}, \frac{X}{Y} \right) \end{aligned}

so the desired result follows immediately from the recursion. Below, however, keeping this recursive viewpoint in the background, we give a direct proof by counting supports subset by subset. The advantage is that it makes it easier to see where the factors in the change of variables come from. Also, although the right-hand side looks at first like a rational expression, the proof below shows that the denominators cancel term by term. Thus Greene's identity is an identity of polynomials.

Proof

First, since the kernel of the projection CCEAC \to \res{C}{E \setminus A} is C(A)C(A), we have

dimC(A)=krC(EA)\dim C(A) = k - r_{C}(E \setminus A)

For a fixed codeword cCc \in C, put S=supp(c)S = \supp(c). Then

Xnwt(c)Ywt(c)=SAE(XY)nAYAX^{n - \wt(c)} Y^{\wt(c)} = \sum_{S \subseteq A \subseteq E}(X - Y)^{n - \card{A}} Y^{\card{A}}

Indeed, the right-hand side is

YSBES(XY)ESBYB=YSXESY^{\card{S}} \sum_{B \subseteq E \setminus S}(X - Y)^{\card{E \setminus S} - \card{B}} Y^{\card{B}} =Y^{\card{S}}X^{\card{E \setminus S}}

Therefore, changing the order of summation gives

WC(X,Y)=cCsupp(c)AE(XY)nAYA=AEC(A)(XY)nAYA=AEqkrC(EA)(XY)nAYA\begin{aligned} W_{C}(X, Y) &= \sum_{c \in C} \sum_{\supp(c) \subseteq A \subseteq E}(X - Y)^{n - \card{A}} Y^{\card{A}} \\ &= \sum_{A \subseteq E} \card{C(A)}(X - Y)^{n - \card{A}}Y^{\card{A}} \\ &= \sum_{A \subseteq E} q^{k - r_{C}(E \setminus A)}(X - Y)^{n - \card{A}} Y^{\card{A}} \end{aligned}

Rewriting with B=EAB = E \setminus A, we obtain

WC(X,Y)=BEqkrC(B)(XY)BYnBW_{C}(X, Y) = \sum_{B \subseteq E} q^{k - r_{C}(B)}(X - Y)^{\card{B}} Y^{n - \card{B}}

On the other hand, put

uX+(q1)YXY,vXYu \coloneqq \frac{X + (q - 1)Y}{X - Y}, \qquad v \coloneqq \frac{X}{Y}

Then

u1=qYXY,v1=XYYu - 1 = \frac{qY}{X - Y}, \qquad v - 1 = \frac{X - Y}{Y}

Hence

Ynk(XY)kTM(C)(u,v)=BEYnk(XY)k(qYXY)krC(B)(XYY)BrC(B)=BEqkrC(B)(XY)BYnB\begin{aligned} &Y^{n - k}(X - Y)^{k}\Tutte_{M(C)}(u, v) \\ &\quad= \sum_{B \subseteq E} Y^{n - k}(X - Y)^{k} \left(\frac{qY}{X - Y}\right)^{k - r_{C}(B)} \left(\frac{X - Y}{Y}\right)^{\card{B} - r_{C}(B)}\\ &\quad= \sum_{B \subseteq E} q^{k-r_{C}(B)}(X - Y)^{\card{B}} Y^{n - \card{B}} \end{aligned}

This agrees with the expression for WC(X,Y)W_{C}(X, Y) obtained above.

End of proof

The substitution appearing in Greene's theorem has a geometrically transparent property.

u=X+(q1)YXY,v=XYu = \frac{X + (q - 1)Y}{X - Y}, \qquad v = \frac{X}{Y}

Then

(u1)(v1)=q(u - 1)(v - 1) = q

Thus the weight enumerator appears as an evaluation of the Tutte polynomial along the hyperbola (u1)(v1)=q(u - 1)(v - 1) = q in the Tutte plane.

Example 7.3 (Checking the binary repetition code).

As seen in Example 5.3, for the binary repetition code C={000,111}C = \{ 000, 111 \},

TM(C)(x,y)=x+y+y2\Tutte_{M(C)}(x, y) = x + y + y^{2}

Since q=2q = 2, n=3n = 3, and k=1k = 1, Greene's theorem gives

WC(X,Y)=Y2(XY)(X+YXY+XY+X2Y2)W_{C}(X,Y) = Y^{2}(X - Y) \left( \frac{X + Y}{X - Y} + \frac{X}{Y} + \frac{X^{2}}{Y^{2}} \right)

Simplifying the right-hand side gives

WC(X,Y)=X3+Y3W_{C}(X, Y) = X^{3} + Y^{3}

which agrees with the weight enumerator of the repetition code.

In Example 7.3, we checked that the denominators on the right-hand side really cancel and that the weight enumerator itself is obtained. The same cancellation occurs in the proof of the theorem in general. Thus Greene's theorem is not saying that we evaluate the Tutte polynomial as a rational function; it is a polynomial identity saying that a specialisation of the Tutte polynomial gives the weight enumerator.

Deriving the MacWilliams Identity

Finally, we derive the MacWilliams identity from Greene's theorem.

Theorem 8.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

Put n=En = \card{E} and k=dimCk = \dim C. By Proposition 4.3, we have M(C)=M(C)M(C^{\perp}) = M(C)^{\ast}. Also, dimC=nk\dim C^{\perp} = n - k. By Greene's theorem and the duality of the Tutte polynomial, we get

WC(X,Y)=Yk(XY)nkTM(C)(X+(q1)YXY,XY)=Yk(XY)nkTM(C)(XY,X+(q1)YXY)\begin{aligned} W_{C^{\perp}}(X, Y) &=Y^{k}(X - Y)^{n - k} \Tutte_{M(C)^{\ast}}\left( \frac{X + (q - 1)Y}{X - Y}, \frac{X}{Y} \right)\\ &=Y^{k}(X - Y)^{n - k} \Tutte_{M(C)}\left( \frac{X}{Y}, \frac{X + (q - 1)Y}{X - Y} \right) \end{aligned}

On the other hand, applying Greene's theorem to CC and substituting X+(q1)YX + (q - 1)Y for XX and XYX - Y for YY, we obtain

WC(X+(q1)Y,XY)=(XY)nk(qY)k×TM(C)(qXqY,X+(q1)YXY)=qkYk(XY)nkTM(C)(XY,X+(q1)YXY)\begin{aligned} &W_{C}(X + (q - 1)Y, X - Y)\\ &=(X - Y)^{n - k}(qY)^{k} \times \Tutte_{M(C)}\left( \frac{qX}{qY}, \frac{X + (q - 1)Y}{X - Y} \right)\\ &= q^{k} Y^{k}(X - Y)^{n - k} \Tutte_{M(C)}\left( \frac{X}{Y}, \frac{X + (q - 1)Y}{X - Y} \right) \end{aligned}

Since C=qk\card{C} = q^{k}, dividing both sides by C\card{C} gives exactly the expression for WC(X,Y)W_{C^{\perp}}(X, Y) obtained above.

End of proof

What Matroids and Tutte Polynomials Did in This Proof

The structures used in the proof above can be summarised in three points. First, from a code CC we obtain a matroid M(C)M(C) by the dimensions of coordinate restrictions, rC(A)=dim(CA)r_{C}(A) = \dim(\res{C}{A}). This rank function measures how well the coordinate subset AA can distinguish the information in the code CC.

Second, the dual code corresponds to the dual matroid: M(C)=M(C)M(C^{\perp})=M(C)^{\ast}. This means that duality on the coding-theory side and duality on the matroid side are seeing the same structure.

Third, the weight enumerator is a specialisation of the Tutte polynomial:

WC(X,Y)=YndimC(XY)dimCTM(C)(X+(q1)YXY,XY).W_{C}(X, Y) = Y^{n - \dim C} (X - Y)^{\dim C} \Tutte_{M(C)}\left( \frac{X + (q - 1)Y}{X - Y}, \frac{X}{Y} \right).

This formula shows that the weight enumerator is not merely a direct count of codewords, but can also be recovered from rank information over all coordinate subsets.

Combining these three points, the duality of the Tutte polynomial,

TM(x,y)=TM(y,x)\Tutte_{M^{\ast}}(x, y) = \Tutte_{M}(y, x)

becomes the MacWilliams identity directly. Thus, in this proof, the change of variables in the MacWilliams identity does not appear out of nowhere. It appears as the result of combining the interchange of variables in the Tutte plane with the specialisation appearing in Greene's theorem.

Concepts Seen in This Part

Let us organise the concepts used in this part according to their roles.

Matroids as rank functions

We defined a matroid on a finite set EE as a map r ⁣:2EZr \colon 2^{E} \to \mathbb{Z} satisfying boundedness, monotonicity, and submodularity.

Matroid associated with a code

For a linear code CFqEC \leq \F_{q}^{E}, we defined M(C)M(C) by rC(A)=dim(CA)r_{C}(A) = \dim(\res{C}{A}).

Dual matroid

We defined it by the rank function rM(A)=ArM(E)+rM(EA)r_{M^{\ast}}(A) = \card{A} - r_{M}(E) + r_{M}(E \setminus A). For codes, M(C)=M(C)M(C^{\perp}) = M(C)^{\ast} holds.

Deletion and contraction

For matroids, these were defined by rM\S(A)=rM(A)r_{M \backslash S}(A) = r_{M}(A) and rM/S(A)=rM(AS)rM(S)r_{M/S}(A) = r_{M}(A \cup S)- r_{M}(S). For codes, deletion corresponds to puncturing, and contraction corresponds to shortening.

Tutte polynomial

We defined it as a two-variable polynomial which records, for all AEA \subseteq E, the two quantities rM(E)rM(A)r_{M}(E) - r_{M}(A) and ArM(A)\card{A} - r_{M}(A) at the same time.

Greene's theorem

This theorem expresses the weight enumerator of a code as a specialisation of the Tutte polynomial of the associated matroid.

Among these, what was directly needed for the proof of the MacWilliams identity was the rank function, duality, deletion and contraction, the Tutte polynomial, and Greene's theorem. Matroid theory has many other important concepts, but this note proceeded without using them. This is not so much an omission as a choice fitted to the purpose of this part.

Review of This Proof Family

The proof family in this part was the "matroid and Tutte-polynomial approach". By collecting the dimensions of restricted codes over coordinate subsets, the structure of the matroid M(C)M(C) enters, and its Tutte polynomial recovers the weight enumerator. From this viewpoint, the MacWilliams identity is organised as the statement:

The operation corresponding to the dual code is, for the Tutte polynomial, the operation of interchanging the variables xx and yy.

This organisation explains why the MacWilliams identity emerges naturally from Greene's theorem.

The proof in this note uses the interface between coding theory and matroid theory quite directly. I hope to return on another occasion to a more systematic treatment of matroid theory from the viewpoint of coding theory, including circuits, closure, flats, simplification, minors, representability, and related notions.

For the broader reach of the Tutte polynomial itself, the handbook edited by Ellis-Monaghan–Moffatt [EM22] gives a broad view of applications to graphs, matroids, statistical physics, coding theory, knot theory, and more.

Next Time

Next time, we shall look at the MacWilliams identity from the side of group actions and cycle indices.

In the proof in this note, we extracted a matroid structure from the dimensions of restricted codes over coordinate subsets, and derived the MacWilliams identity from the duality of the Tutte polynomial. Next time, we shall use group actions on codewords and coordinates, and revisit the same identity in the language of orbits, Burnside's lemma, Pólya counting, and cycle indices.

Thus the protagonist next time will be

group actions -> orbits -> Burnside's lemma -> cycle indices -> MacWilliams identity

Even though it is the same MacWilliams identity, instead of looking at the "dimensions of restricted codes over coordinate subsets" as in this note, next time we will look at "averages over group actions" and "counting orbits".

References

  1. [Whi35] Hassler Whitney. On the Abstract Properties of Linear Dependence. Amer. J. Math., vol. 57, no. 3, pp. 509–533, 1935. doi:10.2307/2371182 ↩1 ↩2 ↩3
  2. [Cra69] Henry H. Crapo. The Tutte polynomial. Aequationes Math., vol. 3, pp. 211–229, 1969. doi:10.1007/BF01817442
  3. [Gre76] Curtis Greene. Weight enumeration and the geometry of linear codes. Studies in Appl. Math., vol. 55, no. 2, pp. 119–128, 1976. doi:10.1002/sapm1976552119
  4. [BC22] Thomas Britz and Peter J. Cameron. Codes. Handbook of the Tutte polynomial and related topics, pp. 328–344, 2022. doi:10.1201/9780429161612-16
  5. [Oxl11] James Oxley. Matroid theory. Oxford University Press, Oxford, vol. 21, pp. xiv+684, 2011. doi:10.1093/acprof:oso/9780198566946.001.0001
  6. [BO92] Thomas Brylawski and James Oxley. The Tutte polynomial and its applications. Matroid applications, vol. 40, pp. 123–225, 1992. doi:10.1017/CBO9780511662041.007
  7. [EM22] Joanna A. Ellis-Monaghan and Iain Moffatt. Handbook of the Tutte polynomial and related topics. Chapman & Hall/CRC, Boca Raton, FL, pp. xix+784, 2022. doi:10.1201/9780429161612

This series

A Series Learning through the MacWilliams Identity · Part 7 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.