proposition: Lemma circPermNConsTlOK {T:Type} {m:nat} : forall (n : nat) (cp : cartesianPower T (S (S m))), consTailCP (tailCP (circPermNCP n cp)) (headCP (circPermNCP n cp)) = circPermNCP n (consTailCP (tailCP cp) (headCP cp)).
proof: Proof. intros n; induction n; intro cp. simpl; reflexivity. apply eq_sym. rewrite circPermNCPOK. rewrite <- IHn. rewrite <- circPermNCPOK. reflexivity. Qed.
imports: Arith NArith List Sorting Coq.Program.Equality