Automatic verification of heap-manipulating programs

06/24/2019
by   Yu. O. Kostyukov, et al.
0

Theoretical foundations of compositional reasoning about heaps in imperative programming languages are investigated. We introduce a novel concept of compositional symbolic memory and formally prove 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.

READ FULL TEXT

Please sign up or login with your details

Forgot password? Click here to reset