Section CPair_projections.
Let searchXY (a : nat) :=
boundedSearch (fun a y : nat => ltBool a (sumToN (S y))) a.
Definition cPairPi1 (a : nat) := a - sumToN (searchXY a).
Definition cPairPi2 (a : nat) := searchXY a - cPairPi1 a.
Remark searchXYIsPR : isPR 1 searchXY.

Lemma cPairProjections1 : forall a b : nat, cPairPi1 (cPair a b) = a.