[comp.specification] A Mistake in "The Z Notation"?

jg@cl.cam.ac.uk (Jim Grundy) (12/20/90)

   I'm wondering if there is not a tiny mistake in Mike Spivey's 
"The Z Notation".   I believe it occurs on page 140 in section 5.6 on
Data Refinement.
   Mike is describing the necessary conditions for a concrete state (Cstate)
to be a good refinement of an abstract state (Astate).   The second condition
he gives is this:

	If an abstract state and a concrete state are releated by $Abs$, and
	both the abstract and concrete operations are guarenteed to terminate,
	then ever possible state after the concrete operation must be related
	by $Abs'$ to a possible operation after the abstract operation.  In
	symbols:

	\begin{zed}
	    \all Astate; Cstate; Cstate'; x? : X; y? : Y @
	        \pre Aop \land Abs \land Cop \implies 
                    (\exists Astate' @ Abs' \and Aop)
	\end{zed}

   I think this prediciate is slightly off; should it read:

	\begin{zed}
	    \all Astate; Cstate; Cstate'; x? : X; y? : Y @
	        (\exists Astate' @ Aop) \land Abs \land Cop \implies 
                    (\exists Astate' @ Abs' \and Aop)
	\end{zed}

   The problem I think lies with "\pre Aop" as this is defined to be
"\exists Astate'; y! : Y @ Aop" having the y! locally quantified in there
is not what is wanted (is it?)

   I think I would rephrase the whole thing like this though:
   \begin{zed}
       \all Astate; Cstate; x? : X @
           \pre Aop \land Abs \implies
               (\exists Astate'; Cstate'; y! : Y @ Aop \land Cop \land Abs')
   \end{zed}

Soooo Am I right?, or do I need a brain transplant?

If I am right then there is probably a similar mistake in the second condition
in section 5.7


Jim 

jg@cl.cam.ac.uk (Jim Grundy) (12/20/90)

 Forget the bit where I say

   I think I would rephrase the whole thing like this though:
     \begin{zed}
         \all Astate; Cstate; x? : X @
             \pre Aop \land Abs \implies
                 (\exists Astate'; Cstate'; y! : Y @ Aop \land Cop \land Abs')
     \end{zed}

 the rest stands though.

 Jim