Opaque poly_BC_pow.
Definition poly_BC_mon (ar:nat)(m:mon) : BC :=
multl_e ar (nat2BC ar 0 (fst m) :: map (poly_BC_pow ar) (snd m)).

(* Specifications: *)
Lemma poly_BC_mon_arities :
forall ar xn, pWF_mon ar xn -> arities (poly_BC_mon ar xn) = ok_arities ar 0.
Lemma poly_BC_mon_correct :
forall ar m nl, pWF_mon ar m ->
length (sem (poly_BC_mon ar m) nl nil) = peval_mon m (map (@length _) nl).