A Practical Introduction to PSL

Chapter 13: Common Errors

In this chapter, we discuss some common errors that beginning users of PSL tend to make, and provide some guidelines for avoiding them.

13.1 Common Errors with Implications

As we have seen, the logical implication ( ->) and suffix implication operators ( -> and =>) are very useful for stating if-then kinds of properties in a concise manner. However, beginning users often misuse them. In this section we examine various ways in which beginning users abuse logical and suffix implications.

13.1.1 Confusing a Logical Implication with a Suffix Implication

Both logical implications and suffix implications can be thought of as if-then expressions, with the else-part defaulting to true. The difference is in the current cycle of the then-part. The current cycle of the then-part of a logical implication is the same as the current cycle of its if-part. The current cycle of the then-part of a suffix implication is the first cycle of the suffix of the trace that remains once the if-part has been seen. Suppose, for instance, that we want to state that once we see a request (assertion of req) followed by an acknowledge (assertion of ack) followed by a grant (assertion of gnt), we expect to see a complete data transfer (assertion of data for four cycles followed by an assertion of dataend). A beginner might code Assertion 13.1a. This is a mistake! The reason is that Assertion 13.1a uses a logical implication, and therefore requires that...

UNLIMITED FREE
ACCESS
TO THE WORLD'S BEST IDEAS

SUBMIT
Already a GlobalSpec user? Log in.

This is embarrasing...

An error occurred while processing the form. Please try again in a few minutes.

Customize Your GlobalSpec Experience

Category: Domain Registration Services
Finish!
Privacy Policy

This is embarrasing...

An error occurred while processing the form. Please try again in a few minutes.