2,130 research outputs found
Interpolation in local theory extensions
In this paper we study interpolation in local extensions of a base theory. We
identify situations in which it is possible to obtain interpolants in a
hierarchical manner, by using a prover and a procedure for generating
interpolants in the base theory as black-boxes. We present several examples of
theory extensions in which interpolants can be computed this way, and discuss
applications in verification, knowledge representation, and modular reasoning
in combinations of local theories.Comment: 31 pages, 1 figur
Composition of hierarchic default specifications
[no abstract
On Deciding Local Theory Extensions via E-matching
Satisfiability Modulo Theories (SMT) solvers incorporate decision procedures
for theories of data types that commonly occur in software. This makes them
important tools for automating verification problems. A limitation frequently
encountered is that verification problems are often not fully expressible in
the theories supported natively by the solvers. Many solvers allow the
specification of application-specific theories as quantified axioms, but their
handling is incomplete outside of narrow special cases.
In this work, we show how SMT solvers can be used to obtain complete decision
procedures for local theory extensions, an important class of theories that are
decidable using finite instantiation of axioms. We present an algorithm that
uses E-matching to generate instances incrementally during the search,
significantly reducing the number of generated instances compared to eager
instantiation strategies. We have used two SMT solvers to implement this
algorithm and conducted an extensive experimental evaluation on benchmarks
derived from verification conditions for heap-manipulating programs. We believe
that our results are of interest to both the users of SMT solvers as well as
their developers
Disproving in First-Order Logic with Definitions, Arithmetic and Finite Domains
This thesis explores several methods which enable a first-order
reasoner to conclude satisfiability of a formula modulo an
arithmetic theory. The most general method requires restricting
certain quantifiers to range over finite sets; such assumptions
are common in the software verification setting. In addition, the
use of first-order reasoning allows for an implicit
representation of those finite sets, which can avoid
scalability problems that affect other quantified reasoning
methods. These new techniques form a useful complement to
existing methods that are primarily aimed at proving validity.
The Superposition calculus for hierarchic theory combinations
provides a basis for reasoning modulo theories in a first-order
setting. The recent account of ‘weak abstraction’ and related
improvements make an mplementation of the calculus practical.
Also, for several logical theories of interest Superposition is
an effective decision procedure for the quantifier free fragment.
The first contribution is an implementation of that calculus
(Beagle), including an optimized implementation of Cooper’s
algorithm for quantifier elimination in the theory of linear
integer arithmetic. This includes a novel means of extracting
values
for quantified variables in satisfiable integer problems. Beagle
won an efficiency award at CADE Automated theorem prover System
Competition (CASC)-J7, and won the arithmetic non-theorem
category at CASC-25. This implementation is the start point for
solving the ‘disproving with theories’ problem.
Some hypotheses can be disproved by showing that, together with
axioms the hypothesis is unsatisfiable. Often this is relative to
other axioms that enrich a base theory by defining new functions.
In that case, the disproof is contingent on the satisfiability of
the enrichment.
Satisfiability in this context is undecidable. Instead, general
characterizations of definition formulas, which do not alter the
satisfiability status of the main axioms, are given. These
general criteria apply to recursive definitions, definitions over
lists, and to arrays. This allows proving some non-theorems which
are otherwise intractable, and justifies similar disproofs of
non-linear arithmetic formulas.
When the hypothesis is contingently true, disproof requires
proving existence of
a model. If the Superposition calculus saturates a clause set,
then a model exists,
but only when the clause set satisfies a completeness criterion.
This requires each
instance of an uninterpreted, theory-sorted term to have a
definition in terms of
theory symbols.
The second contribution is a procedure that creates such
definitions, given that a subset of quantifiers range over finite
sets. Definitions are produced in a counter-example driven way
via a sequence of over and under approximations to the clause
set. Two descriptions of the method are given: the first uses the
component solver modularly, but has an inefficient
counter-example heuristic. The second is more general, correcting
many of the inefficiencies of the first, yet it requires tracking
clauses through a proof. This latter method is shown to apply
also to lists and to problems with unbounded quantifiers.
Together, these tools give new ways for applying successful
first-order reasoning methods to problems involving interpreted
theories
- …