(** ** Remaining constants not defined in Stdlib.Init.Nat *)
(** NB: Aliasing [le] is mandatory, since only a Definition can implement an interface Parameter... *)
Definition eq := @Logic.eq nat.
Definition le := Peano.le.
Definition lt := Peano.lt.
(** ** Basic specifications : pred add sub mul *)

Lemma iter_rect (A:Type) (f:A -> A) (a:A) (P:nat -> A -> Type) :
P 0 a ->
(forall n a', P n a' -> P (S n) (f a')) ->
forall n, P n (iter n f a).