Opaque Poly_mon.
Definition Poly (p : pol) : Cobham :=
Plusl_e (fst p) (map (Poly_mon (fst p)) (snd p)).

(* Specifications: *)
Lemma arity_Poly : forall p,
pWF p ->
arity (Poly p) = ok_arity (parity p).
Lemma rec_bounded_Poly : forall p,
rec_bounded (Poly p).
Lemma Poly_correct : forall p l,
length (Sem (Poly p) l) = peval p (map (@length _) l).