(** * Functions P, P', Y and I as defined by Bellantoni and Cook  - arities of P: (1, 1)  - arities of P': (2, 0)  - arities of Y: (2, 1)  - arities of I: (2, 1) *)
Definition P (x:bs)(y:bs) : bs := skipn (length x) y.

(* Specifications: *)
Lemma P_nil : forall x, P x nil = nil.
Definition P_e : BC :=
rec (proj 0 1 0)
(comp 1 2 pred nil [proj 1 2 1])
(comp 1 2 pred nil [proj 1 2 1]).
Lemma P_correct x y :
sem P_e [x] [y] = P x y.