pragma experimental SMTChecker; // Variable is reset in both branches contract C { function f(uint x) public pure { uint a = 2; if (x > 10) { a = 3; } else { a = 4; } assert(a >= 3); } }