Sound integer abstraction in nelli's symbolic executor
A symbolic executor has to encode every integer for the solver. Bit-vectors are correct but slow; unbounded integers are fast but unsound. nelli runs on bit-vectors and abstracts to unbounded integers only where it can prove the abstraction is safe. Measured, that is worth roughly 2 to 3x on range-bounded code and nothing on bit-twiddling. It also has a hole, which this post documents.