Invariant Inference Perspective
Strongest and weakest invariant, , to prove that the program
s1; r*; s3
when started in a state from set ends with a state from .
Take , .
Hint: consider and .
Find the strongest, weakest, and a simple invariant for the Hoare triple:
assume(x > 5 && y == 0) while (x > 0) { y = y + x x = x - 1 } assert(y > 5)
So, we can go from beginning or from the end.
Or we can go faster than sp, using some . This ensures we are above and then we check if we managed to prove the assertion.
Dually, we could start from some stronger and check if we can ensure with the precondition.
To formalize working with and we use monotone functions on lattices.
Exercise
Let be a set (e.g. the set of all integers). Let and . Define
For each element we have and we think of as an invariant. Assume .
a): Show and for each .
b) Show that iff where is a function from sets of states to sets of states, defined by
Moreover, iff for
c): If , is ?
d): If , is ?
e): Let and let
in other words, by definition of ,
Prove that then .
- What do we obtain for ?