Quantifier-Free Interpolation of a Theory of Arrays
Roberto Bruttomesso (Universit\`a degli Studi di Milano, Department of, Computer Science), Silvio Ghilardi (Universit\`a degli Studi di Milano,, Department of Computer Science), Silvio Ranise (Fondazione Bruno Kessler,, Trento)

TL;DR
This paper demonstrates the first successful method for deriving quantifier-free interpolants in a Skolemized array theory with extensionality, enhancing model checking techniques.
Contribution
It introduces a novel approach to obtain quantifier-free interpolants for array theories using model-theoretic and rewriting techniques.
Findings
Quantifier-free interpolants can be derived for a Skolemized array theory.
Two methods are used: model-theoretic amalgamation and a rewriting-based solver.
This is the first known method for array theories with extensionality.
Abstract
The use of interpolants in model checking is becoming an enabling technology to allow fast and robust verification of hardware and software. The application of encodings based on the theory of arrays, however, is limited by the impossibility of deriving quantifier- free interpolants in general. In this paper, we show that it is possible to obtain quantifier-free interpolants for a Skolemized version of the extensional theory of arrays. We prove this in two ways: (1) non-constructively, by using the model theoretic notion of amalgamation, which is known to be equivalent to admit quantifier-free interpolation for universal theories; and (2) constructively, by designing an interpolating procedure, based on solving equations between array updates. (Interestingly, rewriting techniques are used in the key steps of the solver and its proof of correctness.) To the best of our knowledge, this is…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
