(* Lifting a ring predicate to polynomials. *)
Definition polyOver (S : pred_class) :=
[qualify a p : {poly R} | all (mem S) p].
Fact polyOver_key S : pred_key (polyOver S). Proof. by []. Qed.
Canonical polyOver_keyed S := KeyedQualifier (polyOver_key S).

(* Specifications: *)
Lemma polyOverS (S1 S2 : pred_class) :
{subset S1 <= S2} -> {subset polyOver S1 <= polyOver S2}.
Lemma polyOver0 S : 0 \is a polyOver S.
Section PolyOverAdd.