void abort() { }; void assume_abort_if_not(int cond) { if(!cond) {abort();} } /*@ requires ((1 <= \old(cond))) && (cond != 0); ensures ((1 <= \old(cond))) && (1); @*/ void __VERIFIER_assert(int cond) { if (!(cond)) { ERROR: {/*@ assert(0); */;abort();} } return; } int __VERIFIER_nondet_int(); int main() { int x = 0; int y = 50; /*@ loop invariant (((((((((((((((((((((((((((((((((((((((((((((((((((((x == 80) && (y == 80)) || ((x == 83) && (y == 83))) || ((67 == x) && (67 == y))) || ((x == 75) && (y == 75))) || ((x == 65) && (y == 65))) || ((66 == y) && (66 == x))) || ((94 == x) && (94 == y))) || ((81 == y) && (81 == x))) || ((57 == y) && (57 == x))) || ((51 == x) && (51 == y))) || ((y == 79) && (x == 79))) || ((y == 54) && (x == 54))) || ((98 == y) && (98 == x))) || ((x == 96) && (y == 96))) || ((92 == y) && (92 == x))) || ((y == 82) && (x == 82))) || ((77 == x) && (77 == y))) || ((88 == y) && (88 == x))) || ((x == 63) && (y == 63))) || ((59 == y) && (59 == x))) || ((x == 60) && (y == 60))) || ((y == 55) && (x == 55))) || ((y == 71) && (x == 71))) || ((x == 58) && (y == 58))) || ((y == 50) && (x <= 50))) || ((y == 62) && (x == 62))) || ((64 == y) && (64 == x))) || ((76 == y) && (76 == x))) || ((y == 93) && (x == 93))) || ((x == 69) && (y == 69))) || ((97 == x) && (97 == y))) || ((x == 61) && (y == 61))) || ((87 == y) && (87 == x))) || ((53 == y) && (53 == x))) || ((x == 70) && (y == 70))) || ((72 == y) && (72 == x))) || ((91 == y) && (91 == x))) || ((x == 74) && (y == 74))) || ((x == 52) && (y == 52))) || ((y == 99) && (x == 99))) || ((x == 73) && (y == 73))) || ((56 == y) && (56 == x))) || ((x == 78) && (y == 78))) || ((100 <= x) && (y == 100))) || ((84 == y) && (84 == x))) || ((68 == y) && (68 == x))) || ((95 == x) && (95 == y))) || ((y == 86) && (x == 86))) || ((x == 90) && (y == 90))) || ((y == 85) && (x == 85))) || ((x == 89) && (y == 89)))); @*/ while(x < 100) { if (x < 50) { x = x + 1; } else { x = x + 1; y = y + 1; } } __VERIFIER_assert(y == 100); return 0; }