498 research outputs found
Generating Non-Linear Interpolants by Semidefinite Programming
Interpolation-based techniques have been widely and successfully applied in
the verification of hardware and software, e.g., in bounded-model check- ing,
CEGAR, SMT, etc., whose hardest part is how to synthesize interpolants. Various
work for discovering interpolants for propositional logic, quantifier-free
fragments of first-order theories and their combinations have been proposed.
However, little work focuses on discovering polynomial interpolants in the
literature. In this paper, we provide an approach for constructing non-linear
interpolants based on semidefinite programming, and show how to apply such
results to the verification of programs by examples.Comment: 22 pages, 4 figure
Quantifier-Free Interpolation of a Theory of Arrays
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 the first
successful attempt of computing quantifier- free interpolants for a variant of
the theory of arrays with extensionality
Efficient Generation of Craig Interpolants in Satisfiability Modulo Theories
The problem of computing Craig Interpolants has recently received a lot of
interest. In this paper, we address the problem of efficient generation of
interpolants for some important fragments of first order logic, which are
amenable for effective decision procedures, called Satisfiability Modulo Theory
solvers.
We make the following contributions.
First, we provide interpolation procedures for several basic theories of
interest: the theories of linear arithmetic over the rationals, difference
logic over rationals and integers, and UTVPI over rationals and integers.
Second, we define a novel approach to interpolate combinations of theories,
that applies to the Delayed Theory Combination approach.
Efficiency is ensured by the fact that the proposed interpolation algorithms
extend state of the art algorithms for Satisfiability Modulo Theories. Our
experimental evaluation shows that the MathSAT SMT solver can produce
interpolants with minor overhead in search, and much more efficiently than
other competitor solvers.Comment: submitted to ACM Transactions on Computational Logic (TOCL
Domain-Type-Guided Refinement Selection Based on Sliced Path Prefixes
Abstraction is a successful technique in software verification, and
interpolation on infeasible error paths is a successful approach to
automatically detect the right level of abstraction in counterexample-guided
abstraction refinement. Because the interpolants have a significant influence
on the quality of the abstraction, and thus, the effectiveness of the
verification, an algorithm for deriving the best possible interpolants is
desirable. We present an analysis-independent technique that makes it possible
to extract several alternative sequences of interpolants from one given
infeasible error path, if there are several reasons for infeasibility in the
error path. We take as input the given infeasible error path and apply a
slicing technique to obtain a set of error paths that are more abstract than
the original error path but still infeasible, each for a different reason. The
(more abstract) constraints of the new paths can be passed to a standard
interpolation engine, in order to obtain a set of interpolant sequences, one
for each new path. The analysis can then choose from this set of interpolant
sequences and select the most appropriate, instead of being bound to the single
interpolant sequence that the interpolation engine would normally return. For
example, we can select based on domain types of variables in the interpolants,
prefer to avoid loop counters, or compare with templates for potential loop
invariants, and thus control what kind of information occurs in the abstraction
of the program. We implemented the new algorithm in the open-source
verification framework CPAchecker and show that our proof-technique-independent
approach yields a significant improvement of the effectiveness and efficiency
of the verification process.Comment: 10 pages, 5 figures, 1 table, 4 algorithm
Resolution over Linear Equations and Multilinear Proofs
We develop and study the complexity of propositional proof systems of varying
strength extending resolution by allowing it to operate with disjunctions of
linear equations instead of clauses. We demonstrate polynomial-size refutations
for hard tautologies like the pigeonhole principle, Tseitin graph tautologies
and the clique-coloring tautologies in these proof systems. Using the
(monotone) interpolation by a communication game technique we establish an
exponential-size lower bound on refutations in a certain, considerably strong,
fragment of resolution over linear equations, as well as a general polynomial
upper bound on (non-monotone) interpolants in this fragment.
We then apply these results to extend and improve previous results on
multilinear proofs (over fields of characteristic 0), as studied in
[RazTzameret06]. Specifically, we show the following:
1. Proofs operating with depth-3 multilinear formulas polynomially simulate a
certain, considerably strong, fragment of resolution over linear equations.
2. Proofs operating with depth-3 multilinear formulas admit polynomial-size
refutations of the pigeonhole principle and Tseitin graph tautologies. The
former improve over a previous result that established small multilinear proofs
only for the \emph{functional} pigeonhole principle. The latter are different
than previous proofs, and apply to multilinear proofs of Tseitin mod p graph
tautologies over any field of characteristic 0.
We conclude by connecting resolution over linear equations with extensions of
the cutting planes proof system.Comment: 44 page
Improved conditioning of the Floater--Hormann interpolants
The Floater--Hormann family of rational interpolants do not have spurious
poles or unattainable points, are efficient to calculate, and have arbitrarily
high approximation orders. One concern when using them is that the
amplification of rounding errors increases with approximation order, and can
make balancing the interpolation error and rounding error difficult. This
article proposes to modify the Floater--Hormann interpolants by including
additional local polynomial interpolants at the ends of the interval. This
appears to improve the conditioning of the interpolants and allow higher
approximation orders to be used in practice.Comment: 13 pages, 4 figures, 1 tabl
A simple abstraction of arrays and maps by program translation
We present an approach for the static analysis of programs handling arrays,
with a Galois connection between the semantics of the array program and
semantics of purely scalar operations. The simplest way to implement it is by
automatic, syntactic transformation of the array program into a scalar program
followed analysis of the scalar program with any static analysis technique
(abstract interpretation, acceleration, predicate abstraction,.. .). The
scalars invariants thus obtained are translated back onto the original program
as universally quantified array invariants. We illustrate our approach on a
variety of examples, leading to the " Dutch flag " algorithm
- …