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
- states -- transformations
- verification -- correctness formulae
- axioms -- consequence rules, abstraction
Hints
This section presents standard material
with respect to the verification of
programs.
Students may already be familiar with
it from other courses.
Questions
- How would you formally characterize
program states and state transformations?
- 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.