Ltac zero_or_not a :=
  destruct (Z.eq_decidable a 0) as [->|?];
  [rewrite ?Zquot_0_l, ?Zrem_0_l, ?Zquot_0_r, ?Zrem_0_r;
   try lia;
   auto with zarith|].

Lemma Z_rem_mult a b : Z.rem (a*b) b = 0.