What is a loop invariant?
In simple words, a loop invariant is some predicate (condition) that holds for every iteration of the loop. For example, let’s look at a simple for loop that looks like this: int j = 9; for(int i=0; i<10; i++) j–; In this example it is true (for every iteration) that i + j == 9. … Read more