void abort() { }; /*@ requires (((0 <= \old(cond)) && (\old(cond) <= 3))) && (cond != 0); ensures (((0 <= \old(cond)) && (\old(cond) <= 3))) && (1); @*/ void __VERIFIER_assert(int cond) { if (!(cond)) { ERROR: {/*@ assert(0); */;abort();} } return; } int main() { unsigned int x = 0; unsigned int y = 0; unsigned int z = 0; unsigned int w = 0; unsigned int v = 0; for(w=0;w<0x0fffffff;w++) for(x=0;x< 10;x++) for(y=0;y< 10;y++) for(z=0;z< 10;z++) { /*@ loop invariant (((v == 0) || (((v + 4294967295) % 4294967296) < 10))); @*/ for(v=0;v< 10;v++); __VERIFIER_assert(v % 4); } return 0; }