Exercises 05
We call relation functional if , if and then . For each of the following statements either give a counterexample or prove it:
- if is functional,
- if is functional,
- for any ,
- if is functional,
Rules for guarded commands
see sav07_homework_4 and its solution
Using the previously defined wp and as the set of good states, define the relation on commands by
Note that this means that if we prove correct, then is correct as well.
3. Is a partial order? Prove or give a counterexample.
Define as .
4. Show
In other words, holds iff for every execution of from a state there is either the same execution in , or can produce an error.
5. Define command skip as assert(True). Prove
assume(F) skip assert(F)
assert(F); assume(F) assert(F)
assume(F); assert(F) assume(F)
6. Prove the following shunting rules:
7. Let P be a guarded language program containing a statement c1. Suppose that
assume(pre); c1; assert(post) havoc(x)
Then show that if c2 is given by
assert(pre); havoc(x); assume(post)
then
P P[c1:=c2]
where P[c1:=c2] denotes the result of substuting c2 instead of c1.