Definition OCP {n : nat} (cp : cartesianPower positive (S (S n))) : cartesianPower positive (S (S n)).

(* Specifications: *)
Lemma OCPPerm {n : nat} :
forall (cp : cartesianPower positive (S (S n))),
Permutation.Permutation (CPToList cp) (CPToList (OCP cp)).
Lemma CPLOCPTlOK {n : nat} :
forall (cp : cartesianPower positive (S (S (S n)))),
headCP cp = headCP (OCP cp) ->
CPToList (OCP (tailCP cp)) = CPToList (tailCP (OCP cp)).
Lemma OCPTlOK {n : nat} :
forall (cp : cartesianPower positive (S (S (S n)))),
headCP cp = headCP (OCP cp) ->
OCP (tailCP cp) = tailCP (OCP cp).
Lemma InCPOCP {n : nat} : forall p (cp : cartesianPower positive (S (S n))),
InCP p cp <-> InCP p (OCP cp).