cut (forall n (x: natBelow n) m (y: natBelow m), nb_val x = nb_val y -> cond_eq natBelow n m 0 x y); [|clear x y]; intros.
set (H n x n y H0).
rewrite cond_eq_eq in c...
destruct x.
destruct y.
simpl in H.
subst.
destruct (eq_nat_dec p p0).
subst.
rewrite cond_eq_eq...
rewrite cond_eq_neq...
intro.
omega.
Qed.

(* Specifications: *)
Lemma natBelow_uneq n (x y: natBelow n): nb_val x <> nb_val y -> x <> y.
Definition nb0 n: natBelow (S n) := mkNatBelow 0 n.