Writing Requirements¶
OPPAS supports writing requirements in Linear Temporal Logic (LTL) [12] and Precedence Oriented Temporal Logic (POTL) [1].
POTL formulas can be written by using the operators in the “POMC Operator” column of the table below, following the same syntax rules as in [1].
For technical reasons explained in [8], POPACheck does not support the whole POTL logic. Rather, it supports a fragment thereof called POTL \(\chi\), plus full future LTL. The last column of the table shows whether an operator is supported by POPACheck.
Operator |
POMC Operator |
Notation |
Associativity |
POTL \(\chi\) |
|---|---|---|---|---|
\(\neg\) |
|
Prefix |
– |
✓ |
\(\bigcirc^d\) |
|
Prefix |
– |
✓ |
\(\bigcirc^u\) |
|
Prefix |
– |
✓ |
\(\circleddash^d\) |
|
Prefix |
– |
✗ |
\(\circleddash^u\) |
|
Prefix |
– |
✗ |
\(\chi_F^{d}\) |
|
Prefix |
– |
✓ |
\(\chi_F^{u}\) |
|
Prefix |
– |
✓ |
\(\chi_P^{d}\) |
|
Prefix |
– |
✗ |
\(\chi_P^{u}\) |
|
Prefix |
– |
✗ |
\(\bigcirc_H^{d}\) |
|
Prefix |
– |
✗ |
\(\bigcirc_H^{u}\) |
|
Prefix |
– |
✗ |
\(\circleddash_H^{d}\) |
|
Prefix |
– |
✗ |
\(\circleddash_H^{u}\) |
|
Prefix |
– |
✗ |
\(\bigcirc\) (LTL) |
|
Prefix |
– |
✓ |
\(\Diamond\) (LTL) |
|
Prefix |
– |
✓ |
\(\square\) (LTL) |
|
Prefix |
– |
✓ |
\(\mathcal{U}\) (LTL) |
|
Infix |
Right |
✓ |
\(\mathcal{U}_\chi^d\) |
|
Infix |
Right |
✓ |
\(\mathcal{U}_\chi^u\) |
|
Infix |
Right |
✓ |
\(\mathcal{S}_\chi^d\) |
|
Infix |
Right |
✗ |
\(\mathcal{S}_\chi^u\) |
|
Infix |
Right |
✗ |
\(\mathcal{U}_H^d\) |
|
Infix |
Right |
✗ |
\(\mathcal{U}_H^u\) |
|
Infix |
Right |
✗ |
\(\mathcal{S}_H^d\) |
|
Infix |
Right |
✗ |
\(\mathcal{S}_H^u\) |
|
Infix |
Right |
✗ |
\(\land\) |
|
Infix |
Left |
✓ |
\(\lor\) |
|
Infix |
Left |
✓ |
\(\oplus\) |
|
Infix |
Left |
✓ |
\(\implies\) |
|
Infix |
Right |
✓ |
\(\iff\) |
|
Infix |
Right |
✓ |