apply/rmodp_eq0P/eqP; rewrite rdivp_eq; first by move->; rewrite addr0.
by move/eqP; rewrite eq_sym addrC -subr_eq subrr; move/eqP->.
Qed.
End CommutativeRingPseudoDivision.
End ComRing.
Module UnitRing.
Section UnitRingPseudoDivision.
Variable R : unitRingType.
Implicit Type p q r d : {poly R}.

(* Specifications: *)
Lemma uniq_roots_rdvdp p rs :
all (root p) rs -> uniq_roots rs ->
rdvdp (\prod_(z <- rs) ('X - z%:P)) p.