Compositional Verification of Heap-Manipulating Programs through Property-Guided Learning

08/27/2019
by   Long H. Pham, et al.
0

Analyzing and verifying heap-manipulating programs automatically is challenging. A key for fighting the complexity is to develop compositional methods. For instance, many existing verifiers for heap-manipulating programs require user-provided specification for each function in the program in order to decompose the verification problem. The requirement, however, often hinders the users from applying such tools. To overcome the issue, we propose to automatically learn heap-related program invariants in a property-guided way for each function call. The invariants are learned based on the memory graphs observed during test execution and improved through memory graph mutation. We implemented a prototype of our approach and integrated it with two existing program verifiers. The experimental results show that our approach enhances existing verifiers effectively in automatically verifying complex heap-manipulating programs with multiple function calls.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
08/07/2020

From Well Structured Transition Systems to Program Verification

We describe the use of the theory of WSTS for verifying programs....
research
07/09/2019

Relational Verification via Invariant-Guided Synchronization

Relational properties describe relationships that hold over multiple exe...
research
11/01/2018

Decidable Verification of Uninterpreted Programs

verifying uninterpreted programs---programs that work over arbitrary da...
research
11/19/2015

Neural Programmer-Interpreters

We propose the neural programmer-interpreter (NPI): a recurrent and comp...
research
06/27/2019

Invariant Detection with Program Verification Tools

Compilers can specialize programs having invariants for performance impr...
research
02/18/2020

ConSORT: Context- and Flow-Sensitive Ownership Refinement Types for Imperative Programs

We present ConSORT, a type system for safety verification in the presenc...
research
02/16/2018

Compositional Verification of Compiler Optimisations on Relaxed Memory

A valid compiler optimisation transforms a block in a program without in...

Please sign up or login with your details

Forgot password? Click here to reset