Documentation

Complexity.Algorithms.WordRAM.MatrixMultiplication.Schonhage.Pruned.ScanSet

Finite-set invariant of the native deduplicating scan #

Main definitions #

Main results #

These describe the native loop's mathematical invariant; they do not assume its execution.

Root scans retain every query; child scans retain exactly contributing first digits.

Instances For

    Child requests discard one digit; root requests keep the supplied complete code.

    Instances For

      The deduplicated codes selected from the first k actual input entries.

      Instances For
        @[simp]

        No input positions have been visited initially.

        theorem Cslib.Algorithms.WordRAM.MatrixMultiplication.Schonhage.PrunedQuery.scanSet_succ (child : Bool) (term : ℕ) (input : ℕ → ℕ) (k : ℕ) :
        scanSet child term input (k + 1) = if selected child term (input k) then insert (shortened child (input k)) (scanSet child term input k) else scanSet child term input k

        A scan step inserts one selected suffix, leaving any previous occurrence deduplicated.

        theorem Cslib.Algorithms.WordRAM.MatrixMultiplication.Schonhage.PrunedQuery.card_scanSet_le (child : Bool) (term : ℕ) (input : ℕ → ℕ) (k : ℕ) :
        (scanSet child term input k).card ≤ k

        At most one new distinct code is emitted for each processed input word.

        Root deduplication computes exactly the image of the input prefix.

        A child scan uses the same selected quotient image as the finite pruning specification.

        theorem Cslib.Algorithms.WordRAM.MatrixMultiplication.Schonhage.PrunedQuery.scanSet_bounded {child : Bool} {term k capacity : ℕ} {input : ℕ → ℕ} (h : ∀ i < k, selected child term (input i) → shortened child (input i) < capacity) (q : ℕ) :
        q ∈ scanSet child term input k → q < capacity

        Every stored code lies in the concrete destination capacity when each selected source does.