Open Scope Z_scope. Require Import ZArith. Require Import Znumtheory.
intros a b c d [Hab Hac] [H1 H2]. unfold Z.divide in *. destruct H1 as [H3 H1]. destruct H2 as [H4 H2]. exists (c * H3 + b * H4). rewrite Z.mul_add_distr_r. rewrite <- Z.mul_assoc. rewrite H1. rewrite H2. rewrite Z.mul_assoc. rewrite Z.add_comm. assert (exists z : Z, a = z * a) as H_a. exists (H3 * d). rewrite H1. assert (exists z : Z, b = z * a) as H_b. exists (H4 * d). rewrite H2. rewrite H1.