Временная логика линейного времени (LTL) в Spin
Формулы темпоральной или временной логики линейного времени (Linear Temporal Logic) используются в качестве спецификаций (ограничений, требований) модели на языке Promela.
Каждая такая формула может состоять из имен глобальных (и даже локальных — специальный синтаксис <имя-процесса>[<номер-процесса>]:<имя-переменной>) переменных, соединенных логическими связками логики нулевого порядка и операторами LTL.
Темпоральные операторы LTL в Spin
Формулы LTL строятся с использованием темпоральных операторов, которые описывают поведение переменных во времени — то, как значения должны изменяться или оставаться неизменными на разных шагах симуляции.
В таблице ниже приведены основные операторы LTL, поддерживаемые инструментом Spin.
| Графические обозначения (используются в литературе по LTL) | Короткие обозначения операторов в Spin | Альтернативные обозначения операторов в Spin | Описания операторов |
|---|---|---|---|
□ или G |
|
|
Формула |
◊ или F |
|
|
Формула |
∪ или U |
|
|
Формула |
W |
|
|
Формула |
R |
|
|
Формула |
◯ |
|
|
Формула |
Обозначения логических связок, допустимых в LTL Spin
Помимо темпоральных операторов, в формулах LTL используются обычные логические связки — отрицание, конъюнкция, дизъюнкция и другие.
В таблице ниже приведены их обозначения в Spin и в литературе по LTL.
| Графическое обозначение (в литературе) | Короткое обозначение в Spin | Альтернативное обозначение в Spin | Описание |
|---|---|---|---|
¬ |
|
Отрицание. |
|
∧ |
|
|
Конъюнкция (логическое «И»). |
∨ |
|
|
Дизъюнкция (логическое «ИЛИ»). |
⨁ |
|
Исключающее «ИЛИ» (XOR). |
|
⟹ |
|
|
Импликация («если …, то …»). |
⟺ |
|
|
Эквивалентность («тогда и только тогда»). Формула |