Reference · Matrices
rainbow.math.linear.matrix.add-algebra
Commutative, associative, quotient-safe native matrix addition. Because row-wise matrix/add and vector/add both use symmetric truncating zip semantics, commutativity and associativity need no shape premise. Structural congruence in each argument makes the operation well defined over native matrix equivalence. Native and axiom-free on D63.
matrix/add-commutative
matrix/add-commutative : (left right : List (List ℚ)) → matrix/equivalent (matrix/add left right) (matrix/add right left)
List = data/Listℚ = signed/SignedRational
matrix/add-associative
matrix/add-associative : (left middle right : List (List ℚ)) → matrix/equivalent (add) (add₁) where add := matrix/add (matrix/add left middle) right where add₁ := matrix/add left (matrix/add middle right)
List = data/Listℚ = signed/SignedRational
matrix/add-respects-left-equivalence
matrix/add-respects-left-equivalence : (left equivalent-left right : List (List ℚ)) (same : matrix/equivalent left equivalent-left) → matrix/equivalent (matrix/add left right) (matrix/add equivalent-left right)
List = data/Listℚ = signed/SignedRational
matrix/add-respects-right-equivalence
matrix/add-respects-right-equivalence : (left right equivalent-right : List (List ℚ)) (same : matrix/equivalent right equivalent-right) → matrix/equivalent (matrix/add left right) (matrix/add left equivalent-right)
List = data/Listℚ = signed/SignedRational
matrix/add-respects-equivalence
matrix/add-respects-equivalence : (left equivalent-left right equivalent-right : List (List ℚ)) (left-same : matrix/equivalent left equivalent-left) (right-same : matrix/equivalent right equivalent-right) → matrix/equivalent (matrix/add left right) (add) where add := matrix/add equivalent-left equivalent-right
List = data/Listℚ = signed/SignedRational