Definition consTailCP {T:Type} {n:nat} (cp : cartesianPower T n) (t : T) : (cartesianPower T (S n)).

(* Specifications: *)
Lemma consTailCPOK {T:Type} {n:nat} :
forall (cp : cartesianPower T (S (S n))),
cp = consTailCP (allButLastCP cp) (lastCP cp).
Lemma consTailCPAbl {T:Type} {n:nat} :
forall (cp : cartesianPower T (S n)) t,
allButLastCP (consTailCP cp t) = cp.
Lemma consTailCPTlD {T:Type} {n:nat} :
forall (cp : cartesianPower T n) t,
tailDefaultCP (consHeadCP t cp) cp = cp.
Lemma consHdTlTlHd {T:Type} {n:nat} :
forall (F L : T) (X : cartesianPower T n),
consHeadCP F (consTailCP X L) = consTailCP (consHeadCP F X) L.
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.