Philosophy:Resolution proof compression by splitting

From HandWiki

In mathematical logic, proof compression by splitting is an algorithm that operates as a post-process on resolution proofs. It was proposed by Scott Cotton in his paper "Two Techniques for Minimizing Resolution Proof".[1] The Splitting algorithm is based on the following observation:

Given a proof of unsatisfiability π and a variable x, it is easy to re-arrange (split) the proof in a proof of x and a proof of ¬x and the recombination of these two proofs (by an additional resolution step) may result in a proof smaller than the original.

Note that applying Splitting in a proof π using a variable x does not invalidates a latter application of the algorithm using a differente variable y. Actually, the method proposed by Cotton[1] generates a sequence of proofs π1π2…, where each proof πi+1 is the result of applying Splitting to πi. During the construction of the sequence, if a proof πj happens to be too large, πj+1 is set to be the smallest proof in {π1,π2,…,πj}.

For achieving a better compression/time ratio, a heuristic for variable selection is desirable. For this purpose, Cotton[1] defines the "additivity" of a resolution step (with antecedents p and n and resolvent r):

add⁡(r):=max⁡(|r|−max⁡(|p|,|n|),0)

Then, for each variable v, a score is calculated summing the additivity of all the resolution steps in π with pivot v together with the number of these resolution steps. Denoting each score calculated this way by add(v,π), each variable is selected with a probability proportional to its score:

p(v)=add⁡(v,πi)∑xadd⁡(x,πi)

To split a proof of unsatisfiability π in a proof πx of x and a proof π¬x of ¬x, Cotton [1] proposes the following:

Let l denote a literal and p⊕xn denote the resolvent of clauses p and n where x∈p and ¬x∈n. Then, define the map πl on nodes in the resolution dag of π:

πl(c):={c,if c is an inputπl(p),if c=p⊕xn and (l=x or x∉πl(p))πl(n),if c=p⊕xn and (l=¬x or ¬x∉πl(n))πl(p)⊕xπl(p),if x∈πl(p) and ¬x∈πl(n)

Also, let o be the empty clause in π. Then, πx and π¬x are obtained by computing πx(o) and π¬x(o), respectively.

Notes

  1. ↑ 1.0 1.1 1.2 1.3 Cotton, Scott. "Two Techniques for Minimizing Resolution Proofs". 13th International Conference on Theory and Applications of Satisfiability Testing, 2010.