proposition: Lemma circPermNCPOK {T:Type} {m:nat} : forall (n : nat) (cp : cartesianPower T (S (S m))), circPermNCP (S n) cp = circPermNCP n (consTailCP (tailCP cp) (headCP cp)).
proof: Proof. unfold circPermNCP; reflexivity. Qed.
imports: Arith NArith List Sorting Coq.Program.Equality