Reference · Matrices
rainbow.math.linear.matrix.transpose-multiply
Transpose/product structure for nonempty native finite matrices. matrix/column-action maps a matrix action over an explicit list of columns. For a nonempty left operand, transposing a native product is equivalent to applying the left matrix to every transposed right column. Nonemptiness is exact: transposing a zero-row matrix loses the number of zero-width rows. A companion theorem certifies that every column of a rectangular matrix has its row-count shape. Native and axiom-free on D63.
matrix/column-action
matrix/column-action : (x₁ x₂ : List (List ℚ)) → List (List ℚ)
List = data/Listℚ = signed/SignedRational
matrix/transpose-compatible-column-shape
matrix/transpose-compatible-column-shape : (rows : List (List ℚ)) (rows-rectangular : matrix/rectangular rows) → matrix/compatible (matrix/transpose rows) (matrix/column-shape rows)
List = data/Listℚ = signed/SignedRational
matrix/prepend-column-action-empty
matrix/prepend-column-action-empty : (row : List ℚ) (columns : List (List ℚ)) → matrix/equivalent (column) (matrix/column-action [row] columns) where column := matrix/prepend-column (matrix/vector-multiply columns row) []
List = data/Listℚ = signed/SignedRational
matrix/prepend-column-column-action
matrix/prepend-column-column-action : (row : List ℚ) (tail columns : List (List ℚ)) → matrix/equivalent (column) (action) where action := matrix/column-action (data/cons (List ℚ) row tail) columns where column := matrix/prepend-column (matrix/vector-multiply columns row) (matrix/column-action tail columns)
List = data/Listℚ = signed/SignedRational
matrix/transpose-multiply-nonempty-left
matrix/transpose-multiply-nonempty-left : (row : List ℚ) (tail right : List (List ℚ)) → matrix/equivalent (matrix/transpose (multiply)) (action) where action := matrix/column-action (data/cons (List ℚ) row tail) (matrix/transpose right) where multiply := matrix/multiply (data/cons (List ℚ) row tail) right
List = data/Listℚ = signed/SignedRational