Opaque Poly_pow.
Definition Poly_mon (ar:nat)(m:mon) : Cobham :=
Comp ar Mult_e [Comp ar (Nat_e (fst m)) nil; Multl_e ar (map (Poly_pow ar) (snd m))].

Lemma Poly_mon_correct : forall ar m l,
length (Sem (Poly_mon ar m) l) = peval_mon m (map (@length _) l).