let c_div u v =
    let bad_div = div u v in
    if (lt u zero) && not (is_zero (rem u v))
    then
      if lt v zero
      then pred bad_div
      else succ bad_div
    else bad_div