In this help section we give a BNF-grammar for the requirement specification language used in the verifier of UPPAAL.
Prop ::=
'A[]' Expression
| 'E<>' Expression
| 'E[]' Expression
| 'A<>' Expression
| Expression --> Expression
| 'sup' ':' List
| 'sup' '{' Expression '}' ':' List
| 'inf' ':' List
| 'inf' '{' Expression '}' ':' List
| Probability
| ProbUntil
| Probability ( '<=' | '>=' ) PROB
| Probability ( '<=' | '>=' ) Probability
| Estimate
List ::= Expression | Expression ',' List
Probability ::= 'Pr[' ( Clock | '#' ) '<=' CONST ']' '(' ('<>'|'[]') Expression ')'
ProbUntil ::= 'Pr[' ( Clock | '#' ) '<=' CONST ']' '(' Expression 'U' Expression ')'
Estimate ::= 'E[' ( Clock | '#' ) '<=' CONST ';' CONST ']' '(' ('min:' | 'max:') Expression ')'
All expressions are state predicates and must be side effect free. It is possible to test whether a certain process is in a given location using expressions on the form process.location. For sup properties, expression may not contain clock constraints and must evaluate to either an integer or a clock.
See also: Semantics of the Requirement Specification Language