Corollary unsigned_add_either:
  forall x y,
  unsigned (add x y) = unsigned x + unsigned y
  \/ unsigned (add x y) = unsigned x + unsigned y - modulus.

Theorem divmods2_divs_mods: forall n d, d <> zero -> n <> repr min_signed \/ d <> mone -> divmods2 (if lt n zero then mone else zero) n d = Some (divs n d, mods n d).