proposition: Lemma dvdrp_priml : forall a p q, a != 0 -> p %| a%:P * q -> primitive p -> p %| q.
proof: Proof. move=> a p q a0. rewrite dvdrp_spec; case/andP=> H1 H2. rewrite /primitive /eqd dvdrp_spec; case/andP=> H3 _. case/andP: (pp_mull q a0)=> H4 _. by rewrite (dvdr_trans H2 H4) (dvdr_trans H3 (dvd1r (gcdsr q))). Qed.
imports: HB(structures) mathcomp(ssreflect ssrfun ssrbool eqtype ssrnat div seq) mathcomp(path choice fintype tuple finset ssralg) mathcomp(matrix poly) mathcomp(bigop polydiv) CoqEAL(stronglydiscrete dvdring)