Global Instance RelDec_eq : RelDec (@eq nat) :=
{ rel_dec := EqNat.beq_nat }.Global Instance type_nat : type nat :=
{ equal := @eq nat
; proper := fun _ => True
}.Global Instance typeOk_nat : typeOk type_nat.Global Instance nat_proper (n : nat) : proper n.Global Instance RelDec_lt : RelDec lt :=
{ rel_dec := NPeano.Nat.ltb }.Global Instance RelDec_le : RelDec le :=
{ rel_dec := NPeano.Nat.leb }.Global Instance RelDec_gt : RelDec gt :=
{ rel_dec := fun x y => NPeano.Nat.ltb y x }.Global Instance RelDec_ge : RelDec ge :=
{ rel_dec := fun x y => NPeano.Nat.leb y x }.Global Instance RelDecCorrect_eq : RelDec_Correct RelDec_eq.Global Instance RelDecCorrect_lt : RelDec_Correct RelDec_lt.Global Instance RelDecCorrect_le : RelDec_Correct RelDec_le.Global Instance RelDecCorrect_gt : RelDec_Correct RelDec_gt.Global Instance RelDecCorrect_ge : RelDec_Correct RelDec_ge.Inductive R_nat_S : nat -> nat -> Prop :=
| R_S : forall n, R_nat_S n (S n).Inductive R_nat_S : nat -> nat -> Prop :=
| R_S : forall n, R_nat_S n (S n).

(* Specifications: *)
Theorem wf_R_S : well_founded R_nat_S.