|
Theory of computing
На пути к автоматической дедуктивной верификации C-программ с Sisal-циклами в системе C-lightVer
Д. А. Кондратьев Институт систем информатики им. А.П. Ершова Сибирского отделения Российской академии наук, проспект Академика
Лаврентьева, д. 6, г. Новосибирск, 630090 Россия
Аннотация:
В Институте систем информатики СО РАН разрабатывается система C-lightVer для дедуктивной верификации C-программ. C-kernel является промежуточным языком верификации в данной системе. Система облачного параллельного программирования (CPPS) также разрабатывается в Институте систем информатики СО РАН. Cloud Sisal является входным языком системы CPPS. Главной особенностью системы CPPS является неявное параллельное исполнение, основанное на автоматическом распараллеливании циклов Cloud Sisal. Cloud-Sisal-kernel является промежуточным языком верификации в системе CPPS. Нашей целью является автоматическое распараллеливание такого надмножества языка C, которое позволяет реализовать автоматическую верификацию. Нашим решением является такое надмножество языка C-kernel, как язык C-Sisal-kernel. Первым результатом, представленным в данной статье, является расширение языка C-kernel циклами языка Cloud-Sisal-kernel. В результате был разработан язык C-Sisal-kernel. Вторым результатом, представленным в данной статье, является расширение аксиоматической семантики языка C-kernel правилом вывода для циклов языка Cloud-Sisal-kernel. В данной статье также представлен наш подход к проблеме автоматизации дедуктивной верификации в случае финитных итераций над структурами данных. Такие циклы называются финитными итерациями. Нашим решением является композиция символического метода верификации финитных итераций, метагенерации условий корректности и смешанной аксиоматической семантики. Символический метод верификации финитных итераций позволяет задавать правила вывода для таких циклов без инвариантов. Символическая замена финитных итераций рекурсивными функциями является основой данного метода. Полученные условия корректности с применениями рекурсивных функций соответствуют логической основе системы доказательства ACL2. Мы используем систему ACL2, основанную на вычислимых рекурсивных функциях. Метагенерация условий корректности позволяет упростить реализацию новых правил вывода в системе верификации. Использование смешанной аксиоматической семантики приводит в некоторых случаях к более простым условиям корректности.
Ключевые слова:
дедуктивная верификация, C-lightVer, система облачного параллельного программирования, символический метод верификации финитных итераций, инвариант цикла, ACL2.
Поступила в редакцию: 15.11.2021 Исправленный вариант: 01.12.2021 Принята в печать: 08.12.2021
Образец цитирования:
Д. А. Кондратьев, “На пути к автоматической дедуктивной верификации C-программ с Sisal-циклами в системе C-lightVer”, Модел. и анализ информ. систем, 28:4 (2021), 372–393
Образцы ссылок на эту страницу:
https://www.mathnet.ru/rus/mais758 https://www.mathnet.ru/rus/mais/v28/i4/p372
|
|