Research Article
The Formalization of Discrete Fourier Transform in HOL
Algorithm 1
The formal definition of FFT.
FFT: | (k N m:num)(f:num->real) (f1:num->real) (f2:num->real). | (N <> 0) ∧ (N = 2 m) ∧ (0 <= k ∧ k < N DIV 2) ∧ ((f1(r) = f(2 r)) ∧ (f2(r) = f(2 r + 1))) ∧ | (DFT f1 ((N DIV 2):num) k = csum (0,N DIV 2) (λr. f1 r exp (i (-2 pi/(N/2) r k)))) ∧ | (DFT f2 ((N DIV 2):num) k = csum (0,N DIV 2) (λr. f2 r exp (i (-2 pi/(N/2) r k)))) ∧ | (DFT f N k = csum (0,N) (λn. f n exp (i (-2 pi/N n k)))) ∧ | (DFT f N (k + (N DIV 2)) = csum (0,N) (λn. f n exp (i (-2 pi/N n (k + (N/2)))))) | ⇒ | ((DFT f N k = DFT f1 ((N DIV 2):num) k + exp (i (-2 pi/N k)) | DFT f2 ((N DIV 2):num) k) ∧ | (DFT f N (k + (N DIV 2)) = DFT f1 ((N DIV 2):num) k + exp (i (-2 pi/N (N/2))) | exp (i (-2 pi/N k)) DFT f2 ((N DIV 2):num) k)) | ⇒ | ((DFT f N k = DFT f1 ((N DIV 2):num) k + exp (i (-2 pi/N k)) | DFT f2 ((N DIV 2):num) k) ∧ | (DFT f N (k + (N DIV 2)) = DFT f1 ((N DIV 2):num) k - exp (i (-2 pi/N k)) | DFT f2 ((N DIV 2):num) k)) |
|