Рамкове правило в монотонному розширенні логіки Флойда – Хоара

Автор(и)

  • Андрій Криволап Київський національний університет імені Тараса Шевченка
  • Олена Шишацька Київський національний університет імені Тараса Шевченка
  • Наталія Русіна Київський національний університет імені Тараса Шевченка

DOI:

https://doi.org/10.17721/1812-5409.2026/1.29

Ключові слова:

формальні методи, верифікація ПС, програмні логіки, номінативні дані, логіка розділення

Анотація

Логіка розділення є розширенням логіки Флойда – Хоара, спрямованим на специфікацію та верифікацію програмних систем, в яких використовується динамічна пам’ять. Її основним засобом є рамкове правило, що дає змогу працювати з локальними доведеннями. Монотонне розширення логіки Флойда – Хоара було одержано, використовуючи композиційно-номінативний підхід. Основні переваги отриманої логіки полягають у застосуванні номінативних даних для опису стану програми та у роботі з частковими предикатами. Основна мета пропонованого дослідження – розроблення рамкового правила та засобів роботи з вказівниками для монотонної логіки Флойда – Хоара. З огляду на це, вона була збагачена інструментами для підтримки локальних доведень, що надзвичайно важливо сьогодні, коли складність програмного забезпечення лише зростає. Локальність означає, що властивість частини програми може бути доведена окремо та поєднана з властивостями інших компонентів, якщо визначені умови виконуються. Для цього номінативні дані було розширено поняттям адреси. Представлено нові спеціальні композиції збереження в динамічній пам’яті і завантаження з неї. Логічна зв’язка відокремлювальна кон’юнкція була перевизначена як композиція в програмній алгебрі. Доведено, що така композиція є монотонною. Щоб мати можливість розширити доведення для апроксимацій програми до доведення для програми загалом, усі композиції мають бути монотонними. Крім того, додано правила системи виводу для нових операторів. Правила для зберігання в динамічну пам’ять та завантаження з неї є модифікацією правила для оператора присвоєння. Рамкове правило – це правило, яке за допомогою відокремлювальної кон’юнкції описує, як можна розширити істинну трійку Хоара за допомогою твердження для частини пам’яті, яка не була змінена програмою. Було показано, що варіант правила, реалізований у логіці розділення, вже не є коректним для монотонного розширення. Були представлені модифіковані умови, за яких досягається коректність. Темою майбутніх досліджень є можливі обмеження на операції з вказівниками, які дають можливість запропонувати конструктивні умови для рамкового правила. Іншим важливим питанням, що виходить за межі цієї статті, є розгляд використання складних номінативних даних разом з динамічною пам’яттю.

Посилання

Apt, K. R., & Olderog, E.-R. (2019). Fifty years of Hoare’s logic. Formal Aspects of Computing, 31(6), 751–807. https://doi.org/10.1007/s00165-019-00501-3

De Boer, F. S., Hiep, H.-D. A., & de Gouw, S. (2023). Dynamic separation logic. Electronic Notes in Theoretical Informatics and Computer Science, 3, 5:1–5:19. https://doi.org/10.46298/entics.12297

Maksimović, P., Cronjäger, C., Lööw, A., Sutherland, J., & Gardner, P. (2023). Exact separation logic: Towards bridging the gap between verification and bug-finding. In Ali & Salvaneschi (Eds.), 37th European Conference on Object-Oriented Programming (ECOOP 2023) (pp. 19:1–19:27). Schloss Dagstuhl – Leibniz-Zentrum für Informatik. https://doi.org/10.4230/LIPICS.ECOOP.2023.19

Nikitchenko, M., Ivanov, I., Kornilowicz, A., & Kryvolap, A. (2018). Extended Floyd-Hoare logic over relational nominative data. Communications in Computer and Information Science, 826, 41–64. https://doi.org/10.1007/978-3-319-76168-8_3

O’Hearn, P. W. (2019). Incorrectness logic. Proceedings of the ACM on Programming Languages, 4(POPL), 1–32. https://doi.org/10.1145/3371078

O’Hearn, P. W. (2007). Resources, concurrency, and local reasoning. Theoretical Computer Science, 375(1), 271–307. https://doi.org/10.1016/j.tcs.2006.12.035

Raad, A., Berdine, J., Dang, H.-H., Dreyer, D., O’Hearn, P., & Villard, J. (2020). Local reasoning about the presence of bugs: Incorrectness separation logic. In Lahiri & Wang (Eds.), Computer Aided Verification (pp. 225–252). Springer International Publishing. https://doi.org/10.1007/978-3-030-53291-8_14

Reynolds, J. (2002). Separation logic: a logic for shared mutable data structures. In Proceedings 17th Annual IEEE Symposium on Logic in Computer Science (pp. 55–74). IEEE. https://doi.org/10.1109/LICS.2002.1029817

Shkilnyak, S. (2025). Varieties of pure first-order logics of partial quasiary predicates. Bulletin of Taras Shevchenko National University of Kyiv. Physical and Mathematical Sciences, 79(2), 80–88. https://doi.org/10.17721/1812-5409.2024/2.13

Завантаження

Опубліковано

05.06.2026

Номер

Розділ

Комп'ютерні науки та інформатика

Як цитувати

Криволап, А., Шишацька, О., & Русіна, Н. (2026). Рамкове правило в монотонному розширенні логіки Флойда – Хоара. Вісник Київського національного університету імені Тараса Шевченка. Фізико-математичні науки, 82(1), 218-224. https://doi.org/10.17721/1812-5409.2026/1.29