simpl...
simpl.
intros.
apply List.NoDup_cons.
intro.
rewrite <- List_map in H.
destruct (In_map_inv H). clear H.
destruct H0.
destruct (In_nats_inv y (S x) x0 H0).
assert (nb_val x0 = x).
replace x with (nb_val (eq_rec_r natBelow (mkNatBelow x y) (trans_plus_n_Sm x y))).
rewrite <- H.
rewrite nb_val_eq_rec_r...
rewrite nb_val_eq_rec_r...
apply le_Sn_n with x.
simpl in H1.
rewrite H3 in H1...
rewrite <- List_map.
apply NoDup_map.
intros.
apply natBelow_unique.
rewrite <- (nb_val_eq_rec_r x0 (trans_plus_n_Sm x y)).
rewrite <- (nb_val_eq_rec_r y0 (trans_plus_n_Sm x y)).
rewrite H1...
apply (IHy (S x)).
Qed.

(* Specifications: *)
Lemma tail_map (A B: Set) (f: A -> B) n (l: Vector.t A (S n)):
tail (map f l) = map f (tail l).
Lemma nth_nats3 m i n: nth (nats (S n) m) i = Snb (nth (nats n m) i).
Proof with auto.