Definition egcdGI (x y : GI) :=
if ('N y <= 'N x)%N then
egcdGI_rec ('N x) x y else
let e := egcdGI_rec ('N y) y x in (e.2, e.1).

Lemma mulGI_gcdl x y z : gcdGI y z * x %= gcdGI (y * x) (z * x).
Section OrdinalGI.