unfold nb_nats.
intros.
rewrite nats_plus.
rewrite map_map.
rewrite (@map_ext _ _ (nb_val ∘ (fun nb => eq_rec_r natBelow nb (plus_assoc n x y))) nb_val).
rewrite map_app.
rewrite map_map.
rewrite (@map_ext _ _ (nb_val ∘ plusnb y (x:=n + x)) nb_val)...
intro. unfold compose.
apply val_plusnb.
intro. unfold compose.
apply nb_val_eq_rec_r.
Qed.
(* misc *)

(* Specifications: *)
Lemma map_cons A B (f: A -> B) (h: A) n (t: Vector.t A n): map f (Vector.cons h t) = Vector.cons (f h) (map f t).
Section contents.