Proof that the Inverse of a Vandermonde Matrix Is Another Vandermonde Matrix

In the previous chapter on the Inverse Number Theoretic Transform, we claimed that the inverse of the Vandermonde matrix V(ω)V(\omega) for a primitive kk-th root of unity ω\omega is also a Vandermonde matrix, given by 1kV(ω−1)\frac{1}{k}V(\omega^{-1}). We now prove this fact.

Less mathematically inclined readers can skip this chapter without any loss. It is not necessary to understand the INTT, provided they accept that our proposed inverse matrix is valid.

The Vandermonde matrix is defined as a matrix where each row is a geometric progression.

  • The first row is the geometric progression of ω0\omega^0 from (ω0)0(\omega^0)^0 to (ω)k−1(\omega)^{k-1}.
  • The second row is the geometric progression of ω1\omega^1 from (ω1)0(\omega^1)^{0} to (ω1)k−1(\omega^1)^{k -1}.
  • This continues until the last row, which is the geometric progression of ωk−1\omega^{k-1} from (ωk−1)0(\omega^{k-1})^0 to (ωk−1)k−1(\omega^{k-1})^{k-1}.
V(ω)=[(ω0)0(ω0)1(ω0)2⋯(ω0)k−1(ω1)0(ω1)1(ω1)2⋯(ω1)k−1(ω2)0(ω2)1(ω2)2⋯(ω2)k−1⋮⋮⋮⋱⋮(ωk−1)0(ωk−1)1(ωk−1)2⋯(ωk−1)k−1].V(\omega)=\begin{bmatrix}(\omega^0)^0 & (\omega^0)^1 & (\omega^0)^2 & \cdots & (\omega^0)^{k-1} \\(\omega^1)^0 & (\omega^1)^1 & (\omega^1)^{2} & \cdots & (\omega^1)^{k-1} \\ (\omega^2)^0 & (\omega^{2})^1 & (\omega^2)^2 & \cdots & (\omega^2)^{k-1} \\\vdots & \vdots & \vdots & \ddots & \vdots \\ (\omega^{k-1})^0 & (\omega^{k-1})^1 & (\omega^{k-1})^2 & \cdots & (\omega^{k-1})^{k-1} \end{bmatrix}.

Thus, each entry in row ii and column jj of V(ω)V(\omega) is given by

(ωi)j(\omega^i)^j

Consider a polynomial f(x)f(x) of degree at most k−1k-1, given by

f(x)=a0+a1x+a2x2+⋯+ak−1xk−1f(x)=a_0+a_1x+a_2x^2+\cdots+ a_{k-1}x^{k-1}

Let SS be the set consisting of the kk-th roots of unity generated by a primitive kk-th root:

S={ω0,ω1,ω2,⋯ωk−1}S=\{\omega^0, \omega^1, \omega^2, \cdots \omega^{k-1}\}

The vector of evaluations of f(x)f(x) on the set SS,

y=[f(ω0)f(ω1)f(ω2)⋮f(ωk−1)]\mathbf{y} = \begin{bmatrix} f(\omega^0) \\ f(\omega^1) \\ f(\omega^2) \\ \vdots \\ f(\omega^{k-1}) \end{bmatrix}

can be obtained by multiplying the coefficient vector a\mathbf{a} by V(ω)V(\omega):

\mathbf{y}= V(\omega) \cdot \mathbf{a}\
[f(ω0)f(ω1)f(ω2)⋮f(ωk−1)]=[(ω0)0(ω0)1(ω0)2⋯(ω0)k−1(ω1)0(ω1)1(ω1)2⋯(ω1)k−1(ω2)0(ω2)1(ω2)2⋯(ω2)k−1⋮⋮⋮⋱⋮(ωk−1)0(ωk−1)1(ωk−1)2⋯(ωk−1)k−1][a0a1a2⋮ak−1]\begin{bmatrix} f(\omega^0) \\ f(\omega^1) \\ f(\omega^2) \\ \vdots \\ f(\omega^{k-1}) \end{bmatrix} = \begin{bmatrix}(\omega^0)^0 & (\omega^0)^1 & (\omega^0)^2 & \cdots & (\omega^0)^{k-1} \\(\omega^1)^0 & (\omega^1)^1 & (\omega^1)^{2} & \cdots & (\omega^1)^{k-1} \\ (\omega^2)^0 & (\omega^{2})^1 & (\omega^2)^2 & \cdots & (\omega^2)^{k-1} \\\vdots & \vdots & \vdots & \ddots & \vdots \\ (\omega^{k-1})^0 & (\omega^{k-1})^1 & (\omega^{k-1})^2 & \cdots & (\omega^{k-1})^{k-1} \end{bmatrix} \begin{bmatrix} a_0 \\ a_1 \\ a_2 \\ \vdots \\ a_{k-1} \end{bmatrix}

where a0,a1,...,ak−1a_0, a_1, ..., a_{k-1} are the coefficients of the polynomial f(x)f(x).

Each row on the left-hand side is the inner product of the ii-th row of the Vandermonde matrix and the vector a\mathbf{a}. For instance, the ii-th element f(ωi)f(\omega^i) is

f(ωi)=⟨[(ωi)0,(ωi)1,…,(ωi)k−1],a⟩=(ωi)0a0+(ωi)1a1+…+(ωi)k−1ak−1=ωi0a0()+ωi1a1()+…+ωi(k−1)ak−1\begin{aligned} f(\omega^i) &= \langle [(\omega^i)^0,(\omega^i)^1, \ldots, (\omega^i)^{k-1}],\mathbf{a} \rangle \\ &= (\omega^i)^0 a_0 + (\omega^i)^1a_1 + \ldots + (\omega^i)^{k-1} a_{k-1} \\ &= \omega^{i0} a_0 \phantom{()} + \omega^{i1}a_1 \phantom{()} + \ldots + \omega^{i(k-1)} a_{k-1} \end{aligned}

Thus, the evaluations can be written as

f(ωi)=∑j=0k−1ωijajf(\omega^i) = \sum_{j=0}^{k-1} \omega^{ij} a_j

for i∈{0,1,2,...,k−1}i\in \{0,1,2,...,k-1\}.

Note on indices: In the equation above, we have two indices. The index ii indicates which evaluation we are dealing with, and it can take the values 0,1,2,…,k−10,1,2,\ldots, k-1. This means that the formula above represents not just one equation, but kk equations, one for each value of ii. For instance, the notation above is a shorthand for

f(ω0)=∑j=0k−1ω0jajf(ω1)=∑j=0k−1ω1jaj⋮f(ωk−1)=∑j=0k−1ω(k−1)jaj\begin{aligned} f(\omega^0) &= \sum_{j=0}^{k-1} \omega^{0j} a_j \\ f(\omega^1) &= \sum_{j=0}^{k-1} \omega^{1j} a_j \\ \vdots \\ f(\omega^{k-1}) &= \sum_{j=0}^{k-1} \omega^{(k-1)j} a_j \\ \end{aligned}

The index jj in ωij\omega^{ij} and aja_j is a summation index and therefore “consumed” by the sum. Because it is consumed by the sum, it does not appear on the left-hand side of the equation. The choice of the indices ii and jj is arbitrary; we could have used m,n,p,qm,n,p,q or any other letters. In general, for vector indices, it is common to use letters from the middle of the alphabet.

Now we want to find the inverse relation to obtain the vector a\mathbf{a} from the vector y\mathbf{y}. In other words, we want to calculate a=V−1(ω)⋅y\mathbf{a} = V^{-1}(\omega) \cdot \mathbf{y}, where V−1(ω)V^{-1}(\omega) is the inverse of V(ω)V(\omega).

Our claim is that the inverse of the Vandermonde matrix V(ω)V(\omega) is also a Vandermonde matrix, given by 1kV(ω−1)\frac{1}{k}V(\omega^{-1}).

To be completely clear, our claim is that

V−1(ω)=1kV(ω−1)V^{-1}(\omega) = \frac{1}{k} V({\omega^{-1}})

where ω\omega is a primitive kk-th root of unity.

If the claim is correct, the vector a\mathbf{a} can be calculated as follows:

a=1kV(ω−1)⋅y\mathbf{a} = \frac{1}{k}V(\omega^{-1}) \cdot \mathbf{y}
[a0a1⋮ai⋮ak−1]=1k[(ω0)0(ω0)1⋯(ω0)k−1(ω−1)0(ω−1)1⋯(ω−1)k−1⋮⋮⋱⋮(ω−i)0(ω−i)1⋯(ω−i)k−1⋮⋮⋱⋮(ω−(k−1))0(ω−(k−1))1⋯(ω−(k−1))k−1][f(ω0)f(ω1)⋮f(ωk−1)]\begin{aligned}\begin{bmatrix}a_0 \\a_1 \\\vdots \\a_i \\\vdots \\a_{k-1}\end{bmatrix}&=\frac{1}{k}\begin{bmatrix}(\omega^0)^0 & (\omega^0)^1 & \cdots & (\omega^0)^{k-1} \\(\omega^{-1})^0 & (\omega^{-1})^1 & \cdots & (\omega^{-1})^{k-1} \\\vdots & \vdots & \ddots & \vdots \\(\omega^{-i})^0 & (\omega^{-i})^1 & \cdots & (\omega^{-i})^{k-1} \\\vdots & \vdots & \ddots & \vdots \\(\omega^{-(k-1)})^0 & (\omega^{-(k-1)})^1 & \cdots & (\omega^{-(k-1)})^{k-1}\end{bmatrix}\begin{bmatrix}f(\omega^0) \\f(\omega^1) \\\vdots \\f(\omega^{k-1})\end{bmatrix}\end{aligned}

The component aia_i is the inner product between the ii-th row of 1kV(ω−1)\frac{1}{k}V(\omega^{-1}) and the vector y\mathbf{y}:

ai=1k[(ω−i)0(ω−i)1⋯(ω−i)k−1]⋅[f(ω0)f(ω1)⋮f(ωk−1)]=1k(ω−i)0f(ω0)+1k(ω−i)1f(ω1)+…+1k(ω−i)k−1f(ωk−1)=1kω−i0f(ω0)()+1kω−i1f(ω1)()+…+1kω−i(k−1)f(ωk−1)\begin{aligned} a_i &= \frac{1}{k} \begin{bmatrix} (\omega^{-i})^0 & (\omega^{-i})^1 & \cdots & (\omega^{-i})^{k-1} \end{bmatrix} \cdot \begin{bmatrix} f(\omega^0) \\ f(\omega^1) \\ \vdots \\ f(\omega^{k-1}) \end{bmatrix} \\ &=\frac{1}{k}(\omega^{-i})^0 f(\omega^0) + \frac{1}{k}(\omega^{-i})^1 f(\omega^1) + \ldots + \frac{1}{k}(\omega^{-i})^{k-1} f(\omega^{k-1}) \\&=\frac{1}{k}\omega^{-i0} f(\omega^0)\phantom{()} + \frac{1}{k}\omega^{-i1} f(\omega^1)\phantom{()} + \ldots + \frac{1}{k}\omega^{-i(k-1)} f(\omega^{k-1}) \end{aligned}

This operation can be written as the following sum:

ai=∑m=0k−11kω−imf(ωm)\begin{aligned} a_i &= \sum_{m=0}^{k-1} \frac{1}{k} \omega^{-im} f(\omega^m) \end{aligned}

for i∈{0,1,2,...,k−1}i\in\{0,1,2,...,k-1\}.

For pedagogical reasons, we will prove our claim - that the inverse of the Vandermonde matrix V(ω)V(\omega) is another Vandermonde matrix, given by 1kV(ω−1)\frac{1}{k}V(\omega^{-1}) - in two different ways.

First, we will show that the matrix multiplication of V(ω)V(\omega) and 1kV(ω−1)\frac{1}{k}V(\omega^{-1}) yields the identity matrix I\mathbb{I}, that is,

V(ω)⋅1kV(ω−1)=IV(\omega) \cdot \frac{1}{k}V(\omega^{-1}) = \mathbb{I}

Then, we will show that if we first multiply V(ω)V(\omega) by a\mathbf{a} to obtain y\mathbf{y}, and then multiply 1kV(ω−1)\frac{1}{k}V(\omega^{-1}) by V(ω)aV(\omega)\mathbf{a}, we recover a\mathbf{a}.

These two proofs are essentially the same, just expressed in two different ways.

Proof that V(ω)⋅1kV(ω−1)=IV(\omega) \cdot \frac{1}{k}V(\omega^{-1}) = \mathbb{I}

We will prove that the matrix multiplication of V(ω)V(\omega) with 1kV(ω−1)\frac{1}{k} V(\omega^{-1}) yields the identity matrix.

The proof relies on the orthogonality property of the roots of unity, which is expressed as a summation. Therefore, we first write the matrix multiplication in summation form so that we can use this orthogonality property.

The multiplication V(ω)⋅1kV(ω−1)V(\omega) \cdot \frac{1}{k}V(\omega^{-1}) in index notation

Recall that the matrix entry of V(ω)V(\omega) in row ii and column mm is given by

ωim\omega^{im}

Note: The numbering of rows and columns here is considered from 00, not 11.

For example, the entry in row 11 and column 22 of V(ω)V(\omega) is (ω1)2,(\omega^1)^2, as highlighted below in red:

V(ω)=[(ω0)0(ω0)1(ω0)2⋯(ω0)k−1(ω1)0(ω1)1(ω1)2⋯(ω1)k−1(ω2)0(ω2)1(ω2)2⋯(ω2)k−1⋮⋮⋮⋱⋮(ωk−1)0(ωk−1)1(ωk−1)2⋯(ωk−1)k−1]V(\omega) = \begin{bmatrix}(\omega^0)^0 & (\omega^0)^1 & (\omega^0)^2 & \cdots & (\omega^0)^{k-1} \\(\omega^1)^0 & (\omega^1)^1 & \color{red}(\omega^1)^{2} & \cdots & (\omega^1)^{k-1} \\ (\omega^2)^0 & (\omega^{2})^1 & (\omega^2)^2 & \cdots & (\omega^2)^{k-1} \\\vdots & \vdots & \vdots & \ddots & \vdots \\ (\omega^{k-1})^0 & (\omega^{k-1})^1 & (\omega^{k-1})^2 & \cdots & (\omega^{k-1})^{k-1} \end{bmatrix}

Also, the matrix entry of 1kV(ω−1)\frac{1}{k} V(\omega^{-1}) in row mm and column jj is given by

1kω−mj\frac{1}{k} \omega^{-mj}

For example, the entry in row 22 and column 00 of 1kV(ω−1)\frac{1}{k} V(\omega^{-1}) is (ω−2)0(\omega^{-2})^0, as highlighted below:

1kV(ω−1)=1k[(ω0)0(ω0)1(ω0)2⋯(ω0)k−1(ω−1)0(ω−1)1(ω−1)2⋯(ω−1)k−1(ω−2)0(ω−2)1(ω−2)2⋯(ω−2)k−1⋮⋮⋮⋱⋮(ω−(k−1))0(ω−(k−1))1(ω−(k−1))2⋯(ω−(k−1))k−1]\frac{1}{k} V(\omega^{-1}) = \frac{1}{k}\begin{bmatrix}(\omega^0)^0 & (\omega^0)^1 & (\omega^0)^2 & \cdots & (\omega^0)^{k-1} \\(\omega^{-1})^0 & (\omega^{-1})^1 & (\omega^{-1})^{2} & \cdots & (\omega^{-1})^{k-1} \\ \color{red}(\omega^{-2})^0 & (\omega^{-2})^1 & (\omega^{-2})^2 & \cdots & (\omega^{-2})^{k-1} \\\vdots & \vdots & \vdots & \ddots & \vdots \\ (\omega^{-(k-1)})^0 & (\omega^{-(k-1)})^1 & (\omega^{-(k-1)})^2 & \cdots & (\omega^{-(k-1)})^{k-1} \end{bmatrix}

Therefore, when the two matrices V(ω)V(\omega) and 1kV(ω−1)\frac{1}{k} V(\omega^{-1}) are multiplied, the resulting element in row ii and column jj is obtained by multiplying row ii of V(ω)V(\omega) (red) with column jj of 1kV(ω−1)\frac{1}{k} V(\omega^{-1}) (blue):

V(ω)⋅1kV(ω−1)=[(ω0)0(ω0)1(ω0)2⋯(ω0)k−1(ω1)0(ω1)1(ω1)2⋯(ω1)k−1⋮⋮⋮⋱⋮(ωi)0(ωi)1(ωi)2⋯(ωi)k−1⋮⋮⋮⋱⋮(ωk−1)0(ωk−1)1(ωk−1)2⋯(ωk−1)k−1]1k[(ω0)0(ω0)1⋯(ω0)j⋯(ω0)k−1(ω−1)0(ω−1)1⋯(ω−1)j⋯(ω−1)k−1(ω−2)0(ω−2)1⋯(ω−2)j⋯(ω−2)k−1⋮⋮⋮⋱⋮(ω−(k−1))0(ω−(k−1))1⋯(ω−(k−1))j⋯(ω−(k−1))k−1]V(\omega)\cdot \frac{1}{k} V(\omega^{-1}) = \begin{bmatrix}(\omega^0)^0 & (\omega^0)^1 & (\omega^0)^2 & \cdots & (\omega^0)^{k-1} \\(\omega^1)^0 & (\omega^1)^1 & (\omega^1)^{2} & \cdots & (\omega^1)^{k-1} \\\vdots & \vdots & \vdots & \ddots & \vdots \\ \color{red}(\omega^i)^0 & \color{red}(\omega^{i})^1 & \color{red}(\omega^i)^2 & \color{red}\cdots & \color{red}(\omega^i)^{k-1} \\\vdots & \vdots & \vdots & \ddots & \vdots \\ (\omega^{k-1})^0 & (\omega^{k-1})^1 & (\omega^{k-1})^2 & \cdots & (\omega^{k-1})^{k-1} \end{bmatrix} \frac{1}{k}\begin{bmatrix}(\omega^0)^0 & (\omega^0)^1 & \cdots \color{blue}(\omega^0)^j & \cdots & (\omega^0)^{k-1} \\(\omega^{-1})^0 & (\omega^{-1})^1 & \cdots \color{blue}(\omega^{-1})^{j} & \cdots & (\omega^{-1})^{k-1} \\ (\omega^{-2})^0 & (\omega^{-2})^1 & \cdots \color{blue}(\omega^{-2})^j & \cdots & (\omega^{-2})^{k-1} \\\vdots & \vdots & \color{blue}\vdots & \ddots & \vdots \\ (\omega^{-(k-1)})^0 & (\omega^{-(k-1)})^1 & \cdots \color{blue}(\omega^{-(k-1)})^j & \cdots & (\omega^{-(k-1)})^{k-1} \end{bmatrix}

Each entry of the matrix V(ω)⋅1kV(ω−1)V(\omega) \cdot \frac{1}{k} V(\omega^{-1}), which we denote by MijM_{ij}, is then given by

Mij =(ωi)0 (ω0)j +(ωi)1 (ω−1)j +⋯ +(ωi)k−1 (ω−(k−1))j=ωi0 ω0j +ωi1 ω−1j +⋯ +ωi(k−1) ω−(k−1)j=∑m=0k−1 ωim 1kω−mj=1k∑m=0k−1(ωm) i−j\begin{aligned}M_{ij} &= \color{red}{(\omega^i)^0}\,\color{blue}{(\omega^0)^j} + \color{red}{(\omega^i)^1}\,\color{blue}{(\omega^{-1})^j} + \cdots + \color{red}{(\omega^i)^{k-1}}\,\color{blue}{(\omega^{-(k-1)})^j}\\[6pt]&= \color{red}{\omega^{i0}}\,\color{blue}{\omega^{0j}} + \color{red}{\omega^{i1}}\,\color{blue}{\omega^{-1j}} + \cdots + \color{red}{\omega^{i(k-1)}}\,\color{blue}{\omega^{-(k-1)j}}\\[6pt]&= \sum_{m=0}^{k-1} \color{red}{\omega^{im}}\,\frac{1}{k}\color{blue}{\omega^{-mj}}\\[6pt]&= \frac{1}{k}\sum_{m=0}^{k-1} (\omega^{m})^{\,i-j}\end{aligned}

Now we need to show that the entries MijM_{ij} are equal to those of the identity matrix. To do this, we use the orthogonality of the roots of unity.

Recall: Orthogonality of roots of unity

In the chapter on the orthogonality of roots of unity, we showed that

∑m=0k−1(ωm)i−j={k,if i≡j(modk),0,otherwise.\sum_{m=0}^{k-1} (\omega^{m})^{i-j}=\begin{cases}k, & \text{if } i\equiv j \pmod{k},\\[6pt]0, & \text{otherwise}.\end{cases}

To recap, the formula above gives us the result of the summation in two cases: (1) when i≡ji\equiv j and (2) when i≢ji \not\equiv j. We will use both cases below.

Case 1: When i≡ji\equiv j

We want to calculate

Mij=1k∑m=0k−1(ωm) i−jM_{ij} = \frac{1}{k}\sum_{m=0}^{k-1} (\omega^{m})^{\,i-j}

when i≡ji\equiv j. The orthogonality of the roots of unity says that, when i≡ji\equiv j,

∑m=0k−1(ωm) i−j=k\sum_{m=0}^{k-1} (\omega^{m})^{\,i-j} = k

Using this result for MijM_{ij}, we have that

Mij=1k∑m=0k−1(ωm) i−j=1kk=1\begin{aligned} M_{ij} &= \frac{1}{k} \boxed{\sum_{m=0}^{k-1} (\omega^{m})^{\,i-j}} \\ &= \frac{1}{k} k = 1 \end{aligned}

Thus, for the diagonal terms (such as M00,M11,M22,...,M(k−1)(k−1)M_{00}, M_{11}, M_{22},...,M_{(k-1)(k-1)}), we have

Mij=1when i=j\begin{aligned} M_{ij} &= 1 && \text{when }i = j \end{aligned}

Case 2: When i≢ji \not\equiv j

Now we want to calculate

Mij=1k∑m=0k−1(ωm) i−jM_{ij} = \frac{1}{k}\sum_{m=0}^{k-1} (\omega^{m})^{\,i-j}

when i≢ji\not\equiv j. The orthogonality of the roots of unity says that, when i≢ji\not\equiv j ,

∑m=0k−1(ωm) i−j=0\sum_{m=0}^{k-1} (\omega^{m})^{\,i-j} = 0

Using this result for MijM_{ij}, we have

Mij=1k∑m=0k−1(ωm) i−j=1k0=0\begin{aligned} M_{ij} &= \frac{1}{k} \boxed{\sum_{m=0}^{k-1} (\omega^{m})^{\,i-j}} \\ &= \frac{1}{k} 0 = 0 \end{aligned}

Therefore, for any non-diagonal terms (such as M10,M01,M12,… )M_{10}, M_{01}, M_{12}, \dots), we have Mij=0M_{ij} = 0.

The matrix MM

Taking into account cases (1) and (2) above, we have that the matrix M=(Mij)M = (M_{ij}) is

M=(10⋯001⋯0⋮⋮⋱⋮00⋯1)M =\begin{pmatrix}1 & 0 & \cdots & 0 \\0 & 1 & \cdots & 0 \\\vdots & \vdots & \ddots & \vdots \\0 & 0 & \cdots & 1\end{pmatrix}

which is exactly the identity matrix I\mathbb{I}. Thus, the matrices V(ω)V(\omega) and 1kV(ω−1)\frac{1}{k} V(\omega^{-1}) are inverses of each other, because

V(ω)⋅(1kV(ω−1))=M=IV(\omega) \cdot \left(\frac{1}{k} V(\omega^{-1})\right) = M = \mathbb{I}

Matrix multiplication of 1kV(ω−1)\frac{1}{k}V(\omega^{-1}) with vector y\mathbf{y} yields vector a\mathbf{a} back

Another way to show that 1kV(ω−1)\frac{1}{k} V(\omega^{-1}) is the inverse of V(ω)V(\omega) is to show that it inverts the latter.

That is, if we first apply V(ω)V(\omega) to a\mathbf{a} to obtain y\mathbf{y},

y=V(ω)⋅a\mathbf{y} = V(\omega)\cdot \mathbf{a}

and then apply 1kV(ω−1)\frac{1}{k}V(\omega^{-1}) to y\mathbf{y}, we recover a\mathbf{a}:

a=1kV(ω−1)⋅y\mathbf{a} = \frac{1}{k} V(\omega^{-1}) \cdot \mathbf{y}

That is exactly what we will show.

First transformation: y=V(ω)⋅a\mathbf{y} = V(\omega) \cdot \mathbf{a}

The first transformation takes the vector of coefficients a\mathbf{a} to the vector of evaluations y\mathbf{y} via the following matrix operation:

[f(ω0)f(ω1)f(ω2)⋮f(ωk−1)]=[(ω0)0(ω0)1(ω0)2⋯(ω0)k−1(ω1)0(ω1)1(ω1)2⋯(ω1)k−1(ω2)0(ω2)1(ω2)2⋯(ω2)k−1⋮⋮⋮⋱⋮(ωk−1)0(ωk−1)1(ωk−1)2⋯(ωk−1)k−1][a0a1a2⋮ak−1]\begin{bmatrix} f(\omega^0) \\ f(\omega^1) \\ f(\omega^2) \\ \vdots \\ f(\omega^{k-1}) \end{bmatrix} = \begin{bmatrix}(\omega^0)^0 & (\omega^0)^1 & (\omega^0)^2 & \cdots & (\omega^0)^{k-1} \\(\omega^1)^0 & (\omega^1)^1 & (\omega^1)^{2} & \cdots & (\omega^1)^{k-1} \\ (\omega^2)^0 & (\omega^{2})^1 & (\omega^2)^2 & \cdots & (\omega^2)^{k-1} \\\vdots & \vdots & \vdots & \ddots & \vdots \\ (\omega^{k-1})^0 & (\omega^{k-1})^1 & (\omega^{k-1})^2 & \cdots & (\omega^{k-1})^{k-1} \end{bmatrix} \begin{bmatrix} a_0 \\ a_1 \\ a_2 \\ \vdots \\ a_{k-1} \end{bmatrix}

As we have already seen, this matrix operation can be written using indices:

f(ωi)=∑j=0k−1ωijajf(\omega^i) = \sum_{j=0}^{k-1} \omega^{ij} a_j

Second transformation: a~=1kV(ω−1)y\mathbf{\tilde{a}} = \frac{1}{k}V(\omega^{-1}) \mathbf{y}

Now we perform a second transformation on the vector y\mathbf{y}, which results in a vector a~\mathbf{\tilde{a}}:

[a~0a~1a~2⋮a~k−1]=1k[(ω0)0(ω0)1(ω0)2⋯(ω0)k−1(ω−1)0(ω−1)1(ω−1)2⋯(ω−1)k−1(ω−2)0(ω−2)1(ω−2)2⋯(ω−2)k−1⋮⋮⋮⋱⋮(ω−(k−1))0(ω−(k−1))1(ω−(k−1))2⋯(ω−(k−1))k−1][f(ω0)f(ω1)f(ω2)⋮f(ωk−1)]\begin{bmatrix} \tilde{a}_0 \\ \tilde{a}_1 \\ \tilde{a}_2 \\\vdots \\ \tilde{a}_{k-1} \end{bmatrix}= \frac{1}{k}\begin{bmatrix}(\omega^0)^0 & (\omega^0)^1 & (\omega^0)^2 & \cdots & (\omega^0)^{k-1} \\(\omega^{-1})^0 & (\omega^{-1})^1 & (\omega^{-1})^{2} & \cdots & (\omega^{-1})^{k-1} \\ (\omega^{-2})^0 & (\omega^{-2})^1 & (\omega^{-2})^2 & \cdots & (\omega^{-2})^{k-1} \\\vdots & \vdots & \vdots & \ddots & \vdots \\ (\omega^{-(k-1)})^0 & (\omega^{-(k-1)})^1 & (\omega^{-(k-1)})^2 & \cdots & (\omega^{-(k-1)})^{k-1} \end{bmatrix} \begin{bmatrix} f(\omega^0) \\ f(\omega^1) \\ f(\omega^2) \\\vdots \\ f(\omega^{k-1}) \end{bmatrix}

If we can show that a=a~\mathbf{a} = \mathbf{\tilde{a}}, then the second transformation is the inverse of the first.

The matrix operation above can be written in index form as

a~j=∑m=0k−11kω−jmf(ωm)\tilde{a}_j = \sum_{m=0}^{k-1} \frac{1}{k} \omega^{-jm} f(\omega^m)

Now substitute the expression for f(ωi)f(\omega^i) . Recall that

f(ωi)=∑j=0k−1ωijajf(\omega^i) = \sum_{j=0}^{k-1} \omega^{ij} a_j

where ii is just an index that we can replace for mm, or any other letter. Thus, replacing f(ωm)f(\omega^m) in the result for a~j\tilde{a}_j, we have

a~j=∑m=0k−11kω−jmf(ωm)=∑m=0k−11kω−jm(∑i=0k−1ωmiai)\begin{aligned} \tilde{a}_j &= \sum_{m=0}^{k-1} \frac{1}{k} \omega^{-jm} f(\omega^m) \\ &= \sum_{m=0}^{k-1} \frac{1}{k} \omega^{-jm} \left(\sum_{i=0}^{k-1} \omega^{mi} a_i \right) \end{aligned}

Rewriting as a double sum:

a~j=∑i=0k−1∑m=0k−11kω−jmωmiai=∑i=0k−11k(∑m=0k−1ωm(i−j))ai\begin{aligned} \tilde{a}_j &= \sum_{i=0}^{k-1} \sum_{m=0}^{k-1} \frac{1}{k} \omega^{-jm} \omega^{mi} a_i \\ &= \sum_{i=0}^{k-1} \frac{1}{k} \left( \sum_{m=0}^{k-1} \omega^{m(i-j)} \right) a_i \end{aligned}

The term in parentheses is exactly the orthogonality relation:

∑m=0k−1(ωm)i−j={k,if i≡j(modk),0,otherwise.\sum_{m=0}^{k-1} (\omega^{m})^{i-j}=\begin{cases}k, & \text{if } i\equiv j \pmod{k},\\[6pt]0, & \text{otherwise}.\end{cases}

To continue the proof, we could study case (1), where i=ji=j, and case (2), where i≠ji \neq j, but we will proceed differently. We will introduce a symbol called the Kronecker delta.

The Kronecker delta, δij\delta_{ij}, is a symbol with 2 indices, ii and jj in this case, which is 11 when i=ji=j and 00 otherwise:

δij={1if i=j0if i≠j\delta_{ij} =\begin{cases}1 & \text{if } i = j \\0 & \text{if } i \ne j\end{cases}

The Kronecker delta can be understood as the entries of the identity matrix.

Using the Kronecker delta, we can write the orthogonality property as

∑m=0k−1(ωm)i−j=kδij\sum_{m=0}^{k-1} (\omega^{m})^{i-j} = k \delta_{ij}

Using the Kronecker delta in the expression for a~j\tilde{a}_j, we have

a~j=∑i=0k−11k(∑m=0k−1ωm(i−j))ai=∑i=0k−11k(kδij)ai=∑i=0k−11k(kδij)ai=∑i=0k−1δijai\begin{aligned} \tilde{a}_j &= \sum_{i=0}^{k-1} \frac{1}{k} \left( \sum_{m=0}^{k-1} \omega^{m(i-j)} \right) a_i \\ &= \sum_{i=0}^{k-1} \frac{1}{k} \left( k\delta_{ij} \right) a_i \\ &= \sum_{i=0}^{k-1} \frac{1}{\cancel{k}} \left( \cancel{k}\delta_{ij} \right) a_i \\ &= \sum_{i=0}^{k-1} \delta_{ij} a_i \end{aligned}

Expanding the summation, the expression above can be written as

a~j=δ0ja0+δ1ja1+δ2ja2+...+δ(k−1)jak−1\tilde{a}_j = \delta_{0j} a_0 + \delta_{1j} a_1 + \delta_{2j} a_2 + ... + \delta_{(k-1)j}a_{k-1}

By the Kronecker delta property, only one term in the summation is nonzero. For example, for j=2j=2, only δ22\delta_{22} is nonzero. Thus, we have

a~2=δ02a0+δ12a1+δ22a2+⋯+δ(k−1)2ak−1=δ02a0+δ12a1+δ22a2+⋯+δ(k−1)2ak−1=a2\begin{aligned} \tilde{a}_2 &= \delta_{02} a_0 + \delta_{12} a_1 + \delta_{22} a_2 + \cdots + \delta_{(k-1)2} a_{k-1} \\ &= \cancel{\delta_{02} a_0} + \cancel{\delta_{12} a_1} + \delta_{22} a_2 + \cdots + \cancel{\delta_{(k-1)2} a_{k-1}} \\ &= a_2 \end{aligned}

This holds true for any jj, therefore we have that

a~j=aj\tilde{a}_j = a_j

for any jj.

This shows that the transformation 1kV(ω−1)\frac{1}{k} V(\omega^{-1}) is the inverse of the transformation V(ω)V(\omega).

This article is part of a series on the Number Theoretic Transform in our ZK Book

Ready to Get Started?Join Thousands of Users Today

Start your free trial now and experience the difference. No credit card required.

© 2026 Better-Start. All rights reserved.