Reference · Matrices
rainbow.math.linear.matrix.equivalence
Length-sensitive, row-wise equivalence for native finite matrices. matrix/equivalent left right Matrices are equivalent exactly when they have the same number of rows and corresponding rows are vector/equivalent. Reflexivity and symmetry are proved structurally. Matrix-vector multiplication then respects matrix equivalence, and a final theorem composes matrix-side and input-vector congruence. Native and axiom-free on D63.
matrix/equivalent
matrix/equivalent : (x₁ x₂ : List (List ℚ)) → Prop
List = data/Listℚ = signed/SignedRational
matrix/equivalent-reflexive
matrix/equivalent-reflexive : (rows : List (List ℚ)) → matrix/equivalent rows rows
List = data/Listℚ = signed/SignedRational
matrix/equivalent-symmetric
matrix/equivalent-symmetric : (left right : List (List ℚ)) (same : matrix/equivalent left right) → matrix/equivalent right left
List = data/Listℚ = signed/SignedRational
matrix/vector-multiply-respects-matrix-equivalence
matrix/vector-multiply-respects-matrix-equivalence : (left right : List (List ℚ)) (values : List ℚ) (same : matrix/equivalent left right) → vector/equivalent (matrix/vector-multiply left values) (matrix/vector-multiply right values)
List = data/Listℚ = signed/SignedRational
matrix/vector-multiply-respects-both-equivalences
matrix/vector-multiply-respects-both-equivalences : (left-rows right-rows : List (List ℚ)) (left-values right-values : List ℚ) (rows-same : matrix/equivalent left-rows right-rows) (values-same : vector/equivalent left-values right-values) → vector/equivalent (multiply₁) (multiply) where multiply := matrix/vector-multiply right-rows right-values where multiply₁ := matrix/vector-multiply left-rows left-values
List = data/Listℚ = signed/SignedRational