Definition natBelow_S_bla (T: Type) (n: nat) (b: natBelow n): T -> (natBelow (pred n) -> T) -> T :=
  match b with
  | mkNatBelow 0 _ => fun z s => z
  | mkNatBelow (S i) p => fun z s => s (mkNatBelow i p)
  end.

(* Specifications: *)
Lemma natBelow_S_inv' (n: nat) (P: natBelow (S n) -> Type): P (nb0 n) -> (forall m, P (Snb m)) -> forall x, P x.