Documentation

Complexity.Algorithms.WordRAM.MatrixMultiplication.Schonhage.BandHeader

Actual header loads, native powers and concrete band addresses #

Main results #

theorem Cslib.Algorithms.WordRAM.MatrixMultiplication.Schonhage.BandPreparation.exec_powerCode {w : ℕ} (v b n : Fin 96) (hinj : Function.Injective (powerRegisters v b n)) (B M : ℕ) (hB : 1 ≤ B) (x : WordRAM.Data 96) (hb : x.regs b = B) (hn : x.regs n = M) (hfit : WordRAM.Fits w (B ^ M + M + 2)) :
∃ (y : WordRAM.Data 96), WordRAM.ExecWithin w (powerCode v b n) x y (4 * M + 5) ∧ y.regs v = B ^ M ∧ y.regs one = 1 ∧ y.mem = x.mem ∧ ∀ (i : Fin 96), i ≠ v → i ≠ counter → i ≠ one → y.regs i = x.regs i

Renaming the actual power routine has no instruction overhead and changes only its accumulator, counter and constant-one register.

Scalar parameters loaded from the three actual input headers and small constants.

Instances For
    theorem Cslib.Algorithms.WordRAM.MatrixMultiplication.Schonhage.BandPreparation.power_fits {w L m N : ℕ} (hfit : WordRAM.Fits w (wordBudget L m N)) (b n : ℕ) (hb : b ≤ 10) (hn : n ≤ L) :
    WordRAM.Fits w (b ^ n + n + 2)

    The global numerical budget bounds every final header power and its exponent.

    All header powers are computed by five actual native loops. Their register embeddings are injective and their complete cost is linear in the original depth.

    Concrete computed powers and addresses after native header initialization.

    Instances For
      theorem Cslib.Algorithms.WordRAM.MatrixMultiplication.Schonhage.BandPreparation.exec_header {w L m N : ℕ} (hm : m ≤ L) (x : WordRAM.Data 96) (hL : x.mem 1 = L) (hmemory : x.mem 2 = m) (hN : x.mem 3 = N) (hfit : WordRAM.Fits w (wordBudget L m N)) :
      ∃ (y : WordRAM.Data 96), WordRAM.ExecWithin w header x y (16 * L + 49) ∧ HeaderPost L m N y ∧ y.mem = x.mem

      Header parameters are loaded from real memory, all five powers are computed natively, and every concrete address calculation is charged. Header zero and all unrelated cells may contain arbitrary words; initialization reads only addresses one through three.