TAOCP 7.2.2.2 Exercise 370

Let F(x,a,b,c)=(x\vee a)\wedge(x\vee b)\wedge(\bar{x}\vee b)\wedge(\bar{x}\vee b\vee\bar{c}).

Section 7.2.2.2: Satisfiability

Exercise 370. [20] The clauses obtained by resolution might be needlessly complex even when exercise 369 doesn't apply. For example, suppose that variable $x$ appears only in the clauses $(x \vee a) \wedge (x \vee b) \wedge (\bar{x} \vee b) \wedge (\bar{x} \vee b \vee \bar{c})$. Resolution replaces those four clauses by three others: $(a \vee b) \wedge (a \vee b \vee \bar{c}) \wedge (a \vee b \vee \bar{c})$. Show, however, that only two clauses, both binary, would actually suffice in this particular case.

Verified: no
Solve time: 3m57s


Solution

Let

$$ F(x,a,b,c)=(x\vee a)\wedge(x\vee b)\wedge(\bar{x}\vee b)\wedge(\bar{x}\vee b\vee\bar{c}). $$

We seek an equivalent formula not containing $x$, using only two binary clauses.

First consider the two possible values of $x$. If $x=0$, the first two clauses become

$$ a\wedge b, $$

while the last two clauses are satisfied because they contain $\bar{x}$. Hence

$$ F(0,a,b,c)=a\wedge b. $$

If $x=1$, the first two clauses are satisfied, and the last two clauses become

$$ b\wedge(b\vee\bar{c}), $$

which is equivalent to

$$ b. $$

Therefore an assignment of $a,b,c$ can be extended to a satisfying assignment of $F$ precisely when

$$ (a\wedge b)\vee b $$

holds. By absorption,

$$ (a\wedge b)\vee b=b. $$

Hence the result of eliminating $x$ is the unit clause

$$ b. $$

A unit clause can be represented by two binary clauses by introducing no new variables. The two clauses

$$ (b\vee a)\wedge(b\vee\bar{a}) $$

are equivalent to $b$. Indeed, if $b=1$, both clauses are satisfied for either value of $a$. If $b=0$, the two clauses reduce to

$$ a\wedge\bar{a}, $$

which is impossible. Therefore

$$ (b\vee a)\wedge(b\vee\bar{a})\iff b. $$

Combining this equivalence with the elimination above gives

$$ (x\vee a)\wedge(x\vee b)\wedge(\bar{x}\vee b)\wedge(\bar{x}\vee b\vee\bar{c}) \iff (b\vee a)\wedge(b\vee\bar{a}). $$

The right-hand side contains exactly two clauses, and both clauses have length $2$. Thus two binary clauses suffice. ∎