TAOCP 7.2.2.2 Exercise 372

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 372. [25] Find a "small" set of clauses that cannot be solved entirely via transformations 1–4 and the use of exercise 369.

Verified: no
Solve time: 3m49s


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. ∎