by rewrite gcd0p size_polyC oner_eq0.
rewrite ltnS leqn0 size_poly_eq0; move/eqP->; rewrite gcdp0 modp0 size_polyC.
by rewrite oner_eq0.
Qed.

(* Specifications: *)
Lemma gcdpp : idempotent gcdp.
Lemma dvdp_gcdl p q : gcdp p q %| p.
Lemma gcdpC : forall p q, gcdp p q %= gcdp q p.
Lemma gcdp1 p : gcdp p 1 %= 1.
Lemma gcdp_addl m n : gcdp m (m + n) %= gcdp m n.
Lemma gcdp_mulr m n : gcdp n (n * m) %= n.
Lemma gcdp_scaler c m n : c != 0 -> gcdp m (c *: n) %= gcdp m n.
Lemma dvdp_gcd_idl m n : m %| n -> gcdp m n %= m.
Lemma dvdp_gcd_idr m n : n %| m -> gcdp m n %= n.
Lemma gcdp_eq0 p q : gcdp p q == 0 = (p == 0) && (q == 0).
Lemma eqp_gcdr p q r : q %= r -> gcdp p q %= gcdp p r.
Lemma eqp_gcdl r p q :  p %= q -> gcdp p r %= gcdp q r.
move=> eqr; rewrite /eqp !(dvdp_gcd, dvdp_gcdr, andbT) /=.