A Combination of Rewriting and Constraint Solving for the Quantifier-free Interpolation of Arrays with Integer Difference Constraints Roberto Bruttomesso 1 Silvio Ghilardi 2 Silvio Ranise 3 1 Universit` a della Svizzera Italiana, Lugano, Switzerland 2 Universit` a degli Studi di Milano, Milan, Italy 3 FBK (Fondazione Bruno Kessler), Trento, Italy Abstract. The use of interpolants in model checking is progressively gaining importance. The application of encodings based on the theory of arrays, however, is limited by the impossibility of deriving quantifier- free interpolants in general. To overcome this problem, we have recently proposed a quantifier-free interpolation solver for a natural variant of the theory of arrays. However, arrays are usually combined with frag- ments of arithmetic over indexes in applications, especially those related to software verification. In this paper, we propose a quantifier-free in- terpolation solver for the variant of arrays considered in previous work when combined with integer difference logic over indexes. 1 Introduction Arrays are essential data-structures in computer science. The problem of verify- ing functional correctness of software and hardware components using symbolic model-checking techniques often boils down to the problem of checking prop- erties over arrays and arithmetic, expressed as quantifier-free first order logic formulæ. Consider for example the following pseudo-code fragment for ( int i =0; i n 1; i = i +1) if ( a[i] >a[i + 1] ) swap( a[i], a[i + 1] ); This loop is used, e.g., in bubble-sort to move the maximum element in the range [0,n] of the array a to position n. It thus satisfies the postcondition i. 0 i n 1= a[i] a[n]. A possible approach to model-check such property can be established by taking its negation (i. 0 i n 1 a[i] >a[n]), which is an “unsafety condition”, and by running a symbolic reachability procedure. State-of-the-art methods for reachability are based on an abstraction-refinement loop, where the refinement phase is handled by means of the computation of interpolants [10]. In order to apply this method it is necessary to provide procedure that com- putes quantifier-free interpolants for unsatisfiable quantifier-free formulæ in the