Result Details
Template-Based Verification of Heap-Manipulating Programs
Malík Viktor, Ing., Ph.D., DITS (FIT)
Schrammel Peter
Vojnar Tomáš, prof. Ing., Ph.D., DITS (FIT)
We propose a shape analysis suitable for analysis engines that perform automatic invariant inference using an SMT solver. The proposed solution includes an abstract template domain that encodes the shape of the program heap based on logical formulae over bit-vectors. It is based on computing a points-to relation between pointers and symbolic addresses of abstract memory objects. Our abstract heap domain can be combined with value domains in a straightforward manner, which particularly allows us to reason about shapes and contents of heap structures at the same time. The information obtained from the analysis can be used to prove memory safety and reachability properties, expressed by user assertions, of programs manipulating dynamic data structures, mainly linked lists. The solution has been implemented in the 2LS framework and compared against state-of-the-art tools that perform the best in heap-related categories of the well-known Software Verification Competition (SV-COMP). Results show that 2LS outperforms these tools on benchmarks requiring combined reasoning about unbounded data structures and their numerical contents.
software analysis, software verification, shape analysis, template based verification, 2LS, love, domain combination
@inproceedings{BUT155109,
author="Martin {Hruška} and Viktor {Malík} and Peter {Schrammel} and Tomáš {Vojnar}",
title="Template-Based Verification of Heap-Manipulating Programs",
booktitle="Proceedings of the 18th Conference on Formal Methods in Computer-Aided Design",
year="2018",
pages="103--111",
publisher="FMCAD Inc.",
address="Austin",
doi="10.23919/FMCAD.2018.8603009",
isbn="978-0-9835678-8-2",
url="https://www.cs.utexas.edu/users/hunt/FMCAD/FMCAD18/fmcad2018_proceedings.pdf"
}
IT4Innovations excellence in science, MŠMT, Národní program udržitelnosti II, LQ1602, start: 2016-01-01, end: 2020-12-31, completed
ROBUST - veRificatiOn and Bug hUnting for advanced SofTware, GACR, Standardní projekty, GA17-12465S, start: 2017-01-01, end: 2019-12-31, completed