Definition lastCP {T:Type} {n:nat} (cp : cartesianPower T (S n)) : T.
Definition tailCPbis {T:Type} {n:nat} m1 m2 (cp : cartesianPower T m1) :
(S (S n)) = m1 -> (S n) = m2 -> (cartesianPower T m2).
Definition consTailCP {T:Type} {n:nat} (cp : cartesianPower T n) (t : T) : (cartesianPower T (S n)).

Lemma consTlHdHdTl {T:Type} {n:nat} :
forall (A B C : T) (X : cartesianPower T n),
consHeadCP A (consHeadCP B (consTailCP X C)) = consTailCP (consHeadCP A (consHeadCP B X)) C.