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, 2015, Volume 27, Issue 5, Pages 117–142
DOI: https://doi.org/10.15514/ISPRAS-2015-27(5)-7
(Mi tisp175)
 

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

Modeling memory with uninterpreted functions for predicate abstractions

M. U. Mandrykin, V. S. Mutilin

Institute for System Programming of the Russian Academy of Sciences
Full-text PDF (349 kB) Citations (1)
References:
Abstract: One of the key problems in modern static verification methods is a precise model for semantics of expressions containing pointers. The trustworthiness of the verification verdict highly depends on the analysis of these expressions. In the paper, we describe the verification methods with memory models based on uninterpreted functions, allowing to analyze programs containing expressions with pointers, including pointers to structures, arrays and pointer arithmetic. The approach is limited finite array size and finite recursion depth for dynamic data structures. The method was implemented in CPAchecker tool, based on CEGAR with boolean predicate abstractions and Craig interpolation for inferring new predicates used in abstraction refinement. For solving safisfability of path formulas and Craig interpolation CPAchecker uses interpolation solvers supporting theories of linear integer and real inequalities and equalities with uninterpreted functions. In the method, the memory state is represented as uninterpreted function mapping some variable addresses in memory to its values. After each write to memory for a pointer the version of uninterpreted function is changed. The experiments were performed on the benchmarks of International Competition on Software Verification (SV-COMP'2016) containing industrial size benchmarks of device drivers of Linux operating system. On these benchmarks, the method demonstrates reasonable verification times, reducing the number of missed defects and false alarms. Among the future work directions we consider deviding memory into region thus having a separate uninterpreted for each region.
Keywords: memory model, predicate abstraction, counterexample-guided abstraction refinement.
Funding agency Grant number
Russian Foundation for Basic Research 15-01-03934
Bibliographic databases:
Document Type: Article
Language: Russian
Citation: M. U. Mandrykin, V. S. Mutilin, “Modeling memory with uninterpreted functions for predicate abstractions”, Proceedings of ISP RAS, 27:5 (2015), 117–142
Citation in format AMSBIB
\Bibitem{ManMut15}
\by M.~U.~Mandrykin, V.~S.~Mutilin
\paper Modeling memory with uninterpreted functions for predicate abstractions
\jour Proceedings of ISP RAS
\yr 2015
\vol 27
\issue 5
\pages 117--142
\mathnet{http://mi.mathnet.ru/tisp175}
\crossref{https://doi.org/10.15514/ISPRAS-2015-27(5)-7}
\elib{https://elibrary.ru/item.asp?id=25141697}
Linking options:
  • https://www.mathnet.ru/eng/tisp175
  • https://www.mathnet.ru/eng/tisp/v27/i5/p117
  • 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:195
    Full-text PDF :63
    References:29
     
      Contact us:
     Terms of Use  Registration to the website  Logotypes © Steklov Mathematical Institute RAS, 2024