In the previous chapter on the Inverse Number Theoretic Transform , we claimed that the inverse of the Vandermonde matrix V ( ω ) V(\omega) V ( ω ) for a primitive k k k -th root of unity ω \omega ω is also a Vandermonde matrix, given by 1 k V ( ω − 1 ) \frac{1}{k}V(\omega^{-1}) k 1 V ( ω − 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 ω 0 from ( ω 0 ) 0 (\omega^0)^0 ( ω 0 ) 0 to ( ω ) k − 1 (\omega)^{k-1} ( ω ) k − 1 .
The second row is the geometric progression of ω 1 \omega^1 ω 1 from ( ω 1 ) 0 (\omega^1)^{0} ( ω 1 ) 0 to ( ω 1 ) k − 1 (\omega^1)^{k -1} ( ω 1 ) k − 1 .
This continues until the last row, which is the geometric progression of ω k − 1 \omega^{k-1} ω k − 1 from ( ω k − 1 ) 0 (\omega^{k-1})^0 ( ω k − 1 ) 0 to ( ω k − 1 ) k − 1 (\omega^{k-1})^{k-1} ( ω 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}. V ( ω ) = ( ω 0 ) 0 ( ω 1 ) 0 ( ω 2 ) 0 ⋮ ( ω k − 1 ) 0 ( ω 0 ) 1 ( ω 1 ) 1 ( ω 2 ) 1 ⋮ ( ω k − 1 ) 1 ( ω 0 ) 2 ( ω 1 ) 2 ( ω 2 ) 2 ⋮ ( ω k − 1 ) 2 ⋯ ⋯ ⋯ ⋱ ⋯ ( ω 0 ) k − 1 ( ω 1 ) k − 1 ( ω 2 ) k − 1 ⋮ ( ω k − 1 ) k − 1 .
Thus, each entry in row i i i and column j j j of V ( ω ) V(\omega) V ( ω ) is given by
Consider a polynomial f ( x ) f(x) f ( x ) of degree at most k − 1 k-1 k − 1 , given by
f ( x ) = a 0 + a 1 x + a 2 x 2 + ⋯ + a k − 1 x k − 1 f(x)=a_0+a_1x+a_2x^2+\cdots+ a_{k-1}x^{k-1} f ( x ) = a 0 + a 1 x + a 2 x 2 + ⋯ + a k − 1 x k − 1
Let S S S be the set consisting of the k k k -th roots of unity generated by a primitive k k k -th root:
S = { ω 0 , ω 1 , ω 2 , ⋯ ω k − 1 } S=\{\omega^0, \omega^1, \omega^2, \cdots \omega^{k-1}\} S = { ω 0 , ω 1 , ω 2 , ⋯ ω k − 1 }
The vector of evaluations of f ( x ) f(x) f ( x ) on the set S S S ,
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} y = f ( ω 0 ) f ( ω 1 ) f ( ω 2 ) ⋮ f ( ω k − 1 )
can be obtained by multiplying the coefficient vector a \mathbf{a} a by V ( ω ) V(\omega) V ( ω ) :
\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 ] [ a 0 a 1 a 2 ⋮ a k − 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} f ( ω 0 ) f ( ω 1 ) f ( ω 2 ) ⋮ f ( ω k − 1 ) = ( ω 0 ) 0 ( ω 1 ) 0 ( ω 2 ) 0 ⋮ ( ω k − 1 ) 0 ( ω 0 ) 1 ( ω 1 ) 1 ( ω 2 ) 1 ⋮ ( ω k − 1 ) 1 ( ω 0 ) 2 ( ω 1 ) 2 ( ω 2 ) 2 ⋮ ( ω k − 1 ) 2 ⋯ ⋯ ⋯ ⋱ ⋯ ( ω 0 ) k − 1 ( ω 1 ) k − 1 ( ω 2 ) k − 1 ⋮ ( ω k − 1 ) k − 1 a 0 a 1 a 2 ⋮ a k − 1
where a 0 , a 1 , . . . , a k − 1 a_0, a_1, ..., a_{k-1} a 0 , a 1 , ... , a k − 1 are the coefficients of the polynomial f ( x ) f(x) f ( x ) .
Each row on the left-hand side is the inner product of the i i i -th row of the Vandermonde matrix and the vector a \mathbf{a} a . For instance, the i i i -th element f ( ω i ) f(\omega^i) f ( ω i ) is
f ( ω i ) = ⟨ [ ( ω i ) 0 , ( ω i ) 1 , … , ( ω i ) k − 1 ] , a ⟩ = ( ω i ) 0 a 0 + ( ω i ) 1 a 1 + … + ( ω i ) k − 1 a k − 1 = ω i 0 a 0 ( ) + ω i 1 a 1 ( ) + … + ω i ( k − 1 ) a k − 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} f ( ω i ) = ⟨[( ω i ) 0 , ( ω i ) 1 , … , ( ω i ) k − 1 ] , a ⟩ = ( ω i ) 0 a 0 + ( ω i ) 1 a 1 + … + ( ω i ) k − 1 a k − 1 = ω i 0 a 0 ( ) + ω i 1 a 1 ( ) + … + ω i ( k − 1 ) a k − 1
Thus, the evaluations can be written as
f ( ω i ) = ∑ j = 0 k − 1 ω i j a j f(\omega^i) = \sum_{j=0}^{k-1} \omega^{ij} a_j f ( ω i ) = j = 0 ∑ k − 1 ω ij a j
for i ∈ { 0 , 1 , 2 , . . . , k − 1 } i\in \{0,1,2,...,k-1\} i ∈ { 0 , 1 , 2 , ... , k − 1 } .
Note on indices: In the equation above, we have two indices. The index i i i indicates which evaluation we are dealing with, and it can take the values 0 , 1 , 2 , … , k − 1 0,1,2,\ldots, k-1 0 , 1 , 2 , … , k − 1 . This means that the formula above represents not just one equation, but k k k equations, one for each value of i i i . For instance, the notation above is a shorthand for
f ( ω 0 ) = ∑ j = 0 k − 1 ω 0 j a j f ( ω 1 ) = ∑ j = 0 k − 1 ω 1 j a j ⋮ f ( ω k − 1 ) = ∑ j = 0 k − 1 ω ( k − 1 ) j a j \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} f ( ω 0 ) f ( ω 1 ) ⋮ f ( ω k − 1 ) = j = 0 ∑ k − 1 ω 0 j a j = j = 0 ∑ k − 1 ω 1 j a j = j = 0 ∑ k − 1 ω ( k − 1 ) j a j
The index j j j in ω i j \omega^{ij} ω ij and a j a_j a 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 i i i and j j j is arbitrary; we could have used m , n , p , q m,n,p,q m , 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} a from the vector y \mathbf{y} y . In other words, we want to calculate a = V − 1 ( ω ) ⋅ y \mathbf{a} = V^{-1}(\omega) \cdot \mathbf{y} a = V − 1 ( ω ) ⋅ y , where V − 1 ( ω ) V^{-1}(\omega) V − 1 ( ω ) is the inverse of V ( ω ) V(\omega) V ( ω ) .
Our claim is that the inverse of the Vandermonde matrix V ( ω ) V(\omega) V ( ω ) is also a Vandermonde matrix, given by 1 k V ( ω − 1 ) \frac{1}{k}V(\omega^{-1}) k 1 V ( ω − 1 ) .
To be completely clear, our claim is that
V − 1 ( ω ) = 1 k V ( ω − 1 ) V^{-1}(\omega) = \frac{1}{k} V({\omega^{-1}}) V − 1 ( ω ) = k 1 V ( ω − 1 )
where ω \omega ω is a primitive k k k -th root of unity.
If the claim is correct, the vector a \mathbf{a} a can be calculated as follows:
a = 1 k V ( ω − 1 ) ⋅ y \mathbf{a} = \frac{1}{k}V(\omega^{-1}) \cdot \mathbf{y} a = k 1 V ( ω − 1 ) ⋅ y
[ a 0 a 1 ⋮ a i ⋮ a k − 1 ] = 1 k [ ( ω 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} a 0 a 1 ⋮ a i ⋮ a k − 1 = k 1 ( ω 0 ) 0 ( ω − 1 ) 0 ⋮ ( ω − i ) 0 ⋮ ( ω − ( k − 1 ) ) 0 ( ω 0 ) 1 ( ω − 1 ) 1 ⋮ ( ω − i ) 1 ⋮ ( ω − ( k − 1 ) ) 1 ⋯ ⋯ ⋱ ⋯ ⋱ ⋯ ( ω 0 ) k − 1 ( ω − 1 ) k − 1 ⋮ ( ω − i ) k − 1 ⋮ ( ω − ( k − 1 ) ) k − 1 f ( ω 0 ) f ( ω 1 ) ⋮ f ( ω k − 1 )
The component a i a_i a i is the inner product between the i i i -th row of 1 k V ( ω − 1 ) \frac{1}{k}V(\omega^{-1}) k 1 V ( ω − 1 ) and the vector y \mathbf{y} y :
a i = 1 k [ ( ω − i ) 0 ( ω − i ) 1 ⋯ ( ω − i ) k − 1 ] ⋅ [ f ( ω 0 ) f ( ω 1 ) ⋮ f ( ω k − 1 ) ] = 1 k ( ω − i ) 0 f ( ω 0 ) + 1 k ( ω − i ) 1 f ( ω 1 ) + … + 1 k ( ω − i ) k − 1 f ( ω k − 1 ) = 1 k ω − i 0 f ( ω 0 ) ( ) + 1 k ω − i 1 f ( ω 1 ) ( ) + … + 1 k ω − 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} a i = k 1 [ ( ω − i ) 0 ( ω − i ) 1 ⋯ ( ω − i ) k − 1 ] ⋅ f ( ω 0 ) f ( ω 1 ) ⋮ f ( ω k − 1 ) = k 1 ( ω − i ) 0 f ( ω 0 ) + k 1 ( ω − i ) 1 f ( ω 1 ) + … + k 1 ( ω − i ) k − 1 f ( ω k − 1 ) = k 1 ω − i 0 f ( ω 0 ) ( ) + k 1 ω − i 1 f ( ω 1 ) ( ) + … + k 1 ω − i ( k − 1 ) f ( ω k − 1 )
This operation can be written as the following sum:
a i = ∑ m = 0 k − 1 1 k ω − i m f ( ω m ) \begin{aligned}
a_i &= \sum_{m=0}^{k-1} \frac{1}{k} \omega^{-im} f(\omega^m)
\end{aligned} a i = m = 0 ∑ k − 1 k 1 ω − im f ( ω m )
for i ∈ { 0 , 1 , 2 , . . . , k − 1 } i\in\{0,1,2,...,k-1\} i ∈ { 0 , 1 , 2 , ... , k − 1 } .
For pedagogical reasons, we will prove our claim - that the inverse of the Vandermonde matrix V ( ω ) V(\omega) V ( ω ) is another Vandermonde matrix, given by 1 k V ( ω − 1 ) \frac{1}{k}V(\omega^{-1}) k 1 V ( ω − 1 ) - in two different ways.
First, we will show that the matrix multiplication of V ( ω ) V(\omega) V ( ω ) and 1 k V ( ω − 1 ) \frac{1}{k}V(\omega^{-1}) k 1 V ( ω − 1 ) yields the identity matrix I \mathbb{I} I , that is,
V ( ω ) ⋅ 1 k V ( ω − 1 ) = I V(\omega) \cdot \frac{1}{k}V(\omega^{-1}) = \mathbb{I} V ( ω ) ⋅ k 1 V ( ω − 1 ) = I
Then, we will show that if we first multiply V ( ω ) V(\omega) V ( ω ) by a \mathbf{a} a to obtain y \mathbf{y} y , and then multiply 1 k V ( ω − 1 ) \frac{1}{k}V(\omega^{-1}) k 1 V ( ω − 1 ) by V ( ω ) a V(\omega)\mathbf{a} V ( ω ) a , we recover a \mathbf{a} a .
These two proofs are essentially the same, just expressed in two different ways.
Proof that V ( ω ) ⋅ 1 k V ( ω − 1 ) = I V(\omega) \cdot \frac{1}{k}V(\omega^{-1}) = \mathbb{I} V ( ω ) ⋅ k 1 V ( ω − 1 ) = I
We will prove that the matrix multiplication of V ( ω ) V(\omega) V ( ω ) with 1 k V ( ω − 1 ) \frac{1}{k} V(\omega^{-1}) k 1 V ( ω − 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 ( ω ) ⋅ 1 k V ( ω − 1 ) V(\omega) \cdot \frac{1}{k}V(\omega^{-1}) V ( ω ) ⋅ k 1 V ( ω − 1 ) in index notation
Recall that the matrix entry of V ( ω ) V(\omega) V ( ω ) in row i i i and column m m m is given by
Note: The numbering of rows and columns here is considered from 0 0 0 , not 1 1 1 .
For example, the entry in row 1 1 1 and column 2 2 2 of V ( ω ) V(\omega) V ( ω ) is ( ω 1 ) 2 , (\omega^1)^2, ( ω 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} V ( ω ) = ( ω 0 ) 0 ( ω 1 ) 0 ( ω 2 ) 0 ⋮ ( ω k − 1 ) 0 ( ω 0 ) 1 ( ω 1 ) 1 ( ω 2 ) 1 ⋮ ( ω k − 1 ) 1 ( ω 0 ) 2 ( ω 1 ) 2 ( ω 2 ) 2 ⋮ ( ω k − 1 ) 2 ⋯ ⋯ ⋯ ⋱ ⋯ ( ω 0 ) k − 1 ( ω 1 ) k − 1 ( ω 2 ) k − 1 ⋮ ( ω k − 1 ) k − 1
Also, the matrix entry of 1 k V ( ω − 1 ) \frac{1}{k} V(\omega^{-1}) k 1 V ( ω − 1 ) in row m m m and column j j j is given by
1 k ω − m j \frac{1}{k} \omega^{-mj} k 1 ω − mj
For example, the entry in row 2 2 2 and column 0 0 0 of 1 k V ( ω − 1 ) \frac{1}{k} V(\omega^{-1}) k 1 V ( ω − 1 ) is ( ω − 2 ) 0 (\omega^{-2})^0 ( ω − 2 ) 0 , as highlighted below:
1 k V ( ω − 1 ) = 1 k [ ( ω 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} k 1 V ( ω − 1 ) = k 1 ( ω 0 ) 0 ( ω − 1 ) 0 ( ω − 2 ) 0 ⋮ ( ω − ( k − 1 ) ) 0 ( ω 0 ) 1 ( ω − 1 ) 1 ( ω − 2 ) 1 ⋮ ( ω − ( k − 1 ) ) 1 ( ω 0 ) 2 ( ω − 1 ) 2 ( ω − 2 ) 2 ⋮ ( ω − ( k − 1 ) ) 2 ⋯ ⋯ ⋯ ⋱ ⋯ ( ω 0 ) k − 1 ( ω − 1 ) k − 1 ( ω − 2 ) k − 1 ⋮ ( ω − ( k − 1 ) ) k − 1
Therefore, when the two matrices V ( ω ) V(\omega) V ( ω ) and 1 k V ( ω − 1 ) \frac{1}{k} V(\omega^{-1}) k 1 V ( ω − 1 ) are multiplied, the resulting element in row i i i and column j j j is obtained by multiplying row i i i of V ( ω ) V(\omega) V ( ω ) (red) with column j j j of 1 k V ( ω − 1 ) \frac{1}{k} V(\omega^{-1}) k 1 V ( ω − 1 ) (blue):
V ( ω ) ⋅ 1 k V ( ω − 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 ] 1 k [ ( ω 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} V ( ω ) ⋅ k 1 V ( ω − 1 ) = ( ω 0 ) 0 ( ω 1 ) 0 ⋮ ( ω i ) 0 ⋮ ( ω k − 1 ) 0 ( ω 0 ) 1 ( ω 1 ) 1 ⋮ ( ω i ) 1 ⋮ ( ω k − 1 ) 1 ( ω 0 ) 2 ( ω 1 ) 2 ⋮ ( ω i ) 2 ⋮ ( ω k − 1 ) 2 ⋯ ⋯ ⋱ ⋯ ⋱ ⋯ ( ω 0 ) k − 1 ( ω 1 ) k − 1 ⋮ ( ω i ) k − 1 ⋮ ( ω k − 1 ) k − 1 k 1 ( ω 0 ) 0 ( ω − 1 ) 0 ( ω − 2 ) 0 ⋮ ( ω − ( k − 1 ) ) 0 ( ω 0 ) 1 ( ω − 1 ) 1 ( ω − 2 ) 1 ⋮ ( ω − ( k − 1 ) ) 1 ⋯ ( ω 0 ) j ⋯ ( ω − 1 ) j ⋯ ( ω − 2 ) j ⋮ ⋯ ( ω − ( k − 1 ) ) j ⋯ ⋯ ⋯ ⋱ ⋯ ( ω 0 ) k − 1 ( ω − 1 ) k − 1 ( ω − 2 ) k − 1 ⋮ ( ω − ( k − 1 ) ) k − 1
Each entry of the matrix V ( ω ) ⋅ 1 k V ( ω − 1 ) V(\omega) \cdot \frac{1}{k} V(\omega^{-1}) V ( ω ) ⋅ k 1 V ( ω − 1 ) , which we denote by M i j M_{ij} M ij , is then given by
M i j = ( ω i ) 0 ( ω 0 ) j + ( ω i ) 1 ( ω − 1 ) j + ⋯ + ( ω i ) k − 1 ( ω − ( k − 1 ) ) j = ω i 0 ω 0 j + ω i 1 ω − 1 j + ⋯ + ω i ( k − 1 ) ω − ( k − 1 ) j = ∑ m = 0 k − 1 ω i m 1 k ω − m j = 1 k ∑ m = 0 k − 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} M ij = ( ω i ) 0 ( ω 0 ) j + ( ω i ) 1 ( ω − 1 ) j + ⋯ + ( ω i ) k − 1 ( ω − ( k − 1 ) ) j = ω i 0 ω 0 j + ω i 1 ω − 1 j + ⋯ + ω i ( k − 1 ) ω − ( k − 1 ) j = m = 0 ∑ k − 1 ω im k 1 ω − mj = k 1 m = 0 ∑ k − 1 ( ω m ) i − j
Now we need to show that the entries M i j M_{ij} M 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 = 0 k − 1 ( ω m ) i − j = { k , if i ≡ j ( m o d k ) , 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} m = 0 ∑ k − 1 ( ω m ) i − j = ⎩ ⎨ ⎧ k , 0 , if i ≡ j ( mod k ) , otherwise .
To recap, the formula above gives us the result of the summation in two cases: (1) when i ≡ j i\equiv j i ≡ j and (2) when i ≢ j i \not\equiv j i ≡ j . We will use both cases below.
Case 1: When i ≡ j i\equiv j i ≡ j
We want to calculate
M i j = 1 k ∑ m = 0 k − 1 ( ω m ) i − j M_{ij} = \frac{1}{k}\sum_{m=0}^{k-1} (\omega^{m})^{\,i-j} M ij = k 1 m = 0 ∑ k − 1 ( ω m ) i − j
when i ≡ j i\equiv j i ≡ j . The orthogonality of the roots of unity says that, when i ≡ j i\equiv j i ≡ j ,
∑ m = 0 k − 1 ( ω m ) i − j = k \sum_{m=0}^{k-1} (\omega^{m})^{\,i-j} = k m = 0 ∑ k − 1 ( ω m ) i − j = k
Using this result for M i j M_{ij} M ij , we have that
M i j = 1 k ∑ m = 0 k − 1 ( ω m ) i − j = 1 k k = 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} M ij = k 1 m = 0 ∑ k − 1 ( ω m ) i − j = k 1 k = 1
Thus, for the diagonal terms (such as M 00 , M 11 , M 22 , . . . , M ( k − 1 ) ( k − 1 ) M_{00}, M_{11}, M_{22},...,M_{(k-1)(k-1)} M 00 , M 11 , M 22 , ... , M ( k − 1 ) ( k − 1 ) ), we have
M i j = 1 when i = j \begin{aligned}
M_{ij} &= 1 && \text{when }i = j
\end{aligned} M ij = 1 when i = j
Case 2: When i ≢ j i \not\equiv j i ≡ j
Now we want to calculate
M i j = 1 k ∑ m = 0 k − 1 ( ω m ) i − j M_{ij} = \frac{1}{k}\sum_{m=0}^{k-1} (\omega^{m})^{\,i-j} M ij = k 1 m = 0 ∑ k − 1 ( ω m ) i − j
when i ≢ j i\not\equiv j i ≡ j . The orthogonality of the roots of unity says that, when i ≢ j i\not\equiv j i ≡ j ,
∑ m = 0 k − 1 ( ω m ) i − j = 0 \sum_{m=0}^{k-1} (\omega^{m})^{\,i-j} = 0 m = 0 ∑ k − 1 ( ω m ) i − j = 0
Using this result for M i j M_{ij} M ij , we have
M i j = 1 k ∑ m = 0 k − 1 ( ω m ) i − j = 1 k 0 = 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} M ij = k 1 m = 0 ∑ k − 1 ( ω m ) i − j = k 1 0 = 0
Therefore, for any non-diagonal terms (such as M 10 , M 01 , M 12 , … ) M_{10}, M_{01}, M_{12}, \dots) M 10 , M 01 , M 12 , … ) , we have M i j = 0 M_{ij} = 0 M ij = 0 .
The matrix M M M
Taking into account cases (1) and (2) above, we have that the matrix M = ( M i j ) M = (M_{ij}) M = ( M ij ) is
M = ( 1 0 ⋯ 0 0 1 ⋯ 0 ⋮ ⋮ ⋱ ⋮ 0 0 ⋯ 1 ) M =\begin{pmatrix}1 & 0 & \cdots & 0 \\0 & 1 & \cdots & 0 \\\vdots & \vdots & \ddots & \vdots \\0 & 0 & \cdots & 1\end{pmatrix} M = 1 0 ⋮ 0 0 1 ⋮ 0 ⋯ ⋯ ⋱ ⋯ 0 0 ⋮ 1
which is exactly the identity matrix I \mathbb{I} I . Thus, the matrices V ( ω ) V(\omega) V ( ω ) and 1 k V ( ω − 1 ) \frac{1}{k} V(\omega^{-1}) k 1 V ( ω − 1 ) are inverses of each other, because
V ( ω ) ⋅ ( 1 k V ( ω − 1 ) ) = M = I V(\omega) \cdot \left(\frac{1}{k} V(\omega^{-1})\right) = M = \mathbb{I} V ( ω ) ⋅ ( k 1 V ( ω − 1 ) ) = M = I
Matrix multiplication of 1 k V ( ω − 1 ) \frac{1}{k}V(\omega^{-1}) k 1 V ( ω − 1 ) with vector y \mathbf{y} y yields vector a \mathbf{a} a back
Another way to show that 1 k V ( ω − 1 ) \frac{1}{k} V(\omega^{-1}) k 1 V ( ω − 1 ) is the inverse of V ( ω ) V(\omega) V ( ω ) is to show that it inverts the latter.
That is, if we first apply V ( ω ) V(\omega) V ( ω ) to a \mathbf{a} a to obtain y \mathbf{y} y ,
y = V ( ω ) ⋅ a \mathbf{y} = V(\omega)\cdot \mathbf{a} y = V ( ω ) ⋅ a
and then apply 1 k V ( ω − 1 ) \frac{1}{k}V(\omega^{-1}) k 1 V ( ω − 1 ) to y \mathbf{y} y , we recover a \mathbf{a} a :
a = 1 k V ( ω − 1 ) ⋅ y \mathbf{a} = \frac{1}{k} V(\omega^{-1}) \cdot \mathbf{y} a = k 1 V ( ω − 1 ) ⋅ y
That is exactly what we will show.
The first transformation takes the vector of coefficients a \mathbf{a} a to the vector of evaluations y \mathbf{y} 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 ] [ a 0 a 1 a 2 ⋮ a k − 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} f ( ω 0 ) f ( ω 1 ) f ( ω 2 ) ⋮ f ( ω k − 1 ) = ( ω 0 ) 0 ( ω 1 ) 0 ( ω 2 ) 0 ⋮ ( ω k − 1 ) 0 ( ω 0 ) 1 ( ω 1 ) 1 ( ω 2 ) 1 ⋮ ( ω k − 1 ) 1 ( ω 0 ) 2 ( ω 1 ) 2 ( ω 2 ) 2 ⋮ ( ω k − 1 ) 2 ⋯ ⋯ ⋯ ⋱ ⋯ ( ω 0 ) k − 1 ( ω 1 ) k − 1 ( ω 2 ) k − 1 ⋮ ( ω k − 1 ) k − 1 a 0 a 1 a 2 ⋮ a k − 1
As we have already seen, this matrix operation can be written using indices:
f ( ω i ) = ∑ j = 0 k − 1 ω i j a j f(\omega^i) = \sum_{j=0}^{k-1} \omega^{ij} a_j f ( ω i ) = j = 0 ∑ k − 1 ω ij a j
Now we perform a second transformation on the vector y \mathbf{y} y , which results in a vector a ~ \mathbf{\tilde{a}} a ~ :
[ a ~ 0 a ~ 1 a ~ 2 ⋮ a ~ k − 1 ] = 1 k [ ( ω 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} a ~ 0 a ~ 1 a ~ 2 ⋮ a ~ k − 1 = k 1 ( ω 0 ) 0 ( ω − 1 ) 0 ( ω − 2 ) 0 ⋮ ( ω − ( k − 1 ) ) 0 ( ω 0 ) 1 ( ω − 1 ) 1 ( ω − 2 ) 1 ⋮ ( ω − ( k − 1 ) ) 1 ( ω 0 ) 2 ( ω − 1 ) 2 ( ω − 2 ) 2 ⋮ ( ω − ( k − 1 ) ) 2 ⋯ ⋯ ⋯ ⋱ ⋯ ( ω 0 ) k − 1 ( ω − 1 ) k − 1 ( ω − 2 ) k − 1 ⋮ ( ω − ( k − 1 ) ) k − 1 f ( ω 0 ) f ( ω 1 ) f ( ω 2 ) ⋮ f ( ω k − 1 )
If we can show that a = a ~ \mathbf{a} = \mathbf{\tilde{a}} a = 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 = 0 k − 1 1 k ω − j m f ( ω m ) \tilde{a}_j = \sum_{m=0}^{k-1} \frac{1}{k} \omega^{-jm} f(\omega^m) a ~ j = m = 0 ∑ k − 1 k 1 ω − jm f ( ω m )
Now substitute the expression for f ( ω i ) f(\omega^i) f ( ω i ) . Recall that
f ( ω i ) = ∑ j = 0 k − 1 ω i j a j f(\omega^i) = \sum_{j=0}^{k-1} \omega^{ij} a_j f ( ω i ) = j = 0 ∑ k − 1 ω ij a j
where i i i is just an index that we can replace for m m m , or any other letter. Thus, replacing f ( ω m ) f(\omega^m) f ( ω m ) in the result for a ~ j \tilde{a}_j a ~ j , we have
a ~ j = ∑ m = 0 k − 1 1 k ω − j m f ( ω m ) = ∑ m = 0 k − 1 1 k ω − j m ( ∑ i = 0 k − 1 ω m i a i ) \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} a ~ j = m = 0 ∑ k − 1 k 1 ω − jm f ( ω m ) = m = 0 ∑ k − 1 k 1 ω − jm ( i = 0 ∑ k − 1 ω mi a i )
Rewriting as a double sum:
a ~ j = ∑ i = 0 k − 1 ∑ m = 0 k − 1 1 k ω − j m ω m i a i = ∑ i = 0 k − 1 1 k ( ∑ m = 0 k − 1 ω m ( i − j ) ) a i \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} a ~ j = i = 0 ∑ k − 1 m = 0 ∑ k − 1 k 1 ω − jm ω mi a i = i = 0 ∑ k − 1 k 1 ( m = 0 ∑ k − 1 ω m ( i − j ) ) a i
The term in parentheses is exactly the orthogonality relation:
∑ m = 0 k − 1 ( ω m ) i − j = { k , if i ≡ j ( m o d k ) , 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} m = 0 ∑ k − 1 ( ω m ) i − j = ⎩ ⎨ ⎧ k , 0 , if i ≡ j ( mod k ) , otherwise .
To continue the proof, we could study case (1), where i = j i=j i = j , and case (2), where i ≠ j i \neq j i = j , but we will proceed differently. We will introduce a symbol called the Kronecker delta.
The Kronecker delta, δ i j \delta_{ij} δ ij , is a symbol with 2 indices, i i i and j j j in this case, which is 1 1 1 when i = j i=j i = j and 0 0 0 otherwise:
δ i j = { 1 if i = j 0 if i ≠ j \delta_{ij} =\begin{cases}1 & \text{if } i = j \\0 & \text{if } i \ne j\end{cases} δ ij = { 1 0 if i = j if i = j
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 = 0 k − 1 ( ω m ) i − j = k δ i j \sum_{m=0}^{k-1} (\omega^{m})^{i-j} = k \delta_{ij} m = 0 ∑ k − 1 ( ω m ) i − j = k δ ij
Using the Kronecker delta in the expression for a ~ j \tilde{a}_j a ~ j , we have
a ~ j = ∑ i = 0 k − 1 1 k ( ∑ m = 0 k − 1 ω m ( i − j ) ) a i = ∑ i = 0 k − 1 1 k ( k δ i j ) a i = ∑ i = 0 k − 1 1 k ( k δ i j ) a i = ∑ i = 0 k − 1 δ i j a i \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} a ~ j = i = 0 ∑ k − 1 k 1 ( m = 0 ∑ k − 1 ω m ( i − j ) ) a i = i = 0 ∑ k − 1 k 1 ( k δ ij ) a i = i = 0 ∑ k − 1 k 1 ( k δ ij ) a i = i = 0 ∑ k − 1 δ ij a i
Expanding the summation, the expression above can be written as
a ~ j = δ 0 j a 0 + δ 1 j a 1 + δ 2 j a 2 + . . . + δ ( k − 1 ) j a k − 1 \tilde{a}_j = \delta_{0j} a_0 + \delta_{1j} a_1 + \delta_{2j} a_2 + ... + \delta_{(k-1)j}a_{k-1} a ~ j = δ 0 j a 0 + δ 1 j a 1 + δ 2 j a 2 + ... + δ ( k − 1 ) j a k − 1
By the Kronecker delta property, only one term in the summation is nonzero. For example, for j = 2 j=2 j = 2 , only δ 22 \delta_{22} δ 22 is nonzero. Thus, we have
a ~ 2 = δ 02 a 0 + δ 12 a 1 + δ 22 a 2 + ⋯ + δ ( k − 1 ) 2 a k − 1 = δ 02 a 0 + δ 12 a 1 + δ 22 a 2 + ⋯ + δ ( k − 1 ) 2 a k − 1 = a 2 \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} a ~ 2 = δ 02 a 0 + δ 12 a 1 + δ 22 a 2 + ⋯ + δ ( k − 1 ) 2 a k − 1 = δ 02 a 0 + δ 12 a 1 + δ 22 a 2 + ⋯ + δ ( k − 1 ) 2 a k − 1 = a 2
This holds true for any j j j , therefore we have that
a ~ j = a j \tilde{a}_j = a_j a ~ j = a j
for any j j j .
This shows that the transformation 1 k V ( ω − 1 ) \frac{1}{k} V(\omega^{-1}) k 1 V ( ω − 1 ) is the inverse of the transformation V ( ω ) V(\omega) V ( ω ) .
This article is part of a series on the Number Theoretic Transform in our ZK Book