In mathematical logic, Craig's interpolation theorem is a result about the relationship between different logical theories. Roughly stated, the theorem says that if a formula ÃÂ implies a formula ÃÂ, and the two have at least one atomic variable symbol in common, then there is a formula ÃÂ, called an interpolant, such that every non-logical symbol in ÃÂ occurs both in ÃÂ and ÃÂ, ÃÂ implies ÃÂ, and ÃÂ implies ÃÂ. The theorem was first proved for first-order logic by William Craig in 1957. Variants of the theorem hold for other logics, such as propositional logic. A stronger form of Craig's interpolation theorem for first-order logic was proved by Roger Lyndon in 1959; the overall result is sometimes called the Craig–Lyndon theorem.
In propositional logic, let
Then tautologically implies . This can be verified by writing in conjunctive normal form:
Thus, if holds, then holds.
In turn, tautologically implies . Because the two propositional variables occurring in occur in both and , this means that is an interpolant for the implication .
Suppose that S and T are two first-order theories. As notation, let S ⪠T denote the smallest theory including both S and T; the signature of S ⪠T is the smallest one containing the signatures of S and T. Also let S ⩠T be the intersection of the languages of the two theories; the signature of S ⩠T is the intersection of the signatures of the two languages.
Lyndon's theorem says that if S ⪠T is unsatisfiable, then there is an interpolating sentence àin the language of S â© T that is true in all models of S and false in all models of T. Moreover, àhas the stronger property that every relation symbol that has a positive occurrence in àhas a positive occurrence in some formula of S and a negative occurrence in some formula of T, and every relation symbol with a negative occurrence in àhas a negative occurrence in some formula of S and a positive occurrence in some formula of T.
We present here a constructive proof of the Craig interpolation theorem for propositional logic.
Since the above proof is constructive, one may extract an algorithm for computing interpolants. Using this algorithm, if n = |atoms(ÃÂ') â atoms(ÃÂ)|, then the interpolant àhas O(exp(n)) more logical connectives than à(see Big O Notation for details regarding this assertion). Similar constructive proofs may be provided for the basic modal logic K, intuitionistic logic and ü-calculus, with similar complexity measures.
Craig interpolation can be proved by other methods as well. However, these proofs are generally non-constructive:
Craig interpolation has many applications, among them consistency proofs, model checking, proofs in modular specifications, modular ontologies.