Accurate invariant checking for programs manipulating lists and arrays with infinite data

  • Authors:
  • Ahmed Bouajjani;Cezara Drăgoi;Constantin Enea;Mihaela Sighireanu

  • Affiliations:
  • Sorbonne Paris Cité, LIAFA CNRS UMR 7089, Univ Paris Diderot, France;IST Austria, Austria;Sorbonne Paris Cité, LIAFA CNRS UMR 7089, Univ Paris Diderot, France;Sorbonne Paris Cité, LIAFA CNRS UMR 7089, Univ Paris Diderot, France

  • Venue:
  • ATVA'12 Proceedings of the 10th international conference on Automated Technology for Verification and Analysis
  • Year:
  • 2012

Quantified Score

Hi-index 0.00

Visualization

Abstract

We propose a logic-based framework for automated reasoning about sequential programs manipulating singly-linked lists and arrays with unbounded data. We introduce the logic $\textsf{SLAD}$, which allows combining shape constraints, written in a fragment of Separation Logic, with data and size constraints. We address the problem of checking the entailment between $\textsf{SLAD}$ formulas, which is crucial in performing pre-post condition reasoning. Although this problem is undecidable in general for $\textsf{SLAD}$, we propose a sound and powerful procedure that is able to solve this problem for a large class of formulas, beyond the capabilities of existing techniques and tools. We prove that this procedure is complete, i.e., it is actually a decision procedure for this problem, for an important fragment of $\textsf{SLAD}$ including known decidable logics. We implemented this procedure and shown its preciseness and its efficiency on a significant benchmark of formulas.