Застосування солверів z3 в системі верифікації python–програм
Loading...
Date
Journal Title
Journal ISSN
Volume Title
Publisher
Гельветика
Abstract
У роботі описана остання версія системи верифікації програм VerPro на мові Python. Для перевірки тотожної істин-
ності умов верифікації вона доповнена застосуванням засобів популярної системи Z3 доведення теорем. Метою стат-
ті є опис нових можливостей системи VerPro, які їй надали солвери Z3. Наукова новизна. Система VerPro є сучасною
системою верифікації анотованих Python–програм, яка генерує умови коректності методом символьного виконання.
VerPro надає користувачу сучасний діалоговий графічний віконний інтерфейс, побудований з використанням бібліотеки
PyQt5. Спрощення цих умов базується на еквівалентних перетвореннях, які реалізує бібліотека ExprLib. ExprLib – це наша
власна бібліотека, яка побудована на мові Python і не має інших залежностей. Бібліотека перетворює вирази у внутрішнє
представлення, побудоване на базі класів мови Python. Реалізовані в системі VerPro еквівалентні перетворення часто
можуть самі встановити тотожну істинність умов верифікації. Якщо ні, тоді такі умови VerPro передає системі до-
ведення теорем Z3, яка або встановлює їх тотожню істинність, або будує контрприклад для гіпотези про тотожню
істинність такої умови. Наявність контрприкладу свідчить про те, що анотація невірно описує функціональні власти-
вості програми. Аналізуючи знайдений системою контрприклад, користувач може знайти причину некоректності і ви-
правити програму і/або її анотацію. Система Z3 підключається до VerPro через програмний інтерфейс Z3py. Висновок.
Ідея побудови контрприкладів в системах верифікації програм реалізована вперше. Cистема доведення теорем Z3 раніше
в таких системах не застосовувалася. Система VerPro надає приклад вдалого використання сучасної системи доведення
теорем не лише для встановлення коректності анотованої програми, але й для пошуку рішення при невдалій верифікації.
Дальший розвиток системи передбачає типізацію значень символьних параметрів та побудову інваріантів.
Description
Інформаційні технології та суспільство, Випуск 1 (7), 2023
Citation
Костирко, В., Костенко, А, Плеша, М. (2023). Застосування солверів z3 в системі верифікації Python–програм. Інформаційні технології та суспільство. Вип. 1 (7), 36–43