<?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-2021-4-372-393</article-id><article-id custom-type="elpub" pub-id-type="custom">mais-1566</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>На пути к автоматической дедуктивной верификации C-программ с Sisal-циклами в системе C-lightVer</article-title><trans-title-group xml:lang="en"><trans-title>Towards Automatic Deductive Verification of C Programs with Sisal Loops Using the C-lightVer System</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</institution><country>Russian Federation</country></aff></aff-alternatives><pub-date pub-type="collection"><year>2021</year></pub-date><pub-date pub-type="epub"><day>18</day><month>12</month><year>2021</year></pub-date><volume>28</volume><issue>4</issue><fpage>372</fpage><lpage>393</lpage><permissions><copyright-statement>Copyright &amp;#x00A9; Кондратьев Д.А., 2021</copyright-statement><copyright-year>2021</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/1566">https://www.mais-journal.ru/jour/article/view/1566</self-uri><abstract><p>В Институте систем информатики СО РАН разрабатывается система 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, основанную на вычислимых рекурсивных функциях. Метагенерация условий корректности позволяет упростить реализацию новых правил вывода в системе верификации. Использование смешанной аксиоматической семантики приводит в некоторых случаях к более простым условиям корректности.</p></abstract><trans-abstract xml:lang="en"><p>The C-lightVer system is developed in IIS SB RAS for C-program deductive verification. C-kernel is an intermediate verification language in this system. Cloud parallel programming system (CPPS) is also developed in IIS SB RAS. Cloud Sisal is an input language of CPPS. The main feature of CPPS is implicit parallel execution based on automatic parallelization of Cloud Sisal loops. Cloud-Sisal-kernel is an intermediate verification language in the CPPS system. Our goal is automatic parallelization of such a superset of C that allows implementing automatic verification. Our solution is such a superset of C-kernel as C-Sisal-kernel. The first result presented in this paper is an extension of C-kernel by Cloud-Sisal-kernel loops. We have obtained the C-Sisal-kernel language. The second result is an extension of C-kernel axiomatic semantics by inference rule for Cloud-Sisal-kernel loops. The paper also presents our approach to the problem of deductive verification automation in the case of finite iterations over data structures. This kind of loops is referred to as definite iterations. Our solution is a composition of symbolic method of verification of definite iterations, verification condition metageneration and mixed axiomatic semantics method. Symbolic method of verification of definite iterations allows defining inference rules for these loops without invariants. Symbolic replacement of definite iterations by recursive functions is the base of this method. Obtained verification conditions with applications of recursive functions correspond to logical base of ACL2 prover. We use ACL2 system based on computable recursive functions. Verification condition metageneration allows simplifying implementation of new inference rules in a verification system. The use of mixed axiomatic semantics results to simpler verification conditions in some cases.</p></trans-abstract><kwd-group xml:lang="ru"><kwd>дедуктивная верификация</kwd><kwd>C-lightVer</kwd><kwd>система облачного параллельного программирования</kwd><kwd>символический метод верификации финитных итераций</kwd><kwd>инвариант цикла</kwd><kwd>ACL2</kwd></kwd-group><kwd-group xml:lang="en"><kwd>deductive verification</kwd><kwd>C-lightVer</kwd><kwd>cloud parallel programming system</kwd><kwd>symbolic method of verification of definite iterations</kwd><kwd>loop invariant</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">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="cit2"><label>2</label><citation-alternatives><mixed-citation xml:lang="ru">D. A. Kondratyev and A. V. Promsky, “Developing a self-applicable verification system. Theory and practice,” Automatic Control and Computer Sciences, vol. 49, no. 7, pp. 445-452, 2015.</mixed-citation><mixed-citation xml:lang="en">D. A. Kondratyev and A. V. Promsky, “Developing a self-applicable verification system. Theory and practice,” Automatic Control and Computer Sciences, vol. 49, no. 7, pp. 445-452, 2015.</mixed-citation></citation-alternatives></ref><ref id="cit3"><label>3</label><citation-alternatives><mixed-citation xml:lang="ru">D. Kondratyev, “Implementing the Symbolic Method of Verification in the C-Light Project,” in Perspectives of System Informatics, vol. 10742, Springer, 2018, pp. 227-240.</mixed-citation><mixed-citation xml:lang="en">D. Kondratyev, “Implementing the Symbolic Method of Verification in the C-Light Project,” in Perspectives of System Informatics, vol. 10742, Springer, 2018, pp. 227-240.</mixed-citation></citation-alternatives></ref><ref id="cit4"><label>4</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="cit5"><label>5</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="cit6"><label>6</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="cit7"><label>7</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="cit8"><label>8</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="cit9"><label>9</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="cit10"><label>10</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="cit11"><label>11</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="cit12"><label>12</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="cit13"><label>13</label><citation-alternatives><mixed-citation xml:lang="ru">M. Moriconi and R. L. Schwartz, “Automatic construction of verification condition generators from hoare logics,” in International Colloquium on Automata, Languages, and Programming, vol. 115, Springer, 1981, pp. 363-377.</mixed-citation><mixed-citation xml:lang="en">M. Moriconi and R. L. Schwartz, “Automatic construction of verification condition generators from hoare logics,” in International Colloquium on Automata, Languages, and Programming, vol. 115, Springer, 1981, pp. 363-377.</mixed-citation></citation-alternatives></ref><ref id="cit14"><label>14</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="cit15"><label>15</label><citation-alternatives><mixed-citation xml:lang="ru">V. Kasyanov and E. Kasyanova, “Methods and System for Cloud Parallel Programming,” in Proceedings of the 21st International Conference on Enterprise Information Systems, 2019, vol. 1, pp. 623-629.</mixed-citation><mixed-citation xml:lang="en">V. Kasyanov and E. Kasyanova, “Methods and System for Cloud Parallel Programming,” in Proceedings of the 21st International Conference on Enterprise Information Systems, 2019, vol. 1, pp. 623-629.</mixed-citation></citation-alternatives></ref><ref id="cit16"><label>16</label><citation-alternatives><mixed-citation xml:lang="ru">V. N. Kasyanov and A. P. Stasenko, “Sisal 3.2 Language Structure Decomposition,” in Proceedings of the European Computing Conference, vol. 28, Springer, 2009, pp. 533-543.</mixed-citation><mixed-citation xml:lang="en">V. N. Kasyanov and A. P. Stasenko, “Sisal 3.2 Language Structure Decomposition,” in Proceedings of the European Computing Conference, vol. 28, Springer, 2009, pp. 533-543.</mixed-citation></citation-alternatives></ref><ref id="cit17"><label>17</label><citation-alternatives><mixed-citation xml:lang="ru">A. Stasenko, “Sisal 3.2 Language Features Overview,” in International Conference on Parallel Computing Technologies, vol. 6873, Springer, 2011, pp. 110-124.</mixed-citation><mixed-citation xml:lang="en">A. Stasenko, “Sisal 3.2 Language Features Overview,” in International Conference on Parallel Computing Technologies, vol. 6873, Springer, 2011, pp. 110-124.</mixed-citation></citation-alternatives></ref><ref id="cit18"><label>18</label><citation-alternatives><mixed-citation xml:lang="ru">V. Kasyanov, “Sisal 3.2: functional language for scientific parallel programming,” Enterprise Information Systems, vol. 7, no. 2, pp. 227-236, 2013.</mixed-citation><mixed-citation xml:lang="en">V. Kasyanov, “Sisal 3.2: functional language for scientific parallel programming,” Enterprise Information Systems, vol. 7, no. 2, pp. 227-236, 2013.</mixed-citation></citation-alternatives></ref><ref id="cit19"><label>19</label><citation-alternatives><mixed-citation xml:lang="ru">J. T. Feo, D. C. Cann, and R. R. Oldehoeft, “A report on the sisal language project,” Journal of Parallel and Distributed Computing, vol. 10, no. 4, pp. 349-366, 1990.</mixed-citation><mixed-citation xml:lang="en">J. T. Feo, D. C. Cann, and R. R. Oldehoeft, “A report on the sisal language project,” Journal of Parallel and Distributed Computing, vol. 10, no. 4, pp. 349-366, 1990.</mixed-citation></citation-alternatives></ref><ref id="cit20"><label>20</label><citation-alternatives><mixed-citation xml:lang="ru">J.-L. Gaudiot, T. DeBoni, J. Feo, W. B\"ohm, W. Najjar, and P. Miller, “The Sisal Project: Real World Functional Programming,” in Compiler Optimizations for Scalable Parallel Systems, vol. 1808, Springer, 2001, pp. 45-72.</mixed-citation><mixed-citation xml:lang="en">J.-L. Gaudiot, T. DeBoni, J. Feo, W. B\"ohm, W. Najjar, and P. Miller, “The Sisal Project: Real World Functional Programming,” in Compiler Optimizations for Scalable Parallel Systems, vol. 1808, Springer, 2001, pp. 45-72.</mixed-citation></citation-alternatives></ref><ref id="cit21"><label>21</label><citation-alternatives><mixed-citation xml:lang="ru">K. Pyzhov and R. Idrisov, “Back-end translator for Sisal 3.1 compiler,” Bulletin of the Novosibirsk Computing Center, no. 35, pp. 101-119, 2013.</mixed-citation><mixed-citation xml:lang="en">K. Pyzhov and R. Idrisov, “Back-end translator for Sisal 3.1 compiler,” Bulletin of the Novosibirsk Computing Center, no. 35, pp. 101-119, 2013.</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, “Towards verification of scientific and engineering programs. The CPPS project,” Journal of Computational Technologies, vol. 25, no. 5, pp. 91-106, 2020.</mixed-citation><mixed-citation xml:lang="en">D. A. Kondratyev and A. V. Promsky, “Towards verification of scientific and engineering programs. The CPPS project,” Journal of Computational Technologies, vol. 25, no. 5, pp. 91-106, 2020.</mixed-citation></citation-alternatives></ref><ref id="cit23"><label>23</label><citation-alternatives><mixed-citation xml:lang="ru">J. Dean and S. Ghemawat, “MapReduce: simplified data processing on large clusters,” in Proceedings of the 6th conference on Symposium on Operating Systems Design &amp; Implementation, 2004, vol. 6.</mixed-citation><mixed-citation xml:lang="en">J. Dean and S. Ghemawat, “MapReduce: simplified data processing on large clusters,” in Proceedings of the 6th conference on Symposium on Operating Systems Design &amp; Implementation, 2004, vol. 6.</mixed-citation></citation-alternatives></ref><ref id="cit24"><label>24</label><citation-alternatives><mixed-citation xml:lang="ru">M. Kaufmann and J. S. Moore, “Iteration in ACL2,” in Proceedings of the Sixteenth International Workshop on the ACL2 Theorem Prover and its Applications, vol. 327, 2020, pp. 16-31.</mixed-citation><mixed-citation xml:lang="en">M. Kaufmann and J. S. Moore, “Iteration in ACL2,” in Proceedings of the Sixteenth International Workshop on the ACL2 Theorem Prover and its Applications, vol. 327, 2020, pp. 16-31.</mixed-citation></citation-alternatives></ref><ref id="cit25"><label>25</label><citation-alternatives><mixed-citation xml:lang="ru">S. Blom, S. Darabi, M. Huisman, and M. Safari, “Correct program parallelisations,” International Journal on Software Tools for Technology Transfer, vol. 23, no. 5, pp. 741-763, 2021.</mixed-citation><mixed-citation xml:lang="en">S. Blom, S. Darabi, M. Huisman, and M. Safari, “Correct program parallelisations,” International Journal on Software Tools for Technology Transfer, vol. 23, no. 5, pp. 741-763, 2021.</mixed-citation></citation-alternatives></ref><ref id="cit26"><label>26</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 id="cit27"><label>27</label><citation-alternatives><mixed-citation xml:lang="ru">D. R. Cok, “Reasoning about Functional Programming in Java and C++,” in Companion Proceedings for the ISSTA/ECOOP 2018 Workshops, 2018, pp. 37-39.</mixed-citation><mixed-citation xml:lang="en">D. R. Cok, “Reasoning about Functional Programming in Java and C++,” in Companion Proceedings for the ISSTA/ECOOP 2018 Workshops, 2018, pp. 37-39.</mixed-citation></citation-alternatives></ref><ref id="cit28"><label>28</label><citation-alternatives><mixed-citation xml:lang="ru">D. R. Cok and S. Tasiran, “Practical Methods for Reasoning About Java 8's Functional Programming Features,” in Verified Software: Theories, Tools, and Experiments, vol. 11294, Springer, 2018, pp. 267-278.</mixed-citation><mixed-citation xml:lang="en">D. R. Cok and S. Tasiran, “Practical Methods for Reasoning About Java 8's Functional Programming Features,” in Verified Software: Theories, Tools, and Experiments, vol. 11294, Springer, 2018, pp. 267-278.</mixed-citation></citation-alternatives></ref><ref id="cit29"><label>29</label><citation-alternatives><mixed-citation xml:lang="ru">ISO/IEC 14882:2020: Programming language C++. ISO/IEC, 2020.</mixed-citation><mixed-citation xml:lang="en">ISO/IEC 14882:2020: Programming language C++. ISO/IEC, 2020.</mixed-citation></citation-alternatives></ref><ref id="cit30"><label>30</label><citation-alternatives><mixed-citation xml:lang="ru">ISO/IEC 9899:2011: Programming language C. ISO/IEC, 2011.</mixed-citation><mixed-citation xml:lang="en">ISO/IEC 9899:2011: Programming language C. ISO/IEC, 2011.</mixed-citation></citation-alternatives></ref><ref id="cit31"><label>31</label><citation-alternatives><mixed-citation xml:lang="ru">R. Krebbers and F. Wiedijk, “A Typed C11 Semantics for Interactive Theorem Proving,” in Proceedings of the 2015 Conference on Certified Programs and Proofs, 2015, pp. 15-27.</mixed-citation><mixed-citation xml:lang="en">R. Krebbers and F. Wiedijk, “A Typed C11 Semantics for Interactive Theorem Proving,” in Proceedings of the 2015 Conference on Certified Programs and Proofs, 2015, pp. 15-27.</mixed-citation></citation-alternatives></ref><ref id="cit32"><label>32</label><citation-alternatives><mixed-citation xml:lang="ru">M. Sammler, R. Lepigre, R. Krebbers, K. Memarian, D. Dreyer, and D. Garg, “RefinedC: automating the foundational verification of C code with refined ownership types,” in Proceedings of the 42nd ACM SIGPLAN International Conference on Programming Language Design and Implementation, 2021, pp. 158-174.</mixed-citation><mixed-citation xml:lang="en">M. Sammler, R. Lepigre, R. Krebbers, K. Memarian, D. Dreyer, and D. Garg, “RefinedC: automating the foundational verification of C code with refined ownership types,” in Proceedings of the 42nd ACM SIGPLAN International Conference on Programming Language Design and Implementation, 2021, pp. 158-174.</mixed-citation></citation-alternatives></ref><ref id="cit33"><label>33</label><citation-alternatives><mixed-citation xml:lang="ru">M. O. Myreen and M. J. C. Gordon, “Transforming Programs into Recursive Functions,” Electronic Notes in Theoretical Computer Science, vol. 240, pp. 185-200, 2009.</mixed-citation><mixed-citation xml:lang="en">M. O. Myreen and M. J. C. Gordon, “Transforming Programs into Recursive Functions,” Electronic Notes in Theoretical Computer Science, vol. 240, pp. 185-200, 2009.</mixed-citation></citation-alternatives></ref><ref id="cit34"><label>34</label><citation-alternatives><mixed-citation xml:lang="ru">R. Blanc, V. Kuncak, E. Kneuss, and P. Suter, “An overview of the Leon verification system: verification by translation to recursive functions,” in Proceedings of the 4th Workshop on Scala, 2013, pp. 1-10.</mixed-citation><mixed-citation xml:lang="en">R. Blanc, V. Kuncak, E. Kneuss, and P. Suter, “An overview of the Leon verification system: verification by translation to recursive functions,” in Proceedings of the 4th Workshop on Scala, 2013, pp. 1-10.</mixed-citation></citation-alternatives></ref><ref id="cit35"><label>35</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="cit36"><label>36</label><citation-alternatives><mixed-citation xml:lang="ru">S. Chakraborty, A. Gupta, and D. Unadkat, “Diffy: Inductive Reasoning of Array Programs Using Difference Invariants,” in Computer Aided Verification, vol. 12760, Springer, 2021, pp. 911-935.</mixed-citation><mixed-citation xml:lang="en">S. Chakraborty, A. Gupta, and D. Unadkat, “Diffy: Inductive Reasoning of Array Programs Using Difference Invariants,” in Computer Aided Verification, vol. 12760, Springer, 2021, pp. 911-935.</mixed-citation></citation-alternatives></ref><ref id="cit37"><label>37</label><citation-alternatives><mixed-citation xml:lang="ru">T. Tuerk, “Local reasoning about while-loops,” in Proceedings of the Theory Workshop at VSTTE 2010, 2010, pp. 29-39.</mixed-citation><mixed-citation xml:lang="en">T. Tuerk, “Local reasoning about while-loops,” in Proceedings of the Theory Workshop at VSTTE 2010, 2010, pp. 29-39.</mixed-citation></citation-alternatives></ref><ref id="cit38"><label>38</label><citation-alternatives><mixed-citation xml:lang="ru">A. Blanchard, F. Loulergue, and N. Kosmatov, “Towards Full Proof Automation in Frama-C Using Auto-active Verification,” in NASA Formal Methods, vol. 11460, Springer, 2019, pp. 88-105.</mixed-citation><mixed-citation xml:lang="en">A. Blanchard, F. Loulergue, and N. Kosmatov, “Towards Full Proof Automation in Frama-C Using Auto-active Verification,” in NASA Formal Methods, vol. 11460, Springer, 2019, pp. 88-105.</mixed-citation></citation-alternatives></ref><ref id="cit39"><label>39</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="cit40"><label>40</label><citation-alternatives><mixed-citation xml:lang="ru">I. Attali, D. Caromel, and A. Wendelborn, “A Formal Semantics and an Interactive Environment for Sisal,” in Tools and Environments for Parallel and Distributed Systems, vol. 2, Springer, 1996, pp. 229-256.</mixed-citation><mixed-citation xml:lang="en">I. Attali, D. Caromel, and A. Wendelborn, “A Formal Semantics and an Interactive Environment for Sisal,” in Tools and Environments for Parallel and Distributed Systems, vol. 2, Springer, 1996, pp. 229-256.</mixed-citation></citation-alternatives></ref><ref id="cit41"><label>41</label><citation-alternatives><mixed-citation xml:lang="ru">D. Kondratyev and A. Promsky, “Proof Strategy for Automated Sisal Program Verification,” in Software Technology: Methods and Tools, vol. 11771, Springer, 2019, pp. 113-120.</mixed-citation><mixed-citation xml:lang="en">D. Kondratyev and A. Promsky, “Proof Strategy for Automated Sisal Program Verification,” in Software Technology: Methods and Tools, vol. 11771, Springer, 2019, pp. 113-120.</mixed-citation></citation-alternatives></ref><ref id="cit42"><label>42</label><citation-alternatives><mixed-citation xml:lang="ru">B. Beckert, T. Bingmann, M. Kiefer, P. Sanders, M. Ulbrich, and A. Weigl, “Relational Equivalence Proofs Between Imperative and MapReduce Algorithms,” in Verified Software. Theories, Tools, and Experiments, vol. 11294, Springer, 2018, pp. 248-266.</mixed-citation><mixed-citation xml:lang="en">B. Beckert, T. Bingmann, M. Kiefer, P. Sanders, M. Ulbrich, and A. Weigl, “Relational Equivalence Proofs Between Imperative and MapReduce Algorithms,” in Verified Software. Theories, Tools, and Experiments, vol. 11294, Springer, 2018, pp. 248-266.</mixed-citation></citation-alternatives></ref><ref id="cit43"><label>43</label><citation-alternatives><mixed-citation xml:lang="ru">G. Parthasarathy, P. M\"uller, and A. J. Summers, “Formally Validating a Practical Verification Condition Generator,” in Computer Aided Verification, vol. 12760, Springer, 2021, pp. 704-727.</mixed-citation><mixed-citation xml:lang="en">G. Parthasarathy, P. M\"uller, and A. J. Summers, “Formally Validating a Practical Verification Condition Generator,” in Computer Aided Verification, vol. 12760, Springer, 2021, pp. 704-727.</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>
