Inductive natBelow: nat -> Set := mkNatBelow (v p: nat): natBelow (S (v + p)).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.

(* Specifications: *)
Lemma natBelow_unique n (x y: natBelow n): nb_val x = nb_val y -> x = y.
Lemma natBelow_uneq n (x y: natBelow n): nb_val x <> nb_val y -> x <> y.
Lemma natBelow_eq_dec n (x y: natBelow n): { x = y } + { x <> y }.