General Interpolation and Strong Amalgamation for Contiguous Arrays

04/25/2022
by   Silvio Ghilardi, et al.
0

Interpolation is an essential tool in software verification, where first-order theories are used to constrain datatypes manipulated by programs. In this paper, we introduce the datatype theory of contiguous arrays with maxdiff, where arrays are completely defined in their allocation memory and for which maxdiff returns the max index where they differ. This theory is strictly more expressive than the array theories previously studied. By showing via an algebraic analysis that its models strongly amalgamate, we prove that this theory admits quantifier-free interpolants and, notably, that interpolation transfers to theory combinations. Finally, we provide an algorithm that significantly improves the ones for related array theories: it relies on a polysize reduction to general interpolation in linear arithmetics, thus avoiding impractical full terms instantiations and unbounded loops.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
10/14/2020

Interpolation and Amalgamation for Arrays with MaxDiff (Extended Version)

In this paper, the theory of McCarthy's extensional arrays enriched with...
research
04/19/2018

Efficient Interpolation for the Theory of Arrays

Existing techniques for Craig interpolation for the quantifier-free frag...
research
04/25/2019

Interpolation and the Array Property Fragment

Interpolation based software model checkers have been successfully emplo...
research
11/18/2019

Combined Covers and Beth Definability

In ESOP 2008, Gulwani and Musuvathi introduced a notion of cover and exp...
research
09/11/2021

NP Satisfiability for Arrays as Powers

We show that the satisfiability problem for the quantifier-free theory o...
research
07/25/2011

Instantiation Schemes for Nested Theories

This paper investigates under which conditions instantiation-based proof...
research
05/17/2022

Reasoning About Vectors using an SMT Theory of Sequences

Dynamic arrays, also referred to as vectors, are fundamental data struct...

Please sign up or login with your details

Forgot password? Click here to reset