English

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.

Keywords

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

R2 v1 2026-06-23T10:02:25.356Z