Strassen Polynomial-Matrix Product Correctness #
Correctness proofs for the Strassen-style polynomial-matrix products in
CompPoly.LinearAlgebra.PolynomialMatrix.Operations:
rowGet_rowMulMatrixWith: entry semantics of the naive row-by-matrix product.mulBoundedWith_eq_mulWith: the degree-capped low-product reconstruction equals the naive product.mulStrassenWith_eq_mulWithandmulStrassenWithFuel_eq_mulWith: the Strassen recursion computes exactly the naive matrix product, as arrays.mulTruncColumnStrassenWith_eq_truncateColumnsandmulTruncColumnStrassenWith_entry: the column-truncated Strassen recursion computes exactly the column-truncated naive product.
Generic array and fold helpers #
nextPowerOfTwoAtLeast is at least its target.
Row access helpers #
Reading a row past its width yields zero.
truncateX algebra #
Truncation distributes over finite range sums.
A product is unchanged by truncation past its coefficient cap.
ofFn access toolkit #
Row count of ofFn.
Width of ofFn.
Width of a square ofFn.
Naive product semantics #
Width of a naive row-by-matrix product.
Entry semantics of the naive row-by-matrix product.
The naive row-by-matrix product is zero past the matrix width.
The naive matrix product as an ofFn matrix of convolution sums.
Row count of the naive matrix product.
Rows of the naive matrix product.
Row list of the naive matrix product.
Bounded product correctness #
The degree-capped row product equals the naive row product.
The degree-capped matrix product equals the naive matrix product.
Column-truncated naive product semantics #
Row count of a column-truncated matrix.
Rows of a column-truncated matrix.
The truncated row product is the truncation of the naive row product.
The column-truncated product is the truncation of the naive product.
Structural ofFn rewrites for the block combinators #
The naive product of square ofFn matrices.
Strassen seven-product sum identities #
Padding step #
Full Strassen correctness #
The fuel-bounded Strassen product equals the naive matrix product.
The Strassen product equals the naive matrix product.
Row count of the Strassen product.
Rows of the Strassen product are the naive row-by-matrix products.
Row list of the Strassen product.
Column-truncated Strassen correctness #
The fuel-bounded column-truncated Strassen product equals the column-truncated naive matrix product.
The column-truncated Strassen product equals the column-truncated naive matrix product.
Row count of the column-truncated Strassen product.
Entries of the column-truncated Strassen product are the order-truncated naive product entries.