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)