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
?