Optimization must not introduce compiler-generated errors! A program that runs faster but produces incorrect results is not an improvement.

There are often cases where an optimization will * nearly always*
be correct.

if ( x * n == y * n ) ...might be optimized to:

if ( x == y ) ...Is this correct?

In general, one must be able to * prove* that an
optimized program will
* always* produce the same result.