contract C { function f(uint x, uint y, bool b, bool c) public pure { require(x < 10); while (x < 10) { if (b) { ++x; if (x == 10) x = 15; } else { require(y < 10); while (y < 10) { if (c) ++y; else { y = 20; break; } } assert(y >= 15); x = 15; break; } } assert(x >= 20); } } // ==== // SMTEngine: all // ---- // Warning 6328: (296-311): CHC: Assertion violation happens here. // Warning 6328: (347-362): CHC: Assertion violation happens here. // Info 1391: CHC: 2 verification condition(s) proved safe! Enable the model checker option "show proved safe" to see all of them.