proposition: Lemma app_1_n_app_eq {T:Type} {n:nat} : forall (pred : arity T (S (S n))) (x : T) (cpp : cartesianPower T (S n)) (cpt : cartesianPower T (S (S n))), headCP cpt = x -> tailCP cpt = cpp -> (app pred cpt <-> app_1_n pred x cpp).
proof: Proof. intros. split. intro H1. apply (app_app_1_n pred x cpp cpt H1 H H0). intro H1. apply (app_1_n_app pred x cpp cpt H1 H H0). Qed.
imports: Arith NArith List Sorting Coq.Program.Equality