Download PDFOpen PDF in browser

Arrays Made Simpler: An Efficient, Scalable and Thorough Preprocessing

18 pagesPublished: October 23, 2018

Abstract

The theory of arrays has a central place in software verification due to its ability to model memory or data structures. Yet, this theory is known to be hard to solve in both theory and practice, especially in the case of very long formulas coming from unrolling-based verification methods. Standard simplification techniques à la read-over-write suffer from two main drawbacks: they do not scale on very long sequences of stores and they miss many simplification opportunities because of a crude syntactic (dis-)equality reasoning. We propose a new approach to array formula simplification based on a new dedicated data structure together with original simplifications and low-cost reasoning. The technique is efficient, scalable and it yields significant simplification. The impact on formula resolution is always positive, and it can be dramatic on some specific classes of problems of interest, e.g. very long formula or binary-level symbolic execution. While currently implemented as a preprocessing, the approach would benefit from a deeper integration in an array solver.

Keyphrases: read over write simplification, satisfiability modulo theory, theory of arrays

In: Gilles Barthe, Geoff Sutcliffe and Margus Veanes (editors). LPAR-22. 22nd International Conference on Logic for Programming, Artificial Intelligence and Reasoning, vol 57, pages 363-380.

BibTeX entry
@inproceedings{LPAR-22:Arrays_Made_Simpler_Efficient,
  author    = {Benjamin Farinier and Robin David and Sébastien Bardin and Matthieu Lemerre},
  title     = {Arrays Made Simpler: An Efficient, Scalable and Thorough Preprocessing},
  booktitle = {LPAR-22. 22nd International Conference on Logic for Programming, Artificial Intelligence and Reasoning},
  editor    = {Gilles Barthe and Geoff Sutcliffe and Margus Veanes},
  series    = {EPiC Series in Computing},
  volume    = {57},
  publisher = {EasyChair},
  bibsource = {EasyChair, https://easychair.org},
  issn      = {2398-7340},
  url       = {/publications/paper/lSLN},
  doi       = {10.29007/dc9b},
  pages     = {363-380},
  year      = {2018}}
Download PDFOpen PDF in browser