Definition polynomial (f : nat -> nat) :=
    exists x c1 c2, forall n,
      (f n <= c1 * expnat n x + c2)%nat.Definition polynomial_nz(f : nat -> nat) :=
  exists x c1 c2, 
    x > 0 /\ c1 > 0 /\ c2 > 0 /\
    forall n, 
      (f n <= c1 * expnat n x + c2)%nat.

(* Specifications: *)
Theorem polynomial_nz_equiv : forall f, polynomial f -> polynomial_nz f.
Theorem polynomial_plus : forall f1 f2 , polynomial f1 -> polynomial f2 -> polynomial (fun n => f1 n + f2 n).