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_same a : Z.rem a a = 0.