Bounds of cast is more conservative/correct now.

It tries to prove there's no overflow instead of just assuming it.