revert n.
pattern m, i.
apply natBelow_rect.
simpl.
intros.
(*Set Printing Coercions.*)
apply natBelow_unique.
rewrite val_Snb.
do 2 rewrite nb_val_eq_rec_r...
intros.
apply natBelow_unique.
simpl plus.
rewrite (val_Snb (nth (nats n (S (S (v + p)))) (mkNatBelow (S v) p))).
rewrite nth_nats.
cset (nth_nats (mkNatBelow (S v) p) (S n)).
simpl plus in H0.
rewrite H0.
simpl...
Qed. (* todo: hm, didn't need induction hypothesis *)

(* Specifications: *)
Lemma nth_nats_0 n i: nth (nats 0 n) i = i.
Lemma map_app (A B: Type) (f: A -> B) n (v: Vector.t A n) m (w: Vector.t A m):
map f (app v w) = app (map f v) (map f w).