Definition fixLastCP {T:Type} {n:nat} (appPred : cartesianPower T (S (S n)) -> Prop) (t : T) : cartesianPower T (S n) -> Prop.
Definition app {T:Type} {n:nat} (pred : arity T n) (cp : cartesianPower T n) : Prop.

(* Specifications: *)
Lemma app_app_n_1 {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 pred cpt -> allButLastCP cpt = cpp -> lastCP cpt = x ->
app_n_1 pred cpp x.
Lemma app_n_1_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))),
allButLastCP cpt = cpp -> lastCP cpt = x ->
(app pred cpt <-> app_n_1 pred cpp x).