End Ignore_Params.

(* Specifications: *)
Lemma reduce1stCompose :
forall (c n m : nat) (v : Vector.t (naryFunc n) m) (g : naryFunc (S m)),
extEqual n
(evalComposeFunc n _ (Vector.cons (naryFunc n) (evalConstFunc n c) _ v) g)
(evalComposeFunc n _ v (g c)).
Lemma reduce2ndCompose :
forall (c n m : nat) (v : Vector.t (naryFunc n) m) (n0 : naryFunc n)
(g : naryFunc (S (S m))),
extEqual n
(evalComposeFunc n _
(Vector.cons (naryFunc n) n0 _ (Vector.cons (naryFunc n) (evalConstFunc n c) _ v))
g)
(evalComposeFunc n _ (Vector.cons (naryFunc n) n0 _ v) (fun x : nat => g x c)).
Lemma evalPrimRecParam :
forall (n c d : nat) (g : naryFunc (S n)) (h : naryFunc (S (S (S n)))),
extEqual _ (evalPrimRecFunc n (g d) (fun x y : nat => h x y d) c)
(evalPrimRecFunc (S n) g h c d).
Lemma compose2IsPR :
forall (n : nat) (f : naryFunc n) (p : isPR n f) (g : naryFunc (S n))
(q : isPR (S n) g), isPR n (compose2 n f g).
Lemma compose1_NIsPR :
forall (n : nat) (g : naryFunc (S n)),
isPR (S n) g ->
forall f : naryFunc 1, isPR 1 f -> isPR (S n) (fun x : nat => g (f x)).