wiki

Craig interpolation

If A implies B, there is a formula I using only the symbols A and B share, with A implying I and I implying B. In verification the equivalent form is used: when A and B are jointly unsatisfiable, an interpolant is implied by A, inconsistent with B, and mentions only shared variables. For propositional logic one can be read off a resolution refutation in linear time.

In the refutation form, for unsatisfiable, an interpolant satisfies

Craig proved existence for first-order logic in 1957.[1] In the propositional case there are two explicit ones. Quantifying away the variables that occur only in gives the strongest interpolant, , and quantifying away those only in gives the weakest, . Both can be exponentially large, so in practice interpolants are computed from proofs.

McMillan's system labels each clause of a resolution refutation of with a partial interpolant :[3]

where is the disjunction of the literals of whose variables occur in . The label of the empty clause is an interpolant, found in one pass over the proof and linear in its size.

Take and , which share only :

A refutation and its labels.

clause from label
a A false a does not occur in B
~a | b A b
b resolve on a false | b a occurs only in A
~b | c B true
~c B true
~b resolve on c true & true c occurs in B
(empty) resolve on b b & true b is shared

The interpolant is : implies it, it contradicts , and it is the only variable they share.

In model checking, encodes the initial states and the first transition, and the remaining transitions up to a bad state. When the bounded check is unsatisfiable, the interpolant over-approximates the states reachable in one step while still excluding every path to a bad state. Replacing the initial states by it and repeating either reaches a fixed point, which is an inductive invariant proving the property, or produces a real counterexample when the bound is increased. SMT solvers compute interpolants for theories the same way, from their refutations.

see also

further reading

  1. [1]W. Craig, “Linear reasoning. A new form of the Herbrand–Gentzen theorem”, Journal of Symbolic Logic 22 (1957).
  2. [2]P. Pudlák, “Lower bounds for resolution and cutting plane proofs and monotone computations”, Journal of Symbolic Logic 62 (1997).
  3. [3]K. L. McMillan, “Interpolation and SAT-based model checking”, CAV (2003).