Reference · Vectors
rainbow.math.linear.vector.additive-units
Shape-preserving zero and additive-unit laws for native finite vectors. Since vector/add is a truncating zip, the empty vector cannot be a global additive identity. vector/zero-like instead maps signed/zero over an input, preserving exactly its dimension. It is a two-sided identity for that input, and adding either orientation of the input and its negation is equivalent to zero-like. Native and axiom-free on D63.
vector/zero-like
vector/zero-like : (x₁ : List ℚ) → List ℚ
List = data/Listℚ = signed/SignedRational
vector/add-zero-like-right
vector/add-zero-like-right : (values : List ℚ) → vector/equivalent (add) values where add := vector/add values (vector/zero-like values)
List = data/Listℚ = signed/SignedRational
vector/add-zero-like-left
vector/add-zero-like-left : (values : List ℚ) → vector/equivalent (add) values where add := vector/add (vector/zero-like values) values
List = data/Listℚ = signed/SignedRational
vector/subtract-self-equivalent-zero-like
vector/subtract-self-equivalent-zero-like : (values : List ℚ) → vector/equivalent (vector/subtract values values) (vector/zero-like values)
List = data/Listℚ = signed/SignedRational
vector/add-negate-right-equivalent-zero-like
vector/add-negate-right-equivalent-zero-like : (values : List ℚ) → vector/equivalent (add) (vector/zero-like values) where add := vector/add values (vector/negate values)
List = data/Listℚ = signed/SignedRational
vector/add-negate-left-equivalent-zero-like
vector/add-negate-left-equivalent-zero-like : (values : List ℚ) → vector/equivalent (add) (vector/zero-like values) where add := vector/add (vector/negate values) values
List = data/Listℚ = signed/SignedRational