Documentation

Complexity.Algorithms.WordRAM.MatrixMultiplication.Schonhage.Wanted.Groups

Consumer meaning of the computed query groups #

Main results #

These representation lemmas consume the memory equations returned by the initialized run. They neither replace the native grouping code nor supply any input certificate to it.

An in-range tile key identifies exactly the original row and column bands.

A tile's actual stored half-open span contains exactly the existing mathematical wantedStrings codes. Duplicate list occurrences have the same set meaning and are retained separately by the original-position permutation.

theorem Cslib.Algorithms.WordRAM.MatrixMultiplication.Schonhage.Wanted.originals_permutation {L m N : ℕ} (qs : List (Fin N × Fin N)) (μ : ℕ → ℕ) (h : ∀ (i : Fin qs.length), μ (originalAddress L m N qs.length + CountingSort.position (tileKey L m N ∘ inputPairs qs) qs.length ↑i) = ↑i) :
(∀ j < qs.length, μ (originalAddress L m N qs.length + j) < qs.length) ∧ (Function.Injective fun (j : Fin qs.length) => μ (originalAddress L m N qs.length + ↑j)) ∧ Finset.image (fun (j : ℕ) => μ (originalAddress L m N qs.length + j)) (Finset.range qs.length) = Finset.range qs.length

The actual stored original indices are in range, injective, and cover every input position. Equal original coordinate pairs therefore retain their separate occurrences.