Documentation

Complexity.Algorithms.WordRAM.MatrixMultiplication.Schonhage.Wanted.PrefixStep

One native tile-prefix update #

Main results #

This stage lemma is an internal implementation API for the complete grouping execution.

theorem Cslib.Algorithms.WordRAM.MatrixMultiplication.Schonhage.Wanted.exec_prefixStep {w L m N Q t : ℕ} (key : ℕ → ℕ) (ht : t < MatrixMultiplication.Schonhage.numBands L m N ^ 2) (x : WordRAM.Data 96) (hx : Parameters L m N Q x) (hi : x.regs index = t) (hs : x.regs total = Nat.count (fun (k : ℕ) => key k < t) Q) (hc : x.mem (countAddress L Q + t) = Nat.count (fun (k : ℕ) => key k = t) Q) (hfit : WordRAM.Fits w (wordBudget L m N Q)) :
∃ (y : WordRAM.Data 96), WordRAM.ExecWithin w prefixStep x y 8 ∧ Parameters L m N Q y ∧ y.regs index = t + 1 ∧ y.regs total = Nat.count (fun (k : ℕ) => key k < t + 1) Q ∧ y.mem (offsetAddress L m N Q + t) = Nat.count (fun (k : ℕ) => key k < t) Q ∧ y.mem (cursorAddressBase L m N Q + t) = Nat.count (fun (k : ℕ) => key k < t) Q ∧ ∀ (a : ℕ), a ≠ offsetAddress L m N Q + t → a ≠ cursorAddressBase L m N Q + t → y.mem a = x.mem a

One actual prefix update; the two stored cells are the only possible memory changes.