Section Accessories.
Context {A : Type}.
#[local] Notation vec := (Vector.t A).
Fixpoint map {A : Type} {B : Type} {n : nat} (f : A -> B) (xs : Vector.t A n) {struct xs} : Vector.t B n :=
match xs with
| [] => []
| x :: xs' => f x :: map f xs'
end.

Lemma map_spec {A : Type} {B : Type} {n : nat} (f : A -> B) (xs : Vector.t A n)
: forall i : Fin.t n, f (xs !! i) = map f xs !! i.