Require Vector.
Definition sumToN (n : nat) :=
nat_rec (fun _ => nat) 0 (fun x y : nat => S x + y) n.

(* Specifications: *)
Lemma sumToN1 : forall n : nat, n <= sumToN n.
Lemma sumToN2 : forall b a : nat, a <= b -> sumToN a <= sumToN b.
Lemma sumToNIsPR : isPR 1 sumToN.
Definition cPair (a b : nat) := a + sumToN (a + b).
Lemma cPairIsPR : isPR 2 cPair.
Section CPair_Injectivity.