Definition CPPair {T : Type} :
forall (cp : cartesianPower T 2),
cp = (fst cp, snd cp).
Definition tailCPbis {T:Type} {n:nat} m1 m2 (cp : cartesianPower T m1) :
(S (S n)) = m1 -> (S n) = m2 -> (cartesianPower T m2).

(* Specifications: *)
Lemma consHeadCPTl {T:Type} {n:nat} :
forall (cp : cartesianPower T (S n)) t,
tailCP (consHeadCP t cp) = cp.
Lemma consHeadCPOK {T:Type} {n:nat} :
forall (cp : cartesianPower T (S (S n))),
cp = consHeadCP (headCP cp) (tailCP cp).