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 3, Pages 123–134
DOI: https://doi.org/10.15514/ISPRAS-2019-31(3)-10
(Mi tisp427)
 

This article is cited in 1 scientific paper (total in 1 paper)

Applying high-level function loop invariants for machine code deductive verification

P. A. Putroab

a Institute for System Programming of the Russian Academy of Sciences
b National Research University Higher School of Economics
Full-text PDF (999 kB) Citations (1)
References:
Abstract: The existing tools of deductive verification allow us to successfully prove the correctness of functions written in high-level languages such as C or Java. However, this may not be enough for critical software because even fully verified code cannot guarantee the correct generation of machine code by the compiler. At the moment, developers of such systems have to accept the compiler correctness assumption, which, however, is extremely undesirable, but inevitable due to the lack of full-fledged systems of formal verification of machine code. It is also worth noting that the verification of machine code by a person directly is an extremely time-consuming task due to the high complexity and large amounts of machine code. One of the approaches to simplify the verification of machine code is automatic deductive verification reusing the formal specification of the high-level language function. The formal specification of the function consists of the specification of the pre- and postcondition, as well as loop invariants, which specify conditions that are satified at each iteration of the loop. When compiling a program into machine code, pre- and postconditions are preserved, which, however, cannot be said about loop invariants. This fact is one of the main problems of automatic verification of machine code with loops. Another important problem is that high-level function variables often have ‘projections’ to both registers and memory at the machine code level, and the verification procedure requires that invariants be described for each variable, and therefore the missing invariants must be generated. This paper presents an approach to solving these problems, based on the analysis of the control flow graph, and intelligent search of the locations of variables.
Keywords: deductive verification, formal methods, machine code.
Bibliographic databases:
Document Type: Article
Language: English
Citation: P. A. Putro, “Applying high-level function loop invariants for machine code deductive verification”, Proceedings of ISP RAS, 31:3 (2019), 123–134
Citation in format AMSBIB
\Bibitem{Put19}
\by P.~A.~Putro
\paper Applying high-level function loop invariants for machine code deductive verification
\jour Proceedings of ISP RAS
\yr 2019
\vol 31
\issue 3
\pages 123--134
\mathnet{http://mi.mathnet.ru/tisp427}
\crossref{https://doi.org/10.15514/ISPRAS-2019-31(3)-10}
\elib{https://elibrary.ru/item.asp?id=39556521}
Linking options:
  • https://www.mathnet.ru/eng/tisp427
  • https://www.mathnet.ru/eng/tisp/v31/i3/p123
  • This publication is cited in the following 1 articles:
    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:107
    Full-text PDF :46
    References:24
     
      Contact us:
     Terms of Use  Registration to the website  Logotypes © Steklov Mathematical Institute RAS, 2024