Уточнение абстракции на основе контрпримеров
Уточнение абстракции на основе контрпримеров (CEGAR) — это метод символьной проверки модели . [1] [2] Он также применяется в модальной логики алгоритмах табличных исчислений для оптимизации их эффективности. [3]
При компьютерной верификации и анализе программ модели вычислений часто состоят из состояний . Однако модели даже для небольших программ могут иметь огромное количество состояний. Это определяется как проблема государственного взрыва. [4] CEGAR решает эту проблему в два этапа — абстракция , которая упрощает модель путем группировки состояний, и уточнение , которое увеличивает точность абстракции, чтобы лучше аппроксимировать исходную модель.
Если желаемое свойство программы не удовлетворяется абстрактной моделью, генерируется контрпример. Затем процесс CEGAR проверяет, является ли контрпример ложным, т. е. применим ли контрпример также к недоабстракции, но не к реальной программе. Если это так, то делается вывод, что контрпример объясняется недостаточной точностью абстракции. В противном случае процесс обнаруживает ошибку в программе. Уточнение выполняется, когда контрпример оказывается ложным. [5] Итеративная процедура завершается либо в случае обнаружения ошибки, либо когда абстракция уточняется до степени, эквивалентной исходной модели.
Проверка программы
[ редактировать ]Абстракция
[ редактировать ]Чтобы рассуждать о правильности программы, особенно тех, которые включают концепцию времени для параллелизма , используются модели перехода состояний. В частности, модели с конечным состоянием могут использоваться вместе с темпоральной логикой при автоматической проверке. [6] Таким образом, концепция абстракции основана на сопоставлении двух структур Крипке . В частности, программы могут быть описаны с помощью автоматов потока управления (CFA). [7]
Определите структуру Крипке как , где
- представляет собой конечное множество состояний,
- является начальным состоянием в ,
- является полным переходным отношением, и
- — это функция, которая помечает каждое состояние набором пропозициональных имен, которые в нем содержатся.
Абстракция определяется где — это отображение абстракции, которое отображает каждое состояние в в государство в . [5]
Чтобы сохранить критические свойства модели, отображение абстракции отображает начальное состояние исходной модели. своему коллеге в абстрактной модели. Отображение абстракции также гарантирует сохранение переходных отношений между двумя состояниями.
Проверка модели
[ редактировать ]На каждой итерации проверка модели выполняется для абстрактной модели. Например, проверка ограниченной модели генерирует пропозициональную формулу, которая затем проверяется на логическую выполнимость решателем SAT . [5]
Уточнение
[ редактировать ]Когда обнаруживаются контрпримеры, их исследуют, чтобы определить, являются ли они ложными примерами, т. е. не являются ли они недостоверными примерами, возникающими из-за недостаточной абстракции модели. Неложный контрпример отражает некорректность программы, чего может быть достаточно, чтобы прекратить процесс проверки программы и сделать вывод о ее некорректности. Основная цель процесса уточнения — обработка ложных контрпримеров. Он устраняет их за счет увеличения детализации абстракции.
Процесс уточнения гарантирует, что тупиковые и плохие состояния не принадлежат одному и тому же абстрактному состоянию. Тупиковое состояние — это достижимое состояние без исходящего перехода, тогда как плохое состояние — это состояние, в котором переходы вызывают противоположный пример. [2]
Таблица расчета
[ редактировать ]Поскольку модальная логика часто интерпретируется с помощью семантики Крипке , где фрейм Крипке напоминает структуру систем переходов состояний, участвующих в проверке программы, метод CEGAR также реализуется для автоматического доказательства теорем . [3]
Ссылки
[ редактировать ]- ^ Кларк, Эдмунд ; Грумберг, Орна ; Джа, Шомеш; Лу, Юань; Вейт, Хельмут (1 сентября 2003 г.). «Уточнение абстракции на основе контрпримеров для проверки символьной модели» . Журнал АКМ . 50 (5): 752–794. дои : 10.1145/876638.876643 .
- ^ Перейти обратно: а б Кларк, Эдмунд ; Грумберг, Орна ; Джа, Шомеш; Лу, Юань; Вейт, Хельмут (2000). Уточнение абстракции на основе контрпримеров . Международная конференция по компьютерной верификации CAV 2000: Компьютерная верификация. Конспекты лекций по информатике. Том. 1855. Берлин, Гейдельберг: Springer. стр. 154–169. дои : 10.1007/10722167_15 . ISBN 978-3-540-45047-4 .
- ^ Перейти обратно: а б Горе, Раджив; Киккерт, Кормак (6 сентября 2021 г.). CEGAR-Tableaux: улучшенная модальная выполнимость посредством обучения модальным предложениям и SAT . Автоматизированное рассуждение с помощью аналитических таблиц и родственных методов: 30-я Международная конференция, TABLEAUX 2021, Бирмингем, Великобритания. Конспекты лекций по информатике. Том. 12842. Чам: Спрингер. стр. 74–91. дои : 10.1007/978-3-030-86059-2_5 . ISBN 978-3-030-86059-2 .
- ^ Валмари, Антти (1998). Проблема государственного взрыва . Продвинутый курс по сетям Петри, ACPN, 1996. Конспекты лекций по информатике. Том. 1491. Берлин, Гейдельберг: Springer. стр. 429–528. дои : 10.1007/978-3-642-35746-6_1 . ISBN 978-3-540-49442-3 . Проверено 27 декабря 2023 г.
- ^ Перейти обратно: а б с Кларк, Эдмунд ; Клибер, Уильям; Новачек, Милош; Зулиани, Паоло (2011). Проверка модели и проблема взрыва состояния . Летняя школа LASER по разработке программного обеспечения: LASER 2011. Конспекты лекций по информатике. Том. 7682. стр. 1–30. дои : 10.1007/978-3-642-35746-6_1 . ISBN 978-3-642-35746-6 . Проверено 27 декабря 2023 г.
- ^ Кларк, Эдмунд ; Браун, Майкл С.; Эмерсон, Э. Аллен ; Систла, А. П. «Использование темпоральной логики для автоматической проверки систем с конечным состоянием» . Логика и модели параллельных систем . АСИ НАТО. Том. 13. Берлин, Гейдельберг: Шпрингер. дои : 10.1007/978-3-642-82453-1_1 . ISBN 978-3-642-82453-1 .
- ^ Хайду, Акос; Миккей, Золтан (11 ноября 2019 г.). «Эффективные стратегии проверки моделей на основе CEGAR» . Журнал автоматизированного рассуждения . 64 (4). Спрингер Природа: 1051–1091. дои : 10.1007/s10817-019-09535-x .