Section dio_poly_pos.
Variable P : Set.
Implicit Type (p : dio_polynomial nat P).
Definition dio_poly_pos m p : (forall x, In x (dp_var_list p) -> x < m) -> { q | forall φ ν, dp_eval φ ν p = dp_eval (vec_pos (fun2vec 0 m φ)) ν q }.

(* Specifications: *)
Theorem dio_poly_eq_pos (e : dio_single nat P) : { m : nat
& { p' : dio_polynomial (pos m) P
& { q' | forall ν, dio_single_pred e ν <-> dio_single_pred (p',q') ν } } }.