Imports
import CLRSLean.Chapter_30.Section_30_1_Representing_Polynomials
import CLRSLean.Chapter_30.Section_30_1_Representing_Polynomials.S1_CoefficientVectors
import CLRSLean.Chapter_30.Section_30_1_Representing_Polynomials.S2_PointValueInterpolation
import CLRSLean.Chapter_30.Section_30_1_Representing_Polynomials.S3_RepresentationOperations
import CLRSLean.Chapter_30.Section_30_2_DFT_And_FFT
import CLRSLean.Chapter_30.Section_30_2_DFT_And_FFT.S1_RootsOfUnity
import CLRSLean.Chapter_30.Section_30_2_DFT_And_FFT.S2_DFT
import CLRSLean.Chapter_30.Section_30_2_DFT_And_FFT.S3_InversionAndConvolution
import CLRSLean.Chapter_30.Section_30_2_DFT_And_FFT.RecursiveFFT
import CLRSLean.Chapter_30.Section_30_2_DFT_And_FFT.RecursiveFFT.Definitions
import CLRSLean.Chapter_30.Section_30_2_DFT_And_FFT.RecursiveFFT.Correctness
import CLRSLean.Chapter_30.Section_30_2_DFT_And_FFT.RecursiveFFT.Costs
import CLRSLean.Chapter_30.Section_30_2_DFT_And_FFT.PolynomialMultiplication
import CLRSLean.Chapter_30.Section_30_3_Efficient_FFT_Implementations
import CLRSLean.Chapter_30.Section_30_3_Efficient_FFT_Implementations.BitReversal
import CLRSLean.Chapter_30.Section_30_3_Efficient_FFT_Implementations.IterativeFFT
import CLRSLean.Chapter_30.Section_30_3_Efficient_FFT_Implementations.IterativeFFT.Definitions
import CLRSLean.Chapter_30.Section_30_3_Efficient_FFT_Implementations.IterativeFFT.Correctness
import CLRSLean.Chapter_30.Section_30_3_Efficient_FFT_Implementations.IterativeFFT.Costs
import CLRSLean.Chapter_30.Section_30_3_Efficient_FFT_Implementations.ParallelFFTChapter 30 - Polynomials and the FFT
Sections 30.1--30.3 are complete within the exact generic-arithmetic functional boundary. The 46 tracked theorem groups are all kernel checked; the chapter has no remaining main-text group inside this reviewed model.
Proof architecture
The development follows the textbook dependency chain. Section 30.1 fixes coefficient and point-value representations and proves their bridges and operations. Section 30.2 builds generic DFT algebra on those representations, proves inversion and convolution, implements the recursive radix-2 FFT, and uses it for polynomial multiplication. Section 30.3 factors the same transform into bit-reversal copying and globally ordered iterative stages, then stores those stages as an evaluated layered circuit whose size and depth are read from the same syntax.
Section 30.1 - Representing polynomials
-
CLRS.Chapter30.coeffVector_vectorToPolynomialandCLRS.Chapter30.vectorToPolynomial_coeffVectorgive the fixed-capacity coefficient round trips. -
CLRS.Chapter30.interpolate_pointValues_roundTripproves the distinct-node interpolation round trip. -
CLRS.Chapter30.hornerEval_correctconnects Horner evaluation to polynomial evaluation. -
CLRS.Chapter30.schoolbookMul_correctandCLRS.Chapter30.schoolbookMulWork_exactprove schoolbook multiplication and its exact represented work.
Section 30.2 - The DFT and recursive FFT
-
CLRS.Chapter30.idft_dft,CLRS.Chapter30.dft_idft, andCLRS.Chapter30.dft_cyclicConvolutionprovide the Fourier algebra. -
CLRS.Chapter30.recursiveFFT_eq_dftproves the executable recursive radix-2 transform computes the generic DFT. -
CLRS.Chapter30.complexFFTMultiply_correctgives the unconditional automatically padded complex polynomial-multiplication wrapper. -
CLRS.Chapter30.paddedFFTWork_allInput_bigThetaandCLRS.Chapter30.fftMultiplyWork_allInput_bigThetagive the all-inputTheta(n log n)work bounds.
Section 30.3 - Iterative FFT and the layered network
-
CLRS.Chapter30.bitReverseEquiv_testBitandCLRS.Chapter30.bitReverseCopy_involutivespecify bit reversal. -
CLRS.Chapter30.iterativeRadix2FFT_eq_recursiveFFTandCLRS.Chapter30.iterativeRadix2FFT_eq_dftclose the iterative algorithmic and algebraic bridges. -
CLRS.Chapter30.iterativeRadix2FFTExec_totalWorkandCLRS.Chapter30.paddedIterativeFFTWork_allInput_bigThetaattach exact and asymptotic work to the executed iterative transform. -
CLRS.Chapter30.fftNetwork_eval,CLRS.Chapter30.fftNetwork_butterflyCount, andCLRS.Chapter30.fftNetwork_primitiveDepthconnect the stored circuit to transform semantics, exact size, and exact depth.
Cost conventions
The functional and circuit models intentionally charge different objects:
-
recursive or iterative arithmetic work is
2 * k * 2^k; -
iterative total work, including bit-reversal moves, is
2^k + 2 * k * 2^k; -
the layered circuit contains
k * 2^(k-1)butterflies and3 * k * 2^(k-1)primitive arithmetic gates; and -
butterfly depth is
k, while primitive arithmetic depth is2 * k.
Execution charges successive twiddle generation and data movement. Circuit counting treats fixed twiddle powers as constants and bit reversal as wiring.
Reviewed boundary
The represented algorithms are pure functions over fixed-length and power-of-two vectors, over exact generic ring or characteristic-zero field arithmetic as required by each theorem. Mutable arrays, aliasing, imperative loops, RAM/cache/allocator and hardware costs, floating-point approximation and numerical stability, concrete parallel scheduling, number-theoretic-transform specialization, external code generation, exercises, and Problems 30-1 through 30-6 are optional extension tracks rather than missing core groups.
namespace CLRSnamespace Chapter30end Chapter30end CLRS