Definition codeNVars2 (n : nat) : nat :=
  nat_rec (fun _ => nat) 0
    (fun m rec : nat => S (cPair (cPair 0 (S (m + m))) rec)) n.

(* Specifications: *)
Lemma codeNVars2IsPR : isPR 1 codeNVars2.
Lemma codeNVarsCorrect : forall n : nat, codeNVars1 n = codeTerms L codeF n (fst (nVars L n)) /\ codeNVars2 n = codeTerms L codeF n (snd (nVars L n)).