fact: Definition egcdr a b := let: (u, v) := bezout a b in let g := u * a + v * b in if g == 0 then (0,1,0,1,0) else let a1 := odflt 0 (a %/? g) in let b1 := odflt 0 (b %/? g) in (g, u, v, a1, b1).
imports: HB(structures) Coq(ssreflect ssrfun ssrbool Arith.Wf_nat) mathcomp(eqtype ssrnat div seq path) mathcomp(ssralg fintype perm tuple choice generic_quotient) mathcomp(matrix bigop zmodp mxalgebra poly) stronglydiscrete