Loading [MathJax]/jax/output/SVG/config.js
Proceedings of the Institute for System Programming of the RAS
RUS  ENG    JOURNALS   PEOPLE   ORGANISATIONS   CONFERENCES   SEMINARS   VIDEO LIBRARY   PACKAGE AMSBIB  
General information
Latest issue
Archive

Search papers
Search references

RSS
Latest issue
Current issues
Archive issues
What is RSS



Proceedings of ISP RAS:
Year:
Volume:
Issue:
Page:
Find






Personal entry:
Login:
Password:
Save password
Enter
Forgotten password?
Register


Proceedings of the Institute for System Programming of the RAS, 2019, Volume 31, Issue 5, Pages 37–62
DOI: https://doi.org/10.15514/ISPRAS-2019-31(5)-3
(Mi tisp452)
 

Automatic verification of heap-manipulating programs

Yu. O. Kostyukova, K. A. Batoeva, D. A. Mordvinovba, M. P. Kostitsyna, A. V. Misonizhnika

a Saint Petersburg State University
b JetBrains Research
References:
Abstract: Theoretical foundations of compositional reasoning about heaps in imperative programming languages are investigated. We introduce a novel concept of compositional symbolic memory and its relevant properties. We utilize these formal foundations to build up a compositional algorithm that generates generalized heaps, terms of symbolic heap calculus, which characterize arbitrary cyclic code segments. All states inferred by this calculus precisely correspond to reachable states of the original program. We establish the correspondence between inference in this calculus and execution of pure second-order functional programs. The contribution of this work is as follows: (1) a formal model of compositional symbolic memory is proposed; (2) the properties of its correctness are formulated; (3) the calculus of symbolic heaps has been introduced: the conclusions in this calculus give all attainable states of the program; (4) the concept of generalized heaps is introduced, an algorithm for automatic modular construction of generalized heaps according to an imperative program is proposed; (5) an approach is proposed to reduce the problem of finding an output in calculus of symbolic heaps to the problem of proving the safety of functional programs.
Keywords: formal verification, automatic verification, symbolic execution, static analysis, dynamic memory, heap analysis, compositionality, pure functions.
Document Type: Article
Language: Russian
Citation: Yu. O. Kostyukov, K. A. Batoev, D. A. Mordvinov, M. P. Kostitsyn, A. V. Misonizhnik, “Automatic verification of heap-manipulating programs”, Proceedings of ISP RAS, 31:5 (2019), 37–62
Citation in format AMSBIB
\Bibitem{KosBatMor19}
\by Yu.~O.~Kostyukov, K.~A.~Batoev, D.~A.~Mordvinov, M.~P.~Kostitsyn, A.~V.~Misonizhnik
\paper Automatic verification of heap-manipulating programs
\jour Proceedings of ISP RAS
\yr 2019
\vol 31
\issue 5
\pages 37--62
\mathnet{http://mi.mathnet.ru/tisp452}
\crossref{https://doi.org/10.15514/ISPRAS-2019-31(5)-3}
Linking options:
  • https://www.mathnet.ru/eng/tisp452
  • https://www.mathnet.ru/eng/tisp/v31/i5/p37
  • Citing articles in Google Scholar: Russian citations, English citations
    Related articles in Google Scholar: Russian articles, English articles
    Proceedings of the Institute for System Programming of the RAS
    Statistics & downloads:
    Abstract page:141
    Full-text PDF :53
    References:27
     
      Contact us:
     Terms of Use  Registration to the website  Logotypes © Steklov Mathematical Institute RAS, 2025