[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
specifying systems book, Figure 3.1 -- bug? -- seems impossible to receive in AsyncInterface
On page 27/Section 3.1 of
http://research.microsoft.com/en-us/um/people/lamport/tla/book-02-08-08.pdf
the book "Specifying Systems", there is a spec for AsynchInterface in Figure 3.1.
It seems to me that the interface contains an error because it can never Receive, due to the assertion that "ack = rdy" in the Init definition. The definition of Rcv requires that rdy != ack. Since the Spec insists that Init always hold, it would be impossible to ever have Rcv hold, no?
To fix this, I suppose one could either remove the ack = rdy from the Init definition, or say Spec = Init \/ [Next]_<val,rdy,ack> -- using an OR instead of an AND, but neither of these seems fully satisfactory, since they loosen the spec substantially.