The red-blue pebble game: when the FFT graph can be pebbled at all #
Support module of MiscMath.Computability.RedBluePebbleGame, where the results are stated and
where the reader should start. Nothing here is a result on its own.
With three red pebbles the 2^k-point FFT graph can be computed level by level: load a vertex's
two predecessors, compute it, store it, clear the red pebbles (Run.block), and finally delete the
blue pebbles off the outputs (fft_hasCompleteCalculation). With fewer it cannot: the move that
computes an output has its two predecessors red and places a third pebble
(three_le_of_fft_hasCompleteCalculation). A computed pebble is placed, not slid from a
predecessor; with sliding, two would do.
One block: from a configuration with no red pebbles, a vertex whose two (distinct)
predecessors both hold blue pebbles is computed and stored at a charge of 3, leaving no red
pebble behind.
Every predecessor-closed set of non-inputs of the FFT graph can be computed and stored.
The FFT graph has a complete calculation for every budget S ≥ 3, k = 0 included.
For k ≥ 1, every complete calculation of the FFT graph needs at least 3 red pebbles.