Reference · Matrices
rainbow.math.linear.matrix.transpose-involution
Algebraic foundations for nondegenerate transpose involution. A row-list matrix cannot retain the number of rows of a nonempty zero-width matrix: matrix/transpose of rows of empty vectors is empty. Accordingly the eventual involution theorem must require positive width. The first two native lemmas prove the core valid algebra: transpose undoes insertion of a nonempty vector into empty columns, and into nonempty columns whose remaining count matches the remaining vector width. Native and axiom-free on D63.
matrix/transpose-prepend-column-empty
matrix/transpose-prepend-column-empty : (head : ℚ) (tail : List ℚ) → matrix/equivalent (matrix/transpose (column)) [data/cons ℚ head tail] where column := matrix/prepend-column (data/cons ℚ head tail) []
List = data/Listℚ = signed/SignedRational
matrix/transpose-prepend-column-cons
matrix/transpose-prepend-column-cons : (head : ℚ) (tail column : List ℚ) (columns : List (List ℚ)) (width : vector/same-shape tail (matrix/column-shape columns)) → matrix/equivalent (matrix/transpose (column)) (cons) where column := matrix/prepend-column (data/cons ℚ head tail) (data/cons (List ℚ) column columns) where cons := data/cons (List ℚ) (data/cons ℚ head tail) (matrix/transpose (data/cons (List ℚ) column columns))
List = data/Listℚ = signed/SignedRational