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

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)).