Section code_nat_list.
Fixpoint codeList (l : list nat) : nat :=
match l with
| nil => 0
| n :: l' => S (cPair n (codeList l'))
end.

(* Specifications: *)
Lemma codeListInj : forall l m : list nat, codeList l = codeList m -> l = m.
Definition codeNth (n m : nat) : nat.