End PosOrder.
Module Import PosSort := Sort PosOrder.
Definition OCPAux {n : nat} (cp : cartesianPower positive (S (S n))) := (PosSort.sort (CPToList cp)).

(* Specifications: *)
Lemma OCPALengthOK {n : nat} : forall (cp : cartesianPower positive (S (S n))), (length (OCPAux cp)) = (S (S n)).
Lemma PermSorted : forall (l l' : list positive),
Permutation.Permutation l l' ->
StronglySorted (fun x x0 : positive => is_true (x <=? x0)%positive) l ->
StronglySorted (fun x x0 : positive => is_true (x <=? x0)%positive) l' ->
l = l'.