vectorExtensionality : (xs : Vect n a) -> (ys : Vect n a) -> ((i : Fin n) -> index i xs = index i ys) -> xs = ys
Vectors are uniquely determined by their elements
Visibility: exporttabulateExtensional : (f : (Fin n -> a)) -> (g : (Fin n -> a)) -> ((i : Fin n) -> f i = g i) -> tabulate f = tabulate g
Extensionally equivalent functions tabulate to the same vector
Visibility: exportindexTabulate : (f : (Fin n -> a)) -> (i : Fin n) -> index i (tabulate f) = f i
Taking an index amounts to applying the tabulated function
Visibility: exportemptyInitial : (v : Vect 0 a) -> v = []
The empty vector represents the unique function `Fin 0 -> a`
Visibility: export