Objectives

This section discusses how behavioral properties of programs may be verified, by means of assertion logic. It introduces the notions of program state and state transformations, characterizes correctness formulae and explains what is involved in verifying such formulae. Further, it presents the correctness axioms for a simple imperative language.

Points to emphasize

Hints

This section presents standard material with respect to the verification of programs. Students may already be familiar with it from other courses.

Questions

  1. How would you formally characterize program states and state transformations?
  2. Explain how you may verify the behavior of a program by means of correctness formulae.

Comments

Actually verifying programs is not an easy task. You may include some exercises from  [AptO] if needed.