Automated Analysis of Data-Dependent Programs with Dynamic Memory

  • Authors:
  • Parosh Aziz Abdulla;Muhsin Atto;Jonathan Cederberg;Ran Ji

  • Affiliations:
  • Uppsala University, Sweden;University of Duhok, Kurdistan, Iraq;Uppsala University, Sweden;Chalmers University of Technology, Gothenburg, Sweden

  • Venue:
  • ATVA '09 Proceedings of the 7th International Symposium on Automated Technology for Verification and Analysis
  • Year:
  • 2009

Quantified Score

Hi-index 0.00

Visualization

Abstract

We present a new approach for automatic verification of data-dependent programs manipulating dynamic heaps. A heap is encoded by a graph where the nodes represent the cells, and the edges reflect the pointer structure between the cells of the heap. Each cell contains a set of variables which range over the natural numbers. Our method relies on standard backward reachability analysis, where the main idea is to use a simple set of predicates, called signatures , in order to represent bad sets of heaps. Examples of bad heaps are those which contain either garbage, lists which are not well-formed, or lists which are not sorted. We present the results for the case of programs with a single next-selector, and where variables may be compared for (in)equality. This allows us to verify for instance that a program, like bubble sort or insertion sort, returns a list which is well-formed and sorted, or that the merging of two sorted lists is a new sorted list. We report on the result of running a prototype based on the method on a number of programs.