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