intros a b c H H0.
case (Zle_or_lt c 0); intros Zl1.
apply Zle_antisym; apply Zmult_le_reg_r with (p := (- c)%Z); try apply Zlt_gt;
auto with zarith; repeat rewrite <- Zopp_mult_distr_r;
rewrite H0; auto with zarith.
apply Zle_antisym; apply Zmult_le_reg_r with (p := c); try apply Zlt_gt;
auto with zarith; rewrite H0; auto with zarith.
Qed.

(* Specifications: *)
Theorem ZdividesDiv :
forall n m p : Z, p <> 0%Z -> Zdivides (p * n) (p * m) -> Zdivides n m.