Documentation

Complexity.Algorithms.WordRAM.ExactTriangle.RecordProduct.Prepare

Complete record-to-original-input preparation #

All runtime metadata is read by the real descriptor code. The logarithm, five original-header stores and three native array copies compose to linear preparation work. The readback premises here are internal; the producer client derives them from the actual prepared instance.

theorem Cslib.Algorithms.WordRAM.ExactTriangle.RecordProduct.exec_prepare {W b m n i out rho piece s t q : ℕ} (X : Matrix (Fin n) (Fin (MatrixMultiplication.Schonhage.D m)) ℤ) (Y : Matrix (Fin (MatrixMultiplication.Schonhage.D m)) (Fin n) ℤ) (qs : List (Fin n × Fin n)) (x : WordRAM.Data 320) (hD : x.mem 1 = MatrixMultiplication.Schonhage.D m) (hn : x.mem 3 = n) (hi : x.regs Reg.ordinal = i) (hout : x.regs 39 = out) (hb : x.regs 42 = b) (hrec : out + i * (6 + 2 * (n * MatrixMultiplication.Schonhage.D m)) + 6 ≤ b) (hrecord : { base := out + i * (6 + 2 * (n * MatrixMultiplication.Schonhage.D m)), length := 6 }.Realizes x.mem ![rho, piece, q, qs.length, s, t]) (hsb : s + n * MatrixMultiplication.Schonhage.D m ≤ b) (htb : t + n * MatrixMultiplication.Schonhage.D m ≤ b) (hqb : q + 2 * qs.length ≤ b) (hleft : ∀ a < n * MatrixMultiplication.Schonhage.D m, x.mem (s + a) = (WordRAM.State.init (MatrixMultiplication.Schonhage.QueriedProduct.input true (19 * m) X Y qs)).data.mem (5 + a)) (hright : ∀ a < n * MatrixMultiplication.Schonhage.D m, x.mem (t + a) = (WordRAM.State.init (MatrixMultiplication.Schonhage.QueriedProduct.input true (19 * m) X Y qs)).data.mem (5 + n * MatrixMultiplication.Schonhage.D m + a)) (hqueries : ∀ a < 2 * qs.length, x.mem (q + a) = (WordRAM.State.init (MatrixMultiplication.Schonhage.QueriedProduct.input true (19 * m) X Y qs)).data.mem (5 + 2 * (n * MatrixMultiplication.Schonhage.D m) + a)) (hfit : WordRAM.Fits W (2 * b + 2 * (n * MatrixMultiplication.Schonhage.D m) + 2 * qs.length + 20 * m + MatrixMultiplication.Schonhage.D m + n + 256)) :

Complete native preparation from a selected record and its actual three source spans. No source execution, encoded matrix or routing table is supplied.