Documentation

Complexity.Algorithms.WordRAM.MatrixMultiplication.Schonhage.Input

Actual initialized-input clients for the shared encoders #

Main results #

The two programs and their thirty-two registers are independent of depth and word width. Inputs are signed words encoded with WordRAM.Signed.encode; the depth and the machine's length header are ordinary unsigned words. All input and reachable data words fit the target width. Output and scratch are disjoint concrete blocks immediately after the input.

References #

The encodings are from [AlmanWilliams2026, Section 2.4.1]; see Encoding for provenance.

theorem Cslib.Algorithms.WordRAM.MatrixMultiplication.Schonhage.Encoding.exec_input {w L : ℕ} (hw : 0 < w) (side : Bool) (a : Fin (7 ^ L) → ℤ) (A : ℤ) (hA : 0 ≤ A) (ha : ∀ (i : Fin (7 ^ L)), |a i| ≤ A) (hmag : ↑(7 ^ L) * A < 2 ^ (w - 1)) (haddr : WordRAM.Fits (w + 2) (addressBound L)) :

The complete native encoder starts from the ordinary State.init convention with a real depth header and encoded input words. It returns all flat shared-transform values, keeps the input and every outside cell, and leaves only target-sized words in memory and registers.

Complete left encoder on arbitrary signed arrays indexed by the original seven-symbol strings. Every one of the 10^L leaves receives the unchanged public encodingL value.

Complete right encoder on arbitrary signed arrays with the original encodingR API.