81 research outputs found
What's Decidable About Sequences?
We present a first-order theory of sequences with integer elements,
Presburger arithmetic, and regular constraints, which can model significant
properties of data structures such as arrays and lists. We give a decision
procedure for the quantifier-free fragment, based on an encoding into the
first-order theory of concatenation; the procedure has PSPACE complexity. The
quantifier-free fragment of the theory of sequences can express properties such
as sortedness and injectivity, as well as Boolean combinations of periodic and
arithmetic facts relating the elements of the sequence and their positions
(e.g., "for all even i's, the element at position i has value i+3 or 2i"). The
resulting expressive power is orthogonal to that of the most expressive
decidable logics for arrays. Some examples demonstrate that the fragment is
also suitable to reason about sequence-manipulating programs within the
standard framework of axiomatic semantics.Comment: Fixed a few lapses in the Mergesort exampl
An Instantiation-Based Approach for Solving Quantified Linear Arithmetic
This paper presents a framework to derive instantiation-based decision
procedures for satisfiability of quantified formulas in first-order theories,
including its correctness, implementation, and evaluation. Using this framework
we derive decision procedures for linear real arithmetic (LRA) and linear
integer arithmetic (LIA) formulas with one quantifier alternation. Our
procedure can be integrated into the solving architecture used by typical SMT
solvers. Experimental results on standardized benchmarks from model checking,
static analysis, and synthesis show that our implementation of the procedure in
the SMT solver CVC4 outperforms existing tools for quantified linear
arithmetic
Abstraction and Acceleration in SMT-based Model-Checking for Array Programs
Abstraction (in its various forms) is a powerful established technique in
model-checking; still, when unbounded data-structures are concerned, it cannot
always cope with divergence phenomena in a satisfactory way. Acceleration is an
approach which is widely used to avoid divergence, but it has been applied
mostly to integer programs. This paper addresses the problem of accelerating
transition relations for unbounded arrays with the ultimate goal of avoiding
divergence during reachability analysis of abstract programs. For this, we
first design a format to compute accelerations in this domain; then we show how
to adapt the so-called 'monotonic abstraction' technique to efficiently handle
complex formulas with nested quantifiers generated by the acceleration
preprocessing. Notably, our technique can be easily plugged-in into
abstraction/refinement loops, and strongly contributes to avoid divergence:
experiments conducted with the MCMT model checker attest the effectiveness of
our approach on programs with unbounded arrays, where acceleration and
abstraction/refinement technologies fail if applied alone.Comment: Published in the proceedings of the 9th International Symposium on
Frontiers of Combining Systems (FroCoS) with the title "Definability of
Accelerated Relations in a Theory of Arrays and its Applications" (available
at http://www.springerlink.com
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
- …