Reference · Matrices
rainbow.math.linear.matrix.composable
Dimension certificates for native finite matrix composition. matrix/composable left right combines the exact inner-dimension condition (every left row has the shape of right's row-count vector) with rectangularity of right. Compatibility itself forces left rectangularity, so projections recover both operand shape facts. Column-shape respects matrix equivalence, and the full composability certificate transports across equivalent operands. This is the quotient-safe precondition for later associativity. Native and axiom-free on D63.
matrix/composable
matrix/composable : (x₁ x₂ : List (List ℚ)) → Prop
List = data/Listℚ = signed/SignedRational
matrix/compatible-implies-rectangular
matrix/compatible-implies-rectangular : (rows : List (List ℚ)) (values : List ℚ) (rows-compatible : matrix/compatible rows values) → matrix/rectangular rows
List = data/Listℚ = signed/SignedRational
matrix/composable-inner-compatible
matrix/composable-inner-compatible : (left right : List (List ℚ)) (can-compose : matrix/composable left right) → matrix/compatible left (matrix/column-shape right)
List = data/Listℚ = signed/SignedRational
matrix/composable-left-rectangular
matrix/composable-left-rectangular : (left right : List (List ℚ)) (can-compose : matrix/composable left right) → matrix/rectangular left
List = data/Listℚ = signed/SignedRational
matrix/composable-right-rectangular
matrix/composable-right-rectangular : (left right : List (List ℚ)) (can-compose : matrix/composable left right) → matrix/rectangular right
List = data/Listℚ = signed/SignedRational
matrix/equivalent-column-shape
matrix/equivalent-column-shape : (left right : List (List ℚ)) (same : matrix/equivalent left right) → vector/same-shape (matrix/column-shape left) (matrix/column-shape right)
List = data/Listℚ = signed/SignedRational
matrix/composable-respects-equivalence
matrix/composable-respects-equivalence : (left equivalent-left right equivalent-right : List (List ℚ)) (left-same : matrix/equivalent left equivalent-left) (right-same : matrix/equivalent right equivalent-right) (can-compose : matrix/composable left right) → matrix/composable equivalent-left equivalent-right
List = data/Listℚ = signed/SignedRational