<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Publishing DTD v1.3 20210610//EN" "JATS-journalpublishing1-3.dtd">
<article article-type="research-article" dtd-version="1.3" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xml:lang="ru"><front><journal-meta><journal-id journal-id-type="publisher-id">mais</journal-id><journal-title-group><journal-title xml:lang="ru">Моделирование и анализ информационных систем</journal-title><trans-title-group xml:lang="en"><trans-title>Modeling and Analysis of Information Systems</trans-title></trans-title-group></journal-title-group><issn pub-type="ppub">1818-1015</issn><issn pub-type="epub">2313-5417</issn><publisher><publisher-name>Yaroslavl State University</publisher-name></publisher></journal-meta><article-meta><article-id pub-id-type="doi">10.18255/1818-1015-2023-3-214-233</article-id><article-id custom-type="elpub" pub-id-type="custom">mais-1800</article-id><article-categories><subj-group subj-group-type="heading"><subject>Research Article</subject></subj-group><subj-group subj-group-type="section-heading" xml:lang="ru"><subject>Theory of Computing</subject></subj-group></article-categories><title-group><article-title>Логика для суждений об ошибках в циклах над последовательностями данных (IFIL)</article-title><trans-title-group xml:lang="en"><trans-title>Logic for reasoning about bugs in loops over data sequences (IFIL)</trans-title></trans-title-group></title-group><contrib-group><contrib contrib-type="author" corresp="yes"><contrib-id contrib-id-type="orcid">https://orcid.org/0000-0002-9387-6735</contrib-id><name-alternatives><name name-style="eastern" xml:lang="ru"><surname>Кондратьев</surname><given-names>Дмитрий Александрович</given-names></name><name name-style="western" xml:lang="en"><surname>Kondratyev</surname><given-names>Dmitry A.</given-names></name></name-alternatives><email xlink:type="simple">apple-66@mail.ru</email><xref ref-type="aff" rid="aff-1"/></contrib></contrib-group><aff-alternatives id="aff-1"><aff xml:lang="ru"><institution>Институт систем информатики им. А.П. Ершова Сибирского отделения Российской академии наук</institution><country>Россия</country></aff><aff xml:lang="en"><institution>A.P. Ershov Institute of Informatics Systems, Siberian Branch of the Russian Academy of Sciences</institution><country>Russian Federation</country></aff></aff-alternatives><pub-date pub-type="collection"><year>2023</year></pub-date><pub-date pub-type="epub"><day>17</day><month>09</month><year>2023</year></pub-date><volume>30</volume><issue>3</issue><fpage>214</fpage><lpage>233</lpage><permissions><copyright-statement>Copyright &amp;#x00A9; Кондратьев Д.А., 2023</copyright-statement><copyright-year>2023</copyright-year><copyright-holder xml:lang="ru">Кондратьев Д.А.</copyright-holder><copyright-holder xml:lang="en">Kondratyev D.A.</copyright-holder><license xml:lang="ru" license-type="creative-commons-attribution" xlink:href="https://creativecommons.org/licenses/by/4.0/" xlink:type="simple"><license-p>Данная работа распространяется под лицензией Creative Commons Attribution 4.0.</license-p></license><license xml:lang="en" license-type="creative-commons-attribution" xlink:href="https://creativecommons.org/licenses/by/4.0/" xlink:type="simple"><license-p>This work is licensed under a Creative Commons Attribution 4.0 License.</license-p></license></permissions><self-uri xlink:href="https://www.mais-journal.ru/jour/article/view/1800">https://www.mais-journal.ru/jour/article/view/1800</self-uri><abstract><p>Классическая дедуктивная верификация не ориентирована на доказательство некорректности программ. Доказательство некорректности программ с помощью формальных методов является актуальной задачей в настоящее время. Специальные логики, такие как Incorrectness Logic, Adversarial Logic, Local Completeness Logic, Exact Separation Logic и Outcome Logic, были недавно предложены для решения данной задачи. Но у данных логик имеется два недостатка. Во-первых, в данных логиках используются подходы, основанные на нижней аппроксимации, тогда как в классической дедуктивной верификации используется подход, основанный на верхней аппроксимации. С другой стороны, использование классического подхода требует в общем случае задания инвариантов циклов. Во-вторых, использование правил вывода для программных конструкций в их самом общем виде приводит к необходимости доказательства сложных формул в простых ситуациях. Нашим результатом, представленным в данной статье, является новая логика для решения данных проблем в случае циклов над последовательностями данных. Такая циклы мы называем финитными итерациями. Предложенную логику мы называем логикой для суждений о некорректности финитных итераций (IFIL). Мы избегаем задания инвариантов финитных итераций с помощью символической замены в условиях корректности переменных таких циклов применениями рекурсивных функций. Наша логика основана на специальных правилах вывода для финитных итераций. Эти правила позволяют выводить формулы с применениями рекурсивных функций, соответствующих финитным итерациям. Истинность этих формул может означать наличие ошибок в финитных итерациях. Данная логика была реализована в новой версии программной системы C-lightVer для дедуктивной верификации программ на языке C.</p></abstract><trans-abstract xml:lang="en"><p>Classic deductive verification is not focused on reasoning about program incorrectness. Reasoning about program incorrectness using formal methods is an important problem nowadays. Special logics such as Incorrectness Logic, Adversarial Logic, Local Completeness Logic, Exact Separation Logic and Outcome Logic have recently been proposed to address it. However, these logics have two disadvantages. One is that they are based on under-approximation approaches, while classic deductive verification is based on the over-approximation approach. One the other hand, the use of the classic approach requires defining loop invariants in a general case. The second disadvantage is that the use of generalized inference rules from these logics results in having to prove too complex formulas in simple cases. Our contribution is a new logic for solving these problems in the case of loops over data sequences. These loops are referred to as finite iterations. We call the proposed logic the Incorrectness Finite Iteration Logic (IFIL). We avoid defining invariants of finite iterations using a symbolic replacement of these loops with recursive functions. Our logic is based on special inference rules for finite iterations. These rules allow generating formulas with recursive functions corresponding to finite iterations. The validity of these formulas may indicate the presence of bugs in the finite iterations. This logic has been implemented in a new version of the C-lightVer system for deductive verification of C programs.</p></trans-abstract><kwd-group xml:lang="ru"><kwd>дедуктивная верификация</kwd><kwd>логика Хоара</kwd><kwd>локализация ошибок</kwd><kwd>некорректность программ</kwd><kwd>инвариант цикла</kwd><kwd>финитная итерация</kwd><kwd>C-lightVer</kwd><kwd>ACL2</kwd></kwd-group><kwd-group xml:lang="en"><kwd>deductive verification</kwd><kwd>Hoare logic</kwd><kwd>bug localization</kwd><kwd>program incorrectness</kwd><kwd>loop invariant</kwd><kwd>finite iteration</kwd><kwd>C-lightVer</kwd><kwd>ACL2</kwd></kwd-group></article-meta></front><back><ref-list><title>References</title><ref id="cit1"><label>1</label><citation-alternatives><mixed-citation xml:lang="ru">R. H"ahnle and M. Huisman, “Deductive Software Verification: From Pen-and-Paper Proofs to Industrial Tools,” in Computing and Software Science, vol. 10000, Springer, 2019, pp. 345–373.</mixed-citation><mixed-citation xml:lang="en">R. H"ahnle and M. Huisman, “Deductive Software Verification: From Pen-and-Paper Proofs to Industrial Tools,” in Computing and Software Science, vol. 10000, Springer, 2019, pp. 345–373.</mixed-citation></citation-alternatives></ref><ref id="cit2"><label>2</label><citation-alternatives><mixed-citation xml:lang="ru">K. R. Apt and E.-R. Olderog, “Fifty years of Hoare’s logic,” Formal Aspects of Computing, vol. 31, no. 6, pp. 751–807, 2019.</mixed-citation><mixed-citation xml:lang="en">K. R. Apt and E.-R. Olderog, “Fifty years of Hoare’s logic,” Formal Aspects of Computing, vol. 31, no. 6, pp. 751–807, 2019.</mixed-citation></citation-alternatives></ref><ref id="cit3"><label>3</label><citation-alternatives><mixed-citation xml:lang="ru">K. R. Apt and E.-R. Olderog, “Assessing the Success and Impact of Hoare’s Logic,” in Theories of Programming: The Life and Works of Tony Hoare, 2021, pp. 41–76.</mixed-citation><mixed-citation xml:lang="en">K. R. Apt and E.-R. Olderog, “Assessing the Success and Impact of Hoare’s Logic,” in Theories of Programming: The Life and Works of Tony Hoare, 2021, pp. 41–76.</mixed-citation></citation-alternatives></ref><ref id="cit4"><label>4</label><citation-alternatives><mixed-citation xml:lang="ru">C. A. R. Hoare, “An axiomatic basis for computer programming,” Communications of the ACM, vol. 12, no. 10, pp. 576–580, 1969.</mixed-citation><mixed-citation xml:lang="en">C. A. R. Hoare, “An axiomatic basis for computer programming,” Communications of the ACM, vol. 12, no. 10, pp. 576–580, 1969.</mixed-citation></citation-alternatives></ref><ref id="cit5"><label>5</label><citation-alternatives><mixed-citation xml:lang="ru">B. M"oller, P. O’Hearn, and T. Hoare, “On Algebra of Program Correctness and Incorrectness,” in Relational and Algebraic Methods in Computer Science, vol. 13027, Springer, 2021, pp. 325–343.</mixed-citation><mixed-citation xml:lang="en">B. M"oller, P. O’Hearn, and T. Hoare, “On Algebra of Program Correctness and Incorrectness,” in Relational and Algebraic Methods in Computer Science, vol. 13027, Springer, 2021, pp. 325–343.</mixed-citation></citation-alternatives></ref><ref id="cit6"><label>6</label><citation-alternatives><mixed-citation xml:lang="ru">Q. L. Le, A. Raad, J. Villard, J. Berdine, D. Dreyer, and P. W. O’Hearn, “Finding Real Bugs in Big Programs with Incorrectness Logic,” Proceedings of the ACM on Programming Languages, vol. 6, no. OOPSLA1, pp. 1–27, 2022.</mixed-citation><mixed-citation xml:lang="en">Q. L. Le, A. Raad, J. Villard, J. Berdine, D. Dreyer, and P. W. O’Hearn, “Finding Real Bugs in Big Programs with Incorrectness Logic,” Proceedings of the ACM on Programming Languages, vol. 6, no. OOPSLA1, pp. 1–27, 2022.</mixed-citation></citation-alternatives></ref><ref id="cit7"><label>7</label><citation-alternatives><mixed-citation xml:lang="ru">P. W. O’Hearn, “Incorrectness logic,” Proceedings of the ACM on Programming Languages, vol. 4, no. POPL, pp. 1–32, 2019.</mixed-citation><mixed-citation xml:lang="en">P. W. O’Hearn, “Incorrectness logic,” Proceedings of the ACM on Programming Languages, vol. 4, no. POPL, pp. 1–32, 2019.</mixed-citation></citation-alternatives></ref><ref id="cit8"><label>8</label><citation-alternatives><mixed-citation xml:lang="ru">A. Raad, J. Berdine, H.-H. Dang, D. Dreyer, P. O’Hearn, and J. Villard, “Local Reasoning About the Presence of Bugs: Incorrectness Separation Logic,” in Computer Aided Verification, vol. 12225, Springer, 2020, pp. 225–252.</mixed-citation><mixed-citation xml:lang="en">A. Raad, J. Berdine, H.-H. Dang, D. Dreyer, P. O’Hearn, and J. Villard, “Local Reasoning About the Presence of Bugs: Incorrectness Separation Logic,” in Computer Aided Verification, vol. 12225, Springer, 2020, pp. 225–252.</mixed-citation></citation-alternatives></ref><ref id="cit9"><label>9</label><citation-alternatives><mixed-citation xml:lang="ru">J. Vanegue, “Adversarial Logic,” in Static Analysis, vol. 13790, Springer, 2022, pp. 422–448.</mixed-citation><mixed-citation xml:lang="en">J. Vanegue, “Adversarial Logic,” in Static Analysis, vol. 13790, Springer, 2022, pp. 422–448.</mixed-citation></citation-alternatives></ref><ref id="cit10"><label>10</label><citation-alternatives><mixed-citation xml:lang="ru">M. Milanese and F. Ranzato, “Local Completeness Logic on Kleene Algebra with Tests,” in Static Analysis, vol. 13790, Springer, 2022, pp. 350–371.</mixed-citation><mixed-citation xml:lang="en">M. Milanese and F. Ranzato, “Local Completeness Logic on Kleene Algebra with Tests,” in Static Analysis, vol. 13790, Springer, 2022, pp. 350–371.</mixed-citation></citation-alternatives></ref><ref id="cit11"><label>11</label><citation-alternatives><mixed-citation xml:lang="ru">B. Bruni, R. Giacobazzi, R. Gori, and F. Ranzato, “A Correctness and Incorrectness Program Logic,” Journal of the ACM, vol. 70, no. 2, pp. 1–45, 2023.</mixed-citation><mixed-citation xml:lang="en">B. Bruni, R. Giacobazzi, R. Gori, and F. Ranzato, “A Correctness and Incorrectness Program Logic,” Journal of the ACM, vol. 70, no. 2, pp. 1–45, 2023.</mixed-citation></citation-alternatives></ref><ref id="cit12"><label>12</label><citation-alternatives><mixed-citation xml:lang="ru">P. Maksimovi'c, C. Cronj"ager, A. L"o"ow, J. Sutherland, and P. Gardner, “Exact Separation Logic: Towards Bridging the Gap Between Verification and Bug-Finding,” in 37th European Conference on Object-Oriented Programming (ECOOP 2023), vol. 263, Schloss Dagstuhl -- Leibniz-Zentrum f"ur Informatik, 2023, pp. 19:1–19:27.</mixed-citation><mixed-citation xml:lang="en">P. Maksimovi'c, C. Cronj"ager, A. L"o"ow, J. Sutherland, and P. Gardner, “Exact Separation Logic: Towards Bridging the Gap Between Verification and Bug-Finding,” in 37th European Conference on Object-Oriented Programming (ECOOP 2023), vol. 263, Schloss Dagstuhl -- Leibniz-Zentrum f"ur Informatik, 2023, pp. 19:1–19:27.</mixed-citation></citation-alternatives></ref><ref id="cit13"><label>13</label><citation-alternatives><mixed-citation xml:lang="ru">N. Zilberstein, D. Dreyer, and A. Silva, “Outcome Logic: A Unifying Foundation of Correctness and Incorrectness Reasoning,” Proceedings of the ACM on Programming Languages, vol. 7, no. OOPSLA1, pp. 522–550, 2023.</mixed-citation><mixed-citation xml:lang="en">N. Zilberstein, D. Dreyer, and A. Silva, “Outcome Logic: A Unifying Foundation of Correctness and Incorrectness Reasoning,” Proceedings of the ACM on Programming Languages, vol. 7, no. OOPSLA1, pp. 522–550, 2023.</mixed-citation></citation-alternatives></ref><ref id="cit14"><label>14</label><citation-alternatives><mixed-citation xml:lang="ru">T. Dardinier and P. M"uller, “Hyper Hoare Logic: (Dis-)Proving Program Hyperproperties (extended version).” 2023.</mixed-citation><mixed-citation xml:lang="en">T. Dardinier and P. M"uller, “Hyper Hoare Logic: (Dis-)Proving Program Hyperproperties (extended version).” 2023.</mixed-citation></citation-alternatives></ref><ref id="cit15"><label>15</label><citation-alternatives><mixed-citation xml:lang="ru">A. Humenberger, M. Jaroschek, and L. Kov'acs, “Invariant Generation for Multi-Path Loops with Polynomial Assignments,” in Verification, Model Checking, and Abstract Interpretation, vol. 10747, Springer, 2018, pp. 226–246.</mixed-citation><mixed-citation xml:lang="en">A. Humenberger, M. Jaroschek, and L. Kov'acs, “Invariant Generation for Multi-Path Loops with Polynomial Assignments,” in Verification, Model Checking, and Abstract Interpretation, vol. 10747, Springer, 2018, pp. 226–246.</mixed-citation></citation-alternatives></ref><ref id="cit16"><label>16</label><citation-alternatives><mixed-citation xml:lang="ru">S. Chakraborty, A. Gupta, and D. Unadkat, “Full-program induction: verifying array programs sans loop invariants,” International Journal on Software Tools for Technology Transfer, vol. 24, no. 5, pp. 843–888, 2022.</mixed-citation><mixed-citation xml:lang="en">S. Chakraborty, A. Gupta, and D. Unadkat, “Full-program induction: verifying array programs sans loop invariants,” International Journal on Software Tools for Technology Transfer, vol. 24, no. 5, pp. 843–888, 2022.</mixed-citation></citation-alternatives></ref><ref id="cit17"><label>17</label><citation-alternatives><mixed-citation xml:lang="ru">V. A. Nepomniaschy, “Symbolic method of verification of definite iterations over altered data structures,” Programming and Computer Software, vol. 31, no. 1, pp. 1–9, 2005.</mixed-citation><mixed-citation xml:lang="en">V. A. Nepomniaschy, “Symbolic method of verification of definite iterations over altered data structures,” Programming and Computer Software, vol. 31, no. 1, pp. 1–9, 2005.</mixed-citation></citation-alternatives></ref><ref id="cit18"><label>18</label><citation-alternatives><mixed-citation xml:lang="ru">V. A. Nepomniaschy, I. S. Anureev, I. N. Mikhailov, and A. V. Promskii, “Towards verification of C programs. C-light language and its formal semantics,” Programming and Computer Software, vol. 28, no. 6, pp. 314–323, 2002.</mixed-citation><mixed-citation xml:lang="en">V. A. Nepomniaschy, I. S. Anureev, I. N. Mikhailov, and A. V. Promskii, “Towards verification of C programs. C-light language and its formal semantics,” Programming and Computer Software, vol. 28, no. 6, pp. 314–323, 2002.</mixed-citation></citation-alternatives></ref><ref id="cit19"><label>19</label><citation-alternatives><mixed-citation xml:lang="ru">V. A. Nepomniaschy, I. S. Anureev, and A. V. Promskii, “Towards Verification of C Programs: Axiomatic Semantics of the C-kernel Language,” Programming and Computer Software, vol. 29, no. 6, pp. 338–350, 2003.</mixed-citation><mixed-citation xml:lang="en">V. A. Nepomniaschy, I. S. Anureev, and A. V. Promskii, “Towards Verification of C Programs: Axiomatic Semantics of the C-kernel Language,” Programming and Computer Software, vol. 29, no. 6, pp. 338–350, 2003.</mixed-citation></citation-alternatives></ref><ref id="cit20"><label>20</label><citation-alternatives><mixed-citation xml:lang="ru">I. V. Maryasov, V. A. Nepomniaschy, A. V. Promsky, and D. A. Kondratyev, “Automatic C Program Verification Based on Mixed Axiomatic Semantics,” Automatic Control and Computer Sciences, vol. 48, no. 7, pp. 407–414, 2014.</mixed-citation><mixed-citation xml:lang="en">I. V. Maryasov, V. A. Nepomniaschy, A. V. Promsky, and D. A. Kondratyev, “Automatic C Program Verification Based on Mixed Axiomatic Semantics,” Automatic Control and Computer Sciences, vol. 48, no. 7, pp. 407–414, 2014.</mixed-citation></citation-alternatives></ref><ref id="cit21"><label>21</label><citation-alternatives><mixed-citation xml:lang="ru">D. A. Kondratyev and V. A. Nepomniaschy, “Automation of C Program Deductive Verification without Using Loop Invariants,” Programming and Computer Software, vol. 48, no. 5, pp. 331–346, 2022.</mixed-citation><mixed-citation xml:lang="en">D. A. Kondratyev and V. A. Nepomniaschy, “Automation of C Program Deductive Verification without Using Loop Invariants,” Programming and Computer Software, vol. 48, no. 5, pp. 331–346, 2022.</mixed-citation></citation-alternatives></ref><ref id="cit22"><label>22</label><citation-alternatives><mixed-citation xml:lang="ru">D. A. Kondratyev and A. V. Promsky, “The Complex Approach of the C-lightVer System to the Automated Error Localization in C-Programs,” Automatic Control and Computer Sciences, vol. 54, no. 7, pp. 728–739, 2020.</mixed-citation><mixed-citation xml:lang="en">D. A. Kondratyev and A. V. Promsky, “The Complex Approach of the C-lightVer System to the Automated Error Localization in C-Programs,” Automatic Control and Computer Sciences, vol. 54, no. 7, pp. 728–739, 2020.</mixed-citation></citation-alternatives></ref><ref id="cit23"><label>23</label><citation-alternatives><mixed-citation xml:lang="ru">J. S. Moore, “Milestones from the Pure Lisp Theorem Prover to ACL2,” Formal Aspects of Computing, vol. 31, no. 6, pp. 699–732, 2019.</mixed-citation><mixed-citation xml:lang="en">J. S. Moore, “Milestones from the Pure Lisp Theorem Prover to ACL2,” Formal Aspects of Computing, vol. 31, no. 6, pp. 699–732, 2019.</mixed-citation></citation-alternatives></ref><ref id="cit24"><label>24</label><citation-alternatives><mixed-citation xml:lang="ru">D. A. Kondratyev, I. V. Maryasov, and V. A. Nepomniaschy, “The Automation of C Program Verification by the Symbolic Method of Loop Invariant Elimination,” Automatic Control and Computer Sciences, vol. 53, no. 7, pp. 653–662, 2019.</mixed-citation><mixed-citation xml:lang="en">D. A. Kondratyev, I. V. Maryasov, and V. A. Nepomniaschy, “The Automation of C Program Verification by the Symbolic Method of Loop Invariant Elimination,” Automatic Control and Computer Sciences, vol. 53, no. 7, pp. 653–662, 2019.</mixed-citation></citation-alternatives></ref><ref id="cit25"><label>25</label><citation-alternatives><mixed-citation xml:lang="ru">L. Zhang and B. L. Kaminski, “Quantitative strongest post: a calculus for reasoning about the flow of quantitative information,” Proceedings of the ACM on Programming Languages, vol. 6, no. OOPSLA1, pp. 1–29, 2022.</mixed-citation><mixed-citation xml:lang="en">L. Zhang and B. L. Kaminski, “Quantitative strongest post: a calculus for reasoning about the flow of quantitative information,” Proceedings of the ACM on Programming Languages, vol. 6, no. OOPSLA1, pp. 1–29, 2022.</mixed-citation></citation-alternatives></ref><ref id="cit26"><label>26</label><citation-alternatives><mixed-citation xml:lang="ru">S. Dailler, D. Hauzar, C. March'e, and Y. Moy, “Instrumenting a weakest precondition calculus for counterexample generation,” Journal of Logical and Algebraic Methods in Programming, vol. 99, pp. 97–113, 2018.</mixed-citation><mixed-citation xml:lang="en">S. Dailler, D. Hauzar, C. March'e, and Y. Moy, “Instrumenting a weakest precondition calculus for counterexample generation,” Journal of Logical and Algebraic Methods in Programming, vol. 99, pp. 97–113, 2018.</mixed-citation></citation-alternatives></ref><ref id="cit27"><label>27</label><citation-alternatives><mixed-citation xml:lang="ru">B. Becker, C. B. Lourencco, and C. March'e, “Explaining Counterexamples with Giant-Step Assertion Checking,” in Proceedings of the 6th Workshop on Formal Integrated Development Environment, vol. 338, 2021, pp. 82–88.</mixed-citation><mixed-citation xml:lang="en">B. Becker, C. B. Lourencco, and C. March'e, “Explaining Counterexamples with Giant-Step Assertion Checking,” in Proceedings of the 6th Workshop on Formal Integrated Development Environment, vol. 338, 2021, pp. 82–88.</mixed-citation></citation-alternatives></ref><ref id="cit28"><label>28</label><citation-alternatives><mixed-citation xml:lang="ru">Q. L. Le, J. Sun, L. H. Pham, and S. Qin, “S2TD: a Separation Logic Verifier that Supports Reasoning of the Absence and Presence of Bugs.” 2022.</mixed-citation><mixed-citation xml:lang="en">Q. L. Le, J. Sun, L. H. Pham, and S. Qin, “S2TD: a Separation Logic Verifier that Supports Reasoning of the Absence and Presence of Bugs.” 2022.</mixed-citation></citation-alternatives></ref><ref id="cit29"><label>29</label><citation-alternatives><mixed-citation xml:lang="ru">T. Dardinier, G. Parthasarathy, and P. M"uller, “Verification-Preserving Inlining in Automatic Separation Logic Verifiers,” Proceedings of the ACM on Programming Languages, vol. 7, no. OOPSLA1, pp. 789–818, 2023.</mixed-citation><mixed-citation xml:lang="en">T. Dardinier, G. Parthasarathy, and P. M"uller, “Verification-Preserving Inlining in Automatic Separation Logic Verifiers,” Proceedings of the ACM on Programming Languages, vol. 7, no. OOPSLA1, pp. 789–818, 2023.</mixed-citation></citation-alternatives></ref><ref id="cit30"><label>30</label><citation-alternatives><mixed-citation xml:lang="ru">R. K"onighofer, R. Toegl, and R. Bloem, “Automatic Error Localization for Software Using Deductive Verification,” in Hardware and Software: Verification and Testing, vol. 8855, Springer, 2014, pp. 92–98.</mixed-citation><mixed-citation xml:lang="en">R. K"onighofer, R. Toegl, and R. Bloem, “Automatic Error Localization for Software Using Deductive Verification,” in Hardware and Software: Verification and Testing, vol. 8855, Springer, 2014, pp. 92–98.</mixed-citation></citation-alternatives></ref><ref id="cit31"><label>31</label><citation-alternatives><mixed-citation xml:lang="ru">P. Baudin et al., “The dogged pursuit of bug-free C programs: the Frama-C software analysis platform,” Communications of the ACM, vol. 64, no. 8, pp. 56–68, 2021.</mixed-citation><mixed-citation xml:lang="en">P. Baudin et al., “The dogged pursuit of bug-free C programs: the Frama-C software analysis platform,” Communications of the ACM, vol. 64, no. 8, pp. 56–68, 2021.</mixed-citation></citation-alternatives></ref><ref id="cit32"><label>32</label><citation-alternatives><mixed-citation xml:lang="ru">M. R. Gadelha, F. Monteiro, L. Cordeiro, and D. Nicole, “ESBMC v6.0: Verifying C Programs Using $k$-Induction and Invariant Inference,” in Tools and Algorithms for the Construction and Analysis of Systems, vol. 11429, Springer, 2019, pp. 209–213.</mixed-citation><mixed-citation xml:lang="en">M. R. Gadelha, F. Monteiro, L. Cordeiro, and D. Nicole, “ESBMC v6.0: Verifying C Programs Using $k$-Induction and Invariant Inference,” in Tools and Algorithms for the Construction and Analysis of Systems, vol. 11429, Springer, 2019, pp. 209–213.</mixed-citation></citation-alternatives></ref><ref id="cit33"><label>33</label><citation-alternatives><mixed-citation xml:lang="ru">S. L"owe, “CPAchecker with Explicit-Value Analysis Based on CEGAR and Interpolation,” in Tools and Algorithms for the Construction and Analysis of Systems, vol. 7795, Springer, 2013, pp. 610–612.</mixed-citation><mixed-citation xml:lang="en">S. L"owe, “CPAchecker with Explicit-Value Analysis Based on CEGAR and Interpolation,” in Tools and Algorithms for the Construction and Analysis of Systems, vol. 7795, Springer, 2013, pp. 610–612.</mixed-citation></citation-alternatives></ref><ref id="cit34"><label>34</label><citation-alternatives><mixed-citation xml:lang="ru">D. Beyer and T. Lemberger, “CPA-SymExec: efficient symbolic execution in CPAchecker,” in Proceedings of the 33rd ACM/IEEE International Conference on Automated Software Engineering, 2018, pp. 900–903.</mixed-citation><mixed-citation xml:lang="en">D. Beyer and T. Lemberger, “CPA-SymExec: efficient symbolic execution in CPAchecker,” in Proceedings of the 33rd ACM/IEEE International Conference on Automated Software Engineering, 2018, pp. 900–903.</mixed-citation></citation-alternatives></ref><ref id="cit35"><label>35</label><citation-alternatives><mixed-citation xml:lang="ru">C. Cadar and M. Nowack, “KLEE symbolic execution engine in 2019,” International Journal on Software Tools for Technology Transfer, vol. 23, no. 6, pp. 867–870, 2021.</mixed-citation><mixed-citation xml:lang="en">C. Cadar and M. Nowack, “KLEE symbolic execution engine in 2019,” International Journal on Software Tools for Technology Transfer, vol. 23, no. 6, pp. 867–870, 2021.</mixed-citation></citation-alternatives></ref><ref id="cit36"><label>36</label><citation-alternatives><mixed-citation xml:lang="ru">B. Jacobs, J. Kiniry, and M. Warnier, “Java Program Verification Challenges,” in Formal Methods for Components and Objects, vol. 2852, Springer, 2003, pp. 202–219.</mixed-citation><mixed-citation xml:lang="en">B. Jacobs, J. Kiniry, and M. Warnier, “Java Program Verification Challenges,” in Formal Methods for Components and Objects, vol. 2852, Springer, 2003, pp. 202–219.</mixed-citation></citation-alternatives></ref></ref-list><fn-group><fn fn-type="conflict"><p>The authors declare that there are no conflicts of interest present.</p></fn></fn-group></back></article>
