Slide 10.3: Applications of Hoare logic (cont.) Slide 10.5: The weakest precondition wp (cont.) Home |
wp
C
is of the form
{P} C {Q}
where P
and Q
are assertions.
Unfortunately, such a representation of the action of C
is not unique and may not completely specify all the actions of C
.
For example,
{y ≠ 0} x := 1 / y {x = 1 / y}did not include in the postcondition the fact that
y ≠ 0
continues to be true after the execution of the assignment.
x
, we must somehow indicate that x
is the only variable that changes under the assignment (unless it has aliases).
y ≠ 0
is not the only condition that will guarantee the correct evaluation of the expression 1/y
.
y>0
or y<0
will do as well.
C
a general relation between precondition P
and postcondition Q
.
The way to do this is to use the property that programming is a goal-oriented activity:
An activity that tends to achieve a goal and demonstrate it in subsequent actions.