Definition iterate (g : nat -> nat) :=
nat_rec (fun _ => nat -> nat) (fun x : nat => x)
(fun (_ : nat) (rec : nat -> nat) (x : nat) => g (rec x)).

(* Specifications: *)
Lemma iterateIsPR :
forall g : nat -> nat, isPR 1 g -> forall n : nat, isPR 1 (iterate g n).