модели проявлялись все свойства, которые присутствуют в
спецификации. В то же время, не имеет смысла добавлять в модель те
детали системы, которые не влияют на выполнение требуемых
свойств. Например, если в спецификации системы управления лифтом
указано, что двери лифта должны оставаться закрытыми во время
движения, то во время верификации этого свойства не важно, с какой
скоростью движется лифт, главное – что он движется.
В рамках данной книги наибольший интерес представляет задача
верификации реактивных систем [17]. Такие системы нельзя
моделировать в терминах входа-выхода, так как их работа может
продолжаться бесконечно долго, и поэтому для них верифицируется
поведение во времени. Для этого вводится понятие состояния
системы, под которым в общем случае понимается ее мгновенное
описание с фиксированными значениями всех переменных системы.
Работу реактивной системы при этом можно представить в виде
переходов между состояниями.
Формально работу системы можно представить в виде модели Крипке
[17] – графа переходов, в котором для каждого состояния известен
набор предикатов, выполняющихся в этом состоянии. Путь в модели
Крипке соответствует сценарию работы реактивной системы. Опишем
модель Крипке формально.
Сначала введем понятие множество атомарных предложений
(элементарных высказываний) – предложений, внутренняя структура
которых не может изменяться. Атомарные предложения – это базовые
предложения, которые могут быть сделаны. Множество атомарных
предложений обозначается AP. Примерами атомарных предложений
являются предложения «x больше 0» или «x равно 1» для некоторой
переменной x. Другими примерами таких предложений являются
«идет дождь» или «в магазине нет покупателей». В принципе,
атомарные предложения определяются над множеством переменных
x, y, …, констант 0, 1, 2, …, функций max, gcd, … и предикатов x = 2,
x mod 2 = 0, …; допускаются предложения вида max(x, y) ≤ 3 или x = y.
Не будем точно определять множество AP, а просто постулируем его
существование.
Заметим, что выбор множества атомарных предложений AP важен,
так как он фиксирует базовые свойства, которые могут быть
сформулированы для исследуемой системы. Поэтому фиксация
множества атомарных предложений может быть названа первой
ступенью абстракции. Если кто-то решит, например, не позволить
множеству AP ссылаться на некоторые переменные системы, то ни
одно свойство, ссылающееся на эти переменные, не может быть