wiki

Nelson–Oppen combination

A method for deciding satisfiability of quantifier-free formulas in a union of theories , given a decision procedure for each. The formula is split into pure parts, one per theory, and the procedures exchange equalities between shared variables until one finds a contradiction or neither can add anything.

The conditions: the signatures of and share nothing but equality, and both theories are stably infinite, meaning every quantifier-free formula satisfiable in the theory has an infinite model. Linear arithmetic over and the theory of uninterpreted functions both qualify.

First, purification replaces every subterm that mixes the two signatures by a fresh variable, until each literal belongs to one theory. With linear real arithmetic and uninterpreted functions:

becomes, with fresh,

The shared variables are . Each procedure checks its part and reports the equalities between shared variables that its part implies:

The exchange.

arithmetic x <= y and y <= x implies x = y -> functions
functions x = y, congruence implies u = v -> arithmetic
arithmetic u - v != 0 and u = v unsatisfiable

A theory is convex when a conjunction of its literals that implies a disjunction of equalities between variables implies one of them. For convex theories the exchange above is complete. Linear arithmetic over is convex; over it is not:

Together with the formula is unsatisfiable, yet no single equality is ever implied, so the exchange has nothing to send. Non-convex theories need case splitting: the procedure guesses an arrangement, a partition of the shared variables into equivalence classes, and the formula is satisfiable exactly when some arrangement is consistent with both pure parts. SMT solvers let the SAT layer do that guessing, by branching on the equalities between shared variables as if they were atoms.

Stable infiniteness is what makes the arrangement sufficient. Each part's model can be taken infinite and of the same cardinality, and then the two agree on which shared variables are equal, so they can be glued into one model of the union.

see also

further reading

  1. [1]G. Nelson, D. C. Oppen, “Simplification by cooperating decision procedures”, ACM TOPLAS 1 (1979).
  2. [2]D. C. Oppen, “Complexity, convexity and combinations of theories”, Theoretical Computer Science 12 (1980).
  3. [3]C. Tinelli, M. Harandi, “A new correctness proof of the Nelson–Oppen combination procedure”, FroCoS (1996).