![]() FeaVer: Logic PropertiesTemporal logicThe model checker that performed the verifications for the FeaVer system in the background (Spin) contains efficient on-the-fly search algorithms for omega regular properties.![]() ![]() A temporal logic formula is built from simple operand symbols, such as p and q, that are used to represent events or state conditions on the system being verified, and normal boolean operators such as logical negation "!", logical or "\/," logical and "/\," and logical implication "->." Round braces are used for grouping, as in (p /\ q). In addition, though, a temporal formula can also contain operators that allow us to claim a causal relation between events of between the existence of state conditions in time. There are three basic temporal operators that can be used for this purpose: the box operator "[]", which is pronounced "always," the diamond operator <>, pronounced "eventually," and the "until" operator U. A sample temporal formula that contains all three temporal operators is: [] (p -> <> (q U r))which means:
Test automataBefore the model checker Spin performs a verification task, it will first convert any temporal logic formula into a test automaton, which is then used directly in the actual model checking process. This means that the user also has the option to specify test automata directly, if this can simplify the task.![]() Time diagramsA third, more informal but equivally effective, way of specifying properties is with the help of timing diagrams that list the particular sequence of events or conditions that we are interested in to verify systems behavior.![]() In a call processing application, for instance, we could check the correct operation of a feature called Call Forwarding Don't Answer (CFDA) in this way. We define 2 events that always precede a critical 3rd. The first event is the arrival of a ring request from a remote switch, targeted to the local phone subscriber with the CFDA feature enabled. The second event is the occurrence of a timeout condition, which indicates that the subscriber did not answer the ring, and the critical 3rd event, that is now required to follow, is the forwarding message that hands of the call in accordance with the CFDA specification. Constraints can be used in this case to limit the types of executions to those in which the subscriber is never busy, and where the incoming call is never aborted by the caller before the timeout occurs. | ||
Back to Main Page | ||
return |