Fact add_poly_key : unit.Definition add_poly := locked_with add_poly_key add_poly_def.Fact opp_poly_key : unit.Definition opp_poly := locked_with opp_poly_key opp_poly_def.Fact add_polyA : associative add_poly.Fact add_polyC : commutative add_poly.Fact add_poly0 : left_id 0%:P add_poly.Fact add_polyN : left_inverse 0%:P opp_poly add_poly.Definition poly_zmodMixin :=
  ZmodMixin add_polyA add_polyC add_poly0 add_polyN.Canonical poly_zmodType := Eval hnf in ZmodType {poly R} poly_zmodMixin.Canonical polynomial_zmodType :=
  Eval hnf in ZmodType (polynomial R) poly_zmodMixin.

Lemma size_poly_leq0P p : reflect (p = 0) (size p <= 0%N).