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

(* Specifications: *)
Lemma consTailCPTl {T:Type} {n:nat} : forall (cp : cartesianPower T (S (S n))) t, tailCP (consTailCP cp t) = consTailCP (tailCP cp) t.
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.