Definition app_2_n {T:Type} {n:nat} (pred : arity T (S (S n))) (x1 x2 : T) (cp : cartesianPower T n) : Prop.

Lemma PermOK {T : Type} {n : nat} : forall (cp1 cp2 : cartesianPower T (S (S n))) (appPred : (cartesianPower T (S (S n))) -> Prop), (forall (A : T) (X : cartesianPower T (S n)), appPred (consHeadCP A X) -> appPred (consTailCP X A)) -> (forall (A B : T) (X : cartesianPower T n), appPred (consHeadCP A (consHeadCP B X)) -> appPred (consHeadCP B (consHeadCP A X))) -> appPred cp1 -> Permutation.Permutation (CPToList cp1) (CPToList cp2) -> appPred cp2.