<?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-2024-4-384-425</article-id><article-id custom-type="elpub" pub-id-type="custom">mais-1896</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>Подход к автоматизации дедуктивной верификации процесс-ориентированных программ, основанный на шаблонах: шаблоны, леммы и алгоритмы</article-title><trans-title-group xml:lang="en"><trans-title>Pattern-based approach to automation of deductive verification of process-oriented programs: patterns, lemmas and algorithms</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-0001-7675-8449</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>Chernenko</surname><given-names>Ivan M.</given-names></name></name-alternatives><email xlink:type="simple">cheriv98@mail.ru</email><xref ref-type="aff" rid="aff-1"/></contrib><contrib contrib-type="author" corresp="yes"><contrib-id contrib-id-type="orcid">https://orcid.org/0000-0001-9574-128X</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>Anureev</surname><given-names>Igor S.</given-names></name></name-alternatives><email xlink:type="simple">anureev@gmail.com</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>Institute of Automation and Electrometry SB RAS</institution><country>Russian Federation</country></aff></aff-alternatives><pub-date pub-type="collection"><year>2024</year></pub-date><pub-date pub-type="epub"><day>13</day><month>12</month><year>2024</year></pub-date><volume>31</volume><issue>4</issue><fpage>384</fpage><lpage>425</lpage><permissions><copyright-statement>Copyright &amp;#x00A9; Черненко И.М., Ануреев И.С., 2024</copyright-statement><copyright-year>2024</copyright-year><copyright-holder xml:lang="ru">Черненко И.М., Ануреев И.С.</copyright-holder><copyright-holder xml:lang="en">Chernenko I.M., Anureev I.S.</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/1896">https://www.mais-journal.ru/jour/article/view/1896</self-uri><abstract><p>Процесс-ориентированное программирование — это подход к разработке управляющего программного обеспечения, в котором программа определяется как набор взаимодействующих процессов. PoST — это процесс-ориентированный язык, который является расширением языка ST из стандарта IEC 61131-3. В области разработки управляющего программного обеспечения формальная верификация играет важную роль вследствие необходимости обеспечения высокой надежности такого программного обеспечения. Дедуктивная верификация — это метод формальной верификации, в котором программа и требования к ней представляются в виде логических формул, а для доказательства того, что программа удовлетворяет требованиям, используется логический вывод. К управляющему программному обеспечению часто предъявляются темпоральные требования. Мы формализуем такие требования для процесс-ориентированных программ в виде инвариантов цикла управления. Но инварианты цикла управления, представляющие требования, недостаточны для доказательства корректности программы. Поэтому мы добавляем дополнительные инварианты, которые содержат вспомогательную информацию. В данной статье рассматривается проблема автоматизации дедуктивной верификации процесс-ориентированных программ. Предложен подход, в котором темпоральные требования задаются с использованием шаблонов требований, которые строятся из базовых шаблонов. Для каждого шаблона требований определяются соответствующий шаблон дополнительных инвариантов и леммы. В статье описан предлагаемый подход и схемы базовых и производных шаблонов требований. Рассмотрены схемы базовых шаблонов дополнительных инвариантов, схемы лемм, определяемых для базовых шаблонов, а также набор базовых шаблонов и леммы для них. Определены схема производных шаблонов дополнительных инвариантов и схемы лемм, определяемых для производных шаблонов. Представлены алгоритмы построения производных шаблонов дополнительных инвариантов и лемм для них, а также метод доказательства этих лемм. Рассмотрены схемы доказательства условий корректности. Предложенный подход демонстрируется на примере. Также проведен анализ связанных работ.</p></abstract><trans-abstract xml:lang="en"><p>Process-oriented programming is an approach to developing control software in which a program is defined as a set of interacting processes. PoST is a process-oriented language, which is an extension of the ST language from the IEC 61131-3 standard. In the field of control software development, formal verification plays an important role due to the need to ensure high reliability of such software. Deductive verification is a formal verification method in which a program and its requirements are represented as logical formulas, and logical inference is used to prove that the program satisfies the requirements. Control software often has temporal requirements. We formalize such requirements for process-oriented programs as control loop invariants. However, control loop invariants that represent requirements are not sufficient to prove the correctness of the program. Therefore, we add extra invariants containing auxiliary information. This paper considers the problem of automating deductive verification of process-oriented programs. An approach is proposed in which temporal requirements are specified using requirement patterns which are constructed from basic patterns. For each requirement pattern, a corresponding extra invariant pattern and lemmas are defined. In this paper, the proposed approach and schemes of basic and derived requirement patterns are described. The schemes of basic extra invariant patterns, schemes of lemmas defined for basic patterns, and a set of basic patterns and lemmas for them are considered. The scheme of derived extra invariant patterns and schemes of lemmas defined for derived patterns are defined. The algorithms for constructing derived extra invariant patterns and lemmas for them, as well as methods for proving these lemmas are presented. The schemes of proving verification conditions are considered. The proposed approach is demonstrated with an example. The analysis of related works has also been carried out.</p></trans-abstract><kwd-group xml:lang="ru"><kwd>дедуктивная верификация</kwd><kwd>темпоральные требования</kwd><kwd>шаблон требований</kwd><kwd>инвариант цикла</kwd><kwd>управляющее программное обеспечение</kwd><kwd>процесс-ориентированное программирование</kwd></kwd-group><kwd-group xml:lang="en"><kwd>deductive verification</kwd><kwd>temporal requirements</kwd><kwd>requirement pattern</kwd><kwd>loop invariant</kwd><kwd>control software</kwd><kwd>process-oriented programming</kwd></kwd-group><funding-group><funding-statement xml:lang="ru">Госзадание ИАиЭ СО РАН, проект No 122031600173-8.</funding-statement><funding-statement xml:lang="en">State task IAaE SB RAS, project No. 122031600173-8.</funding-statement></funding-group></article-meta></front><back><ref-list><title>References</title><ref id="cit1"><label>1</label><citation-alternatives><mixed-citation xml:lang="ru">V. E. Zyubin, “Hyper-automaton: A model of control algorithms,” in Proceedings of the Siberian Conference on Control and Communications, 2007, pp. 51–57, doi: 10.1109/SIBCON.2007.371297.</mixed-citation><mixed-citation xml:lang="en">V. E. Zyubin, “Hyper-automaton: A model of control algorithms,” in Proceedings of the Siberian Conference on Control and Communications, 2007, pp. 51–57, doi: 10.1109/SIBCON.2007.371297.</mixed-citation></citation-alternatives></ref><ref id="cit2"><label>2</label><citation-alternatives><mixed-citation xml:lang="ru">V. E. Zyubin, A. S. Rozov, I. S. Anureev, N. O. Garanina, and V. Vyatkin, “poST: A Process-Oriented Extension of the IEC 61131-3 Structured Text Language,” IEEE Access, vol. 10, pp. 35238–35250, 2022.</mixed-citation><mixed-citation xml:lang="en">V. E. Zyubin, A. S. Rozov, I. S. Anureev, N. O. Garanina, and V. Vyatkin, “poST: A Process-Oriented Extension of the IEC 61131-3 Structured Text Language,” IEEE Access, vol. 10, pp. 35238–35250, 2022.</mixed-citation></citation-alternatives></ref><ref id="cit3"><label>3</label><citation-alternatives><mixed-citation xml:lang="ru">IEC, “IEC 61131-3: 2013 programmable controllers-Part 3: programming languages.” 2013, [Online]. Available: https://webstore.iec.ch/publication/4552.</mixed-citation><mixed-citation xml:lang="en">IEC, “IEC 61131-3: 2013 programmable controllers-Part 3: programming languages.” 2013, [Online]. Available: https://webstore.iec.ch/publication/4552.</mixed-citation></citation-alternatives></ref><ref id="cit4"><label>4</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,” Computing and Software Science: State of the Art and Perspectives, pp. 345–373, 2019.</mixed-citation><mixed-citation xml:lang="en">R. H"ahnle and M. Huisman, “Deductive software verification: from pen-and-paper proofs to industrial tools,” Computing and Software Science: State of the Art and Perspectives, pp. 345–373, 2019.</mixed-citation></citation-alternatives></ref><ref id="cit5"><label>5</label><citation-alternatives><mixed-citation xml:lang="ru">I. Anureev, N. Garanina, T. Liakh, A. Rozov, V. Zyubin, and S. Gorlatch, “Two-Step Deductive Verification of Control Software Using Reflex,” in Perspectives of System Informatics, 2019, pp. 50–63, doi: 10.1007/978-3-030-37487-7_5.</mixed-citation><mixed-citation xml:lang="en">I. Anureev, N. Garanina, T. Liakh, A. Rozov, V. Zyubin, and S. Gorlatch, “Two-Step Deductive Verification of Control Software Using Reflex,” in Perspectives of System Informatics, 2019, pp. 50–63, doi: 10.1007/978-3-030-37487-7_5.</mixed-citation></citation-alternatives></ref><ref id="cit6"><label>6</label><citation-alternatives><mixed-citation xml:lang="ru">I. Chernenko, I. S. Anureev, N. O. Garanina, and S. M. Staroletov, “A temporal requirements language for deductive verification of process-oriented programs,” in Proceedings of the IEEE 23rd International Conference of Young Professionals in Electron Devices and Materials (EDM), 2022, pp. 657–662.</mixed-citation><mixed-citation xml:lang="en">I. Chernenko, I. S. Anureev, N. O. Garanina, and S. M. Staroletov, “A temporal requirements language for deductive verification of process-oriented programs,” in Proceedings of the IEEE 23rd International Conference of Young Professionals in Electron Devices and Materials (EDM), 2022, pp. 657–662.</mixed-citation></citation-alternatives></ref><ref id="cit7"><label>7</label><citation-alternatives><mixed-citation xml:lang="ru">I. M. Chernenko, “Requirements patterns in deductive verification of process-oriented programs and examples of their use,” System Informatics, no. 22, pp. 11–20, 2023.</mixed-citation><mixed-citation xml:lang="en">I. M. Chernenko, “Requirements patterns in deductive verification of process-oriented programs and examples of their use,” System Informatics, no. 22, pp. 11–20, 2023.</mixed-citation></citation-alternatives></ref><ref id="cit8"><label>8</label><citation-alternatives><mixed-citation xml:lang="ru">L. C. Paulson, T. Nipkow, and M. Wenzel, “From LCF to Isabelle/HOL,” Formal Aspects of Computing, vol. 31, pp. 675–698, 2019.</mixed-citation><mixed-citation xml:lang="en">L. C. Paulson, T. Nipkow, and M. Wenzel, “From LCF to Isabelle/HOL,” Formal Aspects of Computing, vol. 31, pp. 675–698, 2019.</mixed-citation></citation-alternatives></ref><ref id="cit9"><label>9</label><citation-alternatives><mixed-citation xml:lang="ru">E. M. Clarke, T. A. Henzinger, H. Veith, R. Bloem, and others, Handbook of model checking, vol. 10. Springer, 2018.</mixed-citation><mixed-citation xml:lang="en">E. M. Clarke, T. A. Henzinger, H. Veith, R. Bloem, and others, Handbook of model checking, vol. 10. Springer, 2018.</mixed-citation></citation-alternatives></ref><ref id="cit10"><label>10</label><citation-alternatives><mixed-citation xml:lang="ru">D. Matichuk, T. Murray, and M. Wenzel, “Eisbach: A Proof Method Language for Isabelle,” Journal of Automated Reasoning, vol. 56, no. 3, pp. 261–282, 2016, doi: 10.1007/s10817-015-9360-2.</mixed-citation><mixed-citation xml:lang="en">D. Matichuk, T. Murray, and M. Wenzel, “Eisbach: A Proof Method Language for Isabelle,” Journal of Automated Reasoning, vol. 56, no. 3, pp. 261–282, 2016, doi: 10.1007/s10817-015-9360-2.</mixed-citation></citation-alternatives></ref><ref id="cit11"><label>11</label><citation-alternatives><mixed-citation xml:lang="ru">I. M. Chernenko, I. S. Anureev, and N. O. Garanina, “Requirement patterns in deductive verification of poST programs,” Modeling and Analysis of Information Systems, vol. 31, no. 1, pp. 6–31, 2024.</mixed-citation><mixed-citation xml:lang="en">I. M. Chernenko, I. S. Anureev, and N. O. Garanina, “Requirement patterns in deductive verification of poST programs,” Modeling and Analysis of Information Systems, vol. 31, no. 1, pp. 6–31, 2024.</mixed-citation></citation-alternatives></ref><ref id="cit12"><label>12</label><citation-alternatives><mixed-citation xml:lang="ru">P. Cousot and R. Cousot, “Abstract interpretation: a unified lattice model for static analysis of programs by construction or approximation of fixpoints,” in Proceedings of the 4th ACM SIGACT-SIGPLAN Symposium on Principles of Programming Languages, 1977, pp. 238–252.</mixed-citation><mixed-citation xml:lang="en">P. Cousot and R. Cousot, “Abstract interpretation: a unified lattice model for static analysis of programs by construction or approximation of fixpoints,” in Proceedings of the 4th ACM SIGACT-SIGPLAN Symposium on Principles of Programming Languages, 1977, pp. 238–252.</mixed-citation></citation-alternatives></ref><ref id="cit13"><label>13</label><citation-alternatives><mixed-citation xml:lang="ru">N. Suzuki and K. Ishihata, “Implementation of an array bound checker,” in Proceedings of the 4th ACM SIGACT-SIGPLAN Symposium on Principles of Programming Languages, 1977, pp. 132–143.</mixed-citation><mixed-citation xml:lang="en">N. Suzuki and K. Ishihata, “Implementation of an array bound checker,” in Proceedings of the 4th ACM SIGACT-SIGPLAN Symposium on Principles of Programming Languages, 1977, pp. 132–143.</mixed-citation></citation-alternatives></ref><ref id="cit14"><label>14</label><citation-alternatives><mixed-citation xml:lang="ru">M. A. Col'on, S. Sankaranarayanan, and H. B. Sipma, “Linear invariant generation using non-linear constraint solving,” in Computer Aided Verification, 2003, pp. 420–432.</mixed-citation><mixed-citation xml:lang="en">M. A. Col'on, S. Sankaranarayanan, and H. B. Sipma, “Linear invariant generation using non-linear constraint solving,” in Computer Aided Verification, 2003, pp. 420–432.</mixed-citation></citation-alternatives></ref><ref id="cit15"><label>15</label><citation-alternatives><mixed-citation xml:lang="ru">L. Kov'acs, “Reasoning algebraically about P-solvable loops,” in International Conference on Tools and Algorithms for the Construction and Analysis of Systems, 2008, pp. 249–264.</mixed-citation><mixed-citation xml:lang="en">L. Kov'acs, “Reasoning algebraically about P-solvable loops,” in International Conference on Tools and Algorithms for the Construction and Analysis of Systems, 2008, pp. 249–264.</mixed-citation></citation-alternatives></ref><ref id="cit16"><label>16</label><citation-alternatives><mixed-citation xml:lang="ru">J. Stark and A. Ireland, “Invariant discovery via failed proof attempts,” in International Workshop on Logic Programming Synthesis and Transformation, 1998, pp. 271–288.</mixed-citation><mixed-citation xml:lang="en">J. Stark and A. Ireland, “Invariant discovery via failed proof attempts,” in International Workshop on Logic Programming Synthesis and Transformation, 1998, pp. 271–288.</mixed-citation></citation-alternatives></ref><ref id="cit17"><label>17</label><citation-alternatives><mixed-citation xml:lang="ru">K. R. M. Leino and F. Logozzo, “Loop invariants on demand,” in Asian Symposium on Programming Languages and Systems, 2005, pp. 119–134.</mixed-citation><mixed-citation xml:lang="en">K. R. M. Leino and F. Logozzo, “Loop invariants on demand,” in Asian Symposium on Programming Languages and Systems, 2005, pp. 119–134.</mixed-citation></citation-alternatives></ref><ref id="cit18"><label>18</label><citation-alternatives><mixed-citation xml:lang="ru">M. D. Ernst, J. Cockrell, W. G. Griswold, and D. Notkin, “Dynamically discovering likely program invariants to support program evolution,” in Proceedings of the 21st International Conference on Software engineering, 1999, pp. 213–224.</mixed-citation><mixed-citation xml:lang="en">M. D. Ernst, J. Cockrell, W. G. Griswold, and D. Notkin, “Dynamically discovering likely program invariants to support program evolution,” in Proceedings of the 21st International Conference on Software engineering, 1999, pp. 213–224.</mixed-citation></citation-alternatives></ref><ref id="cit19"><label>19</label><citation-alternatives><mixed-citation xml:lang="ru">X. Si, H. Dai, M. Raghothaman, M. Naik, and L. Song, “Learning loop invariants for program verification,” Advances in Neural Information Processing Systems, vol. 31, 2018.</mixed-citation><mixed-citation xml:lang="en">X. Si, H. Dai, M. Raghothaman, M. Naik, and L. Song, “Learning loop invariants for program verification,” Advances in Neural Information Processing Systems, vol. 31, 2018.</mixed-citation></citation-alternatives></ref><ref id="cit20"><label>20</label><citation-alternatives><mixed-citation xml:lang="ru">C. A. Furia, B. Meyer, and S. Velder, “Loop invariants: Analysis, classification, and examples,” ACM Computing Surveys (CSUR), vol. 46, no. 3, pp. 1–51, 2014.</mixed-citation><mixed-citation xml:lang="en">C. A. Furia, B. Meyer, and S. Velder, “Loop invariants: Analysis, classification, and examples,” ACM Computing Surveys (CSUR), vol. 46, no. 3, pp. 1–51, 2014.</mixed-citation></citation-alternatives></ref><ref id="cit21"><label>21</label><citation-alternatives><mixed-citation xml:lang="ru">J. Breck, J. Cyphert, Z. Kincaid, and T. Reps, “Templates and recurrences: better together,” in Proceedings of the 41st ACM SIGPLAN Conference on Programming Language Design and Implementation, 2020, pp. 688–702.</mixed-citation><mixed-citation xml:lang="en">J. Breck, J. Cyphert, Z. Kincaid, and T. Reps, “Templates and recurrences: better together,” in Proceedings of the 41st ACM SIGPLAN Conference on Programming Language Design and Implementation, 2020, pp. 688–702.</mixed-citation></citation-alternatives></ref><ref id="cit22"><label>22</label><citation-alternatives><mixed-citation xml:lang="ru">S. Srivastava, S. Gulwani, and J. S. Foster, “Template-based program verification and program synthesis,” International Journal on Software Tools for Technology Transfer, vol. 15, pp. 497–518, 2013.</mixed-citation><mixed-citation xml:lang="en">S. Srivastava, S. Gulwani, and J. S. Foster, “Template-based program verification and program synthesis,” International Journal on Software Tools for Technology Transfer, vol. 15, pp. 497–518, 2013.</mixed-citation></citation-alternatives></ref><ref id="cit23"><label>23</label><citation-alternatives><mixed-citation xml:lang="ru">Z. Manna et al., “STeP: The Stanford temporal prover,” in Proceedings of the TAPSOFT'95: Theory and Practice of Software Development, 1995, pp. 793–794.</mixed-citation><mixed-citation xml:lang="en">Z. Manna et al., “STeP: The Stanford temporal prover,” in Proceedings of the TAPSOFT'95: Theory and Practice of Software Development, 1995, pp. 793–794.</mixed-citation></citation-alternatives></ref><ref id="cit24"><label>24</label><citation-alternatives><mixed-citation xml:lang="ru">C. Belo Lourencco, D. Cousineau, F. Faissole, C. March'e, D. Mentr'e, and H. Inoue, “Automated formal analysis of temporal properties of Ladder programs,” International Journal on Software Tools for Technology Transfer, vol. 24, no. 6, pp. 977–997, 2022.</mixed-citation><mixed-citation xml:lang="en">C. Belo Lourencco, D. Cousineau, F. Faissole, C. March'e, D. Mentr'e, and H. Inoue, “Automated formal analysis of temporal properties of Ladder programs,” International Journal on Software Tools for Technology Transfer, vol. 24, no. 6, pp. 977–997, 2022.</mixed-citation></citation-alternatives></ref><ref id="cit25"><label>25</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 Symposium, 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 Symposium, 2019, pp. 88–105.</mixed-citation></citation-alternatives></ref><ref id="cit26"><label>26</label><citation-alternatives><mixed-citation xml:lang="ru">A. Naumchev, “Seamless object-oriented requirements,” in Proceedings of the International Multi-Conference on Engineering, Computer and Information Sciences (SIBIRCON), 2019, pp. 0743–0748.</mixed-citation><mixed-citation xml:lang="en">A. Naumchev, “Seamless object-oriented requirements,” in Proceedings of the International Multi-Conference on Engineering, Computer and Information Sciences (SIBIRCON), 2019, pp. 0743–0748.</mixed-citation></citation-alternatives></ref><ref id="cit27"><label>27</label><citation-alternatives><mixed-citation xml:lang="ru">A. Gupta and A. Rybalchenko, “Invgen: An efficient invariant generator,” in Proceedings of the Computer Aided Verification, 2009, pp. 634–640.</mixed-citation><mixed-citation xml:lang="en">A. Gupta and A. Rybalchenko, “Invgen: An efficient invariant generator,” in Proceedings of the Computer Aided Verification, 2009, pp. 634–640.</mixed-citation></citation-alternatives></ref><ref id="cit28"><label>28</label><citation-alternatives><mixed-citation xml:lang="ru">D. Beyer, T. A. Henzinger, R. Majumdar, and A. Rybalchenko, “Invariant synthesis for combined theories,” in International Workshop on Verification, Model Checking, and Abstract Interpretation, 2007, pp. 378–394.</mixed-citation><mixed-citation xml:lang="en">D. Beyer, T. A. Henzinger, R. Majumdar, and A. Rybalchenko, “Invariant synthesis for combined theories,” in International Workshop on Verification, Model Checking, and Abstract Interpretation, 2007, pp. 378–394.</mixed-citation></citation-alternatives></ref><ref id="cit29"><label>29</label><citation-alternatives><mixed-citation xml:lang="ru">A. Mekki, M. Ghazel, and A. Toguyeni, “Patterns-Based Assistance for Temporal Requirement Specification,” in Proceedings of the International Conference on Software Engineering Research and Practice (SERP), 2011, p. 40893006.</mixed-citation><mixed-citation xml:lang="en">A. Mekki, M. Ghazel, and A. Toguyeni, “Patterns-Based Assistance for Temporal Requirement Specification,” in Proceedings of the International Conference on Software Engineering Research and Practice (SERP), 2011, p. 40893006.</mixed-citation></citation-alternatives></ref><ref id="cit30"><label>30</label><citation-alternatives><mixed-citation xml:lang="ru">M. B. Dwyer, G. S. Avrunin, and J. C. Corbett, “Patterns in property specifications for finite-state verification,” in Proceedings of the 21st International Conference on Software Engineering, 1999, pp. 411–420.</mixed-citation><mixed-citation xml:lang="en">M. B. Dwyer, G. S. Avrunin, and J. C. Corbett, “Patterns in property specifications for finite-state verification,” in Proceedings of the 21st International Conference on Software Engineering, 1999, pp. 411–420.</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>
