induction n in m, c, x, y |- *...
destruct m...
intros.
elimtype False...
destruct m...
intros.
simpl.
apply IHn.
intro.
apply H.
subst...
Qed.
Inductive natBelow: nat -> Set := mkNatBelow (v p: nat): natBelow (S (v + p)).
Definition nb_val {n: nat} (nb: natBelow n): nat := match nb with mkNatBelow m _ => m end.
Coercion nb_val: natBelow >-> nat.

(* Specifications: *)
Lemma natBelow_unique n (x y: natBelow n): nb_val x = nb_val y -> x = y.
Proof with auto.