void abort() { }; int main() { int a = 6; int b = 6; int c = 6; int d = 6; /*@ loop invariant (((((b == 6) && (c == 6)) && (a <= 6)) && (d == 6))); @*/ for(a = 0; a < 6; ++a) { /*@ loop invariant (((((c == 6) && (b <= 6)) && (d == 6)) && (a <= 5))); @*/ for(b = 0; b < 6; ++b) { /*@ loop invariant ((((((((((b <= 5) && (a <= 5)) && (c == 1)) || (((b <= 5) && (5 == c)) && (a <= 5))) || (((b <= 5) && (a <= 5)) && (c == 3))) || ((((c == 6) && (b <= 5)) && (d == 6)) && (a <= 5))) || (((b <= 5) && (c == 0)) && (a <= 5))) || (((b <= 5) && (c == 2)) && (a <= 5))) || (((b <= 5) && (c == 4)) && (a <= 5)))); @*/ for(c = 0; c < 6; ++c) { /*@ loop invariant ((((((((((((((((b <= 5) && (5 == c)) && (d == 1)) && (a <= 5)) || ((((b <= 5) && (d == 3)) && (5 == c)) && (a <= 5))) || (((b <= 5) && (a <= 5)) && (c == 1))) || ((((d == 4) && (b <= 5)) && (5 == c)) && (a <= 5))) || ((((d == 0) && (b <= 5)) && (5 == c)) && (a <= 5))) || (((b <= 5) && (a <= 5)) && (c == 3))) || ((((b <= 5) && (5 == c)) && (d == 2)) && (a <= 5))) || (((b <= 5) && (c == 0)) && (a <= 5))) || ((((b <= 5) && (5 == c)) && (d == 6)) && (a <= 5))) || (((b <= 5) && (c == 2)) && (a <= 5))) || (((b <= 5) && (c == 4)) && (a <= 5))) || ((((b <= 5) && (5 == c)) && (5 == d)) && (a <= 5)))); @*/ for(d = 0; d < 6; ++d) { } } } } if(!(a == 6 && b == 6 && c == 6 && d == 6 )) { /*@ assert(0); */; } return 1; }