![]() |
Our assertion annotation language
includes assertions for defining deadlock freeness, state reachability, and temporal properties. In PAT,
System is a default keyword which represents the LTS of the input
NesC application. The following describe the syntax and usage of each
type of assertion, as well as the BNF of defining an assertion in
PAT.
Syntax of Deadlock Freeness/Nontermination
Checking #assert System deadlockfree (#assert System nonterminate)
(A) Deadlock
Freeness Checking (Nontermination
Checking)
Deadlock freeness
(also called nontermination) is an critical and desirable property of
most sensor network applications, since scuh applications are always expected to
run unattendedly for a long period like months or even
years.
(B)
State Reachability Checking
State reachability checking is to
verify whether a certain state can be reached within finite steps of
execution.
Syntax of State Reachability Checking |
#assert System reaches State; |
Syntax for difining a state |
#define State
|
BNF for logical formula |
|
Defining a state led1ON |
#define led1ON LedsC.led1 == 1; |
Checking reachability |
#assert System reaches led1ON; |
Syntax of Temporal Property Checking |
#assert System
|= |
BNF for LTL formula |
|
Notice that (States U Actions) is the union of
States, i.e. the set of states defined in by user using the
format in (B), and Actions, i.e. the set of
actions.