CSE 230: Principles of Programming Languages
Notes on Chapter 4 of Algebraic Semantics (Proving Program Correctness)

This chapter shows how, by having syntax, semantics, preconditions, and postconditions all in the same formal and executable language (OBJ), we can (relatively!) easily do formal proofs of correctness, without the annoying problems with Hoare semantics that are described in Chapter 9 of Stansifer. The solution to the problem with variables is to introduce ghost variables, also called specification constants, and use them in both the pre- and the post- condition.

There is a typo on page 84; the equation at the top of the page should be

     (s ; absx [[`Z]])  is  abs(x)  

To CSE 230 homepage
To CSE 230 notes page
Maintained by Joseph Goguen
© 2000, 2001, 2002 Joseph Goguen
Last modified: Mon Feb 25 13:48:53 PST 2002