Documentation

Transfer.Examples.CoqEAL.ToomCook

CoqEAL toomcook — the evaluate–multiply–interpolate core #

Toom-Cook multiplication (which Karatsuba is the two-way case of) multiplies polynomials by splitting each into parts, evaluating at enough points, multiplying the values pointwise, and interpolating the product back. The soundness of the evaluate-multiply step is that evaluation is a ring homomorphism: (p * q)(t) = p(t) · q(t). Interpolation — the unique polynomial of bounded degree through the sampled points — recovers p * q, so the pointwise products at enough points determine the product exactly. This file proves the evaluate–multiply identity and the three-point case for linear polynomials; the general algorithm is not formalized here.

The evaluate–multiply core of Toom-Cook. Evaluation is multiplicative, so a product's value at a point is the product of the values — what lets Toom-Cook multiply pointwise after sampling.