|
Theory of computing
Logic for reasoning about bugs in loops over data sequences (IFIL)
[Логика для суждений об ошибках в циклах над последовательностями данных (IFIL)]
D. A. Kondrat'ev A.P. Ershov Institute of Informatics Systems, Siberian Branch of the Russian Academy of Sciences, 6, Acad. Lavrentjev pr., Novosibirsk 630090, Russia
Аннотация:
Классическая дедуктивная верификация не ориентирована на доказательство некорректности программ. Доказательство некорректности программ с помощью формальных методов является актуальной задачей в настоящее время. Специальные логики, такие как Incorrectness Logic, Adversarial Logic, Local Completeness Logic, Exact Separation Logic и Outcome Logic, были недавно предложены для решения данной задачи. Но у данных логик имеется два недостатка. Во-первых, в данных логиках используются подходы, основанные на нижней аппроксимации, тогда как в классической дедуктивной верификации используется подход, основанный на верхней аппроксимации. С другой стороны, использование классического подхода требует в общем случае задания инвариантов циклов. Во-вторых, использование правил вывода для программных конструкций в их самом общем виде приводит к необходимости доказательства сложных формул в простых ситуациях. Нашим результатом, представленным в данной статье, является новая логика для решения данных проблем в случае циклов над последовательностями данных. Такая циклы мы называем финитными итерациями. Предложенную логику мы называем логикой для суждений о некорректности финитных итераций (IFIL). Мы избегаем задания инвариантов финитных итераций с помощью символической замены в условиях корректности переменных таких циклов применениями рекурсивных функций. Наша логика основана на специальных правилах вывода для финитных итераций. Эти правила позволяют выводить формулы с применениями рекурсивных функций, соответствующих финитным итерациям. Истинность этих формул может означать наличие ошибок в финитных итерациях. Данная логика была реализована в новой версии программной системы C-lightVer для дедуктивной верификации программ на языке C.
Ключевые слова:
дедуктивная верификация, логика Хоара, локализация ошибок, некорректность программ, инвариант цикла, финитная итерация, C-lightVer, ACL2.
Поступила в редакцию: 29.05.2023 Исправленный вариант: 16.06.2023 Принята в печать: 20.06.2023
Образец цитирования:
D. A. Kondrat'ev, “Logic for reasoning about bugs in loops over data sequences (IFIL)”, Модел. и анализ информ. систем, 30:3 (2023), 214–233
Образцы ссылок на эту страницу:
https://www.mathnet.ru/rus/mais800 https://www.mathnet.ru/rus/mais/v30/i3/p214
|
Статистика просмотров: |
Страница аннотации: | 41 | PDF полного текста: | 26 | Список литературы: | 21 |
|