Automatic verification of heap-manipulating programs
Programming Languages
2019-06-27 v2
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.
Cite
@article{arxiv.1906.10204,
title = {Automatic verification of heap-manipulating programs},
author = {Yurii Kostyukov and Konstantin Batoev and Dmitry Mordvinov and Michael Kostitsyn and Aleksandr Misonizhnik},
journal= {arXiv preprint arXiv:1906.10204},
year = {2019}
}
Comments
44 pages, in Russian; to be published in Trudy ISP RAN/Proc. ISP RAS, 2019