fact: Definition gcdp p q := let (p1,q1) := if size p < size q then (q,p) else (p,q) in let d := (gcdr (gcdsr p1) (gcdsr q1))%:P in d * gcdp_rec (size (pp p1)) (pp p1) (pp q1).
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)