A Simple Sound Combination Method
The following method need not be complete, but applies to any formulas, not just quantifier-free formulas.
Suppose we wish to unsatisfiability of a class of formulas and we have provers which can prove formulas in language for .
Suppose each prover has approximation function such that
In other words, approximates an arbitrary formula with a weaker formula in language understood by .
To prove formula , for each , apply to check satisfiability of .
- If any of the provers concludes that formula is unsatisfiable, then is unsatisfiable (soundness)
- If no prover finds unsatisfiability, we cannot say much in general, depending on the approximation functions
Improvement of precision: if is equivalent to disjunction then to prove unsatisfiable, for each check that is unsatisfiable by applying each of the provers.
Defining Approximations
We can define approximation for arbitrary first-order formulas.
Start with , flip on negation.
for any supported atomic formula
for unsupported atomic formula
for unsupported atomic formula
Lemma:
What does do on a conjunction of flat literals?
Examples
Consider decision procedure for uninterpreted symbols and for Presburger arithmetic. Let approximation convert formula to negation normal form, and then drop all literals that contain arithmetic elements. Similarly, converts to NNF, then drops all literlas that contain symbols not presented in Presburger arithmetic (e.g. uninterpreted function symbols).
Example (from Calculus of Computation Textbook, page 210, Example 10.1): Let be
This formula is unsatisfiable. However,
and both approximations are satisfiable in resulting theories.
Instead of doing approximation directly, let us transform the original formula into formula where function application and arithmetic are separated:
Variables and both appear in the formula, so let us convert into disjunction of . We then check satisfiability for each of the disjuncts. Consider, for example, , which is formula
We have
which is unsatisfiable. Then, considering formula , we can do further case analysis on equality of two variables, say . For we similarly obtain unsatisfiability of -approximation. The remaining case is . For this formula, denoted , we have
which is unsatisfiable. Therefore, by transforming formula into disjunction of formulas, we were able to prove unsatisfiability. Two things helped precision
- separating literals into literals understood by individual theories (unlike mixed literals )
- doing case analysis on equality of variables
These are the key techniques that we use in methods that are complete for quantifier-free combinations of procedures that reason about disjoint function and predicate symbols.