simpl.
intros.
destruct H.
left.
subst.
apply natBelow_unique.
rewrite val_Snb.
rewrite nb_val_eq_rec_r.
rewrite nb_val_eq_rec_r...
right.
rewrite <- List_map in H.
destruct (In_map_inv H). clear H.
destruct H0.
subst.
set (fun d: natBelow (S (S (u + v))) => eq_rec_r natBelow d (eq_S (u + S v) (S (u + v)) (trans_plus_n_Sm u v))).
replace (Snb (eq_rec_r natBelow x (trans_plus_n_Sm u v))) with (n (Snb x)).
rewrite <- List_map.
apply List.in_map.
apply (IHv (S u))...
apply natBelow_unique.
subst n.
simpl.
rewrite val_Snb.
repeat rewrite nb_val_eq_rec_r.
rewrite val_Snb...
Qed.

(* Specifications: *)
Lemma In_nb_nats v n m: List.In (v + m) (nb_nats m (S (v + n))).
Proof with auto.