Definition app {T:Type} {n:nat} (pred : arity T n) (cp : cartesianPower T n) : Prop.Definition app_n_1 {T:Type} {n:nat} (pred : arity T (S n)) (cp : cartesianPower T n) (x : T) : Prop.

Lemma app_n_1_app {T:Type} {n:nat} : forall (pred : arity T (S (S n))) (x : T) (cpp : cartesianPower T (S n)) (cpt : cartesianPower T (S (S n))), app_n_1 pred cpp x -> allButLastCP cpt = cpp -> lastCP cpt = x -> app pred cpt.