proposition: Lemma Zgcd_div_mult_lft : forall a b : Z, Zgcd a b <> 0%Z -> a = (a / Zgcd a b * Zgcd a b)%Z.
proof: Proof. intros a b H0. generalize (Zgcd_mod0_lft a b); intro Hmod0. rewrite <- Zplus_0_r. rewrite <- Hmod0. rewrite Zmult_comm. apply Z_div_mod_eq_full. assumption. Qed.
imports: CoRN.model.Zmod.ZDivides Coq.Init.Wf Coq(Lia)