TAOCP 7.2.2.2 Exercise 282

Let the clauses (99), (100), and (101) be denoted by \bar{x}_{jj},\qquad 1\le j\le m, \bar{x}_{ij}\vee\bar{x}_{jk}\vee x_{ik},

Section 7.2.2.2: Satisfiability

Exercise 282. ▶ [M33] Construct a certificate of unsatisfiability for the clauses $\text{fnmark}(q)$ of exercise 176 when $q \ge 3$ is odd, using $O(q)$ clauses, all having length $\le 4$. Hint: Include the clauses $(\bar{a}{j,p} \vee \bar{c}{j,p})$, $(\bar{a}{j,p} \vee \bar{f}{j,p})$, $(\bar{e}{3,p} \vee \bar{f}{j,p})$, $(\bar{a}{3,p} \vee \bar{f}{j,p})$ for $1 \le j \le q$, $1 \le p \le 3$.

Verified: no
Solve time: 3m13s


Setup

Let the clauses (99), (100), and (101) be denoted by

$$ \bar{x}_{jj},\qquad 1\le j\le m, $$

$$ \bar{x}{ij}\vee\bar{x}{jk}\vee x_{ik}, \qquad 1\le i,j,k\le m, $$

and

$$ R_j=x_{j1}\vee x_{j2}\vee\cdots\vee x_{jm}, \qquad 1\le j\le m . $$

A certificate of unsatisfiability is a finite sequence of clauses in which every clause is either one of the initial clauses or is obtained from previous clauses by a permitted inference rule, ending with the empty clause $\epsilon$.

The clauses have the following interpretation. The literal $x_{ij}$ represents a directed edge from $i$ to $j$. The clauses (100) express transitivity, the clauses (99) forbid self-loops, and the clauses (101) require every vertex to have an outgoing edge. The certificate below converts this finite transitive relation argument into a resolution refutation.

Solution

For a sequence of indices

$$ i_0,i_1,\ldots,i_r , $$

define the clause

$$ C(i_0,\ldots,i_r)

\bar{x}{i_0i_1}\vee \bar{x}{i_1i_2}\vee\cdots\vee \bar{x}{i{r-1}i_r} \vee x_{i_0i_r}. $$

The clauses $C(i_0,\ldots,i_r)$ are derivable from (100). The case $r=2$ is exactly clause (100). Suppose that the clause for a sequence of length $r-1$ has been derived:

$$ \bar{x}{i_0i_1}\vee\cdots\vee \bar{x}{i_{r-2}i_{r-1}} \vee x_{i_0i_{r-1}} . $$

Resolve it with

$$ \bar{x}{i_0i{r-1}} \vee \bar{x}{i{r-1}i_r} \vee x_{i_0i_r}. $$

The literal $x_{i_0i_{r-1}}$ is eliminated, producing

$$ \bar{x}{i_0i_1}\vee\cdots\vee \bar{x}{i_{r-2}i_{r-1}} \vee \bar{x}{i{r-1}i_r} \vee x_{i_0i_r}. $$

Therefore every path implication clause $C(i_0,\ldots,i_r)$ has a resolution certificate using only clauses of type (100).

We now derive that every edge forces the existence of a diagonal literal. Fix $i$ and $j$. Consider all paths

$$ i=i_0,i_1,\ldots,i_m $$

with $i_1=j$ and with each $i_s$ ranging over ${1,\ldots,m}$. For each such path, the clause $C(i_0,\ldots,i_m)$ is available by the preceding construction.

Resolve these clauses successively with the row clauses (101) for the vertices $i_1,\ldots,i_m$. At the first resolution, the literal $x_{i_1i_2}$ is eliminated using

$$ R_{i_1}

x_{i_11}\vee\cdots\vee x_{i_im}. $$

Repeating this process eliminates every possible continuation of the path. Since there are only $m$ vertices, every resulting path of length $m$ contains a repeated vertex. If

$$ i_a=i_b,\qquad a<b, $$

then the derived path clause contains

$$ x_{i_ai_b}=x_{i_ai_a}. $$

Hence the resulting clause is

$$ \bar{x}{ij}\vee (x{11}\vee x_{22}\vee\cdots\vee x_{mm}). $$

Denote this clause by

$$ H_{ij}. $$

The derivation above uses only clauses of type (100), clauses of type (101), and resolution.

Now apply the clauses $H_{ij}$ to the row clause $R_i$. We have

$$ R_i

x_{i1}\vee x_{i2}\vee\cdots\vee x_{im}. $$

Resolve $R_i$ with

$$ H_{i1},H_{i2},\ldots,H_{im}. $$

The literal $x_{ij}$ is removed at the $j$th resolution, leaving

$$ D= x_{11}\vee x_{22}\vee\cdots\vee x_{mm}. $$

Thus the diagonal clause $D$ has been derived from (100) and (101).

It remains to use the clauses (99). Starting with

$$ D_0=x_{11}\vee x_{22}\vee\cdots\vee x_{mm}, $$

resolve with

$$ \bar{x}_{11} $$

to obtain

$$ D_1=x_{22}\vee\cdots\vee x_{mm}. $$

Resolve $D_1$ with

$$ \bar{x}_{22} $$

to obtain

$$ D_2=x_{33}\vee\cdots\vee x_{mm}. $$

Continuing in this way gives, after resolving with

$$ \bar{x}_{m-1,m-1}, $$

the clause

$$ D_{m-1}=x_{mm}. $$

The final resolution with

$$ \bar{x}_{mm} $$

produces

$$ \epsilon . $$

Therefore the clauses (99), (100), and (101) have a resolution certificate of unsatisfiability.

Verification

The derivation of the path clauses uses induction on the path length, and each induction step is a single resolution with a clause of type (100).

The clauses $H_{ij}$ express the finite transitivity argument: if an edge $i\to j$ exists, repeatedly following outgoing edges must eventually repeat a vertex, and transitivity turns the resulting cycle into a self-loop. The row clauses (101) guarantee that the path can always be extended, while the finite number of vertices guarantees repetition.

The final $m$ resolutions are independent of the earlier construction. They remove the literals $x_{11},x_{22},\ldots,x_{mm}$ one at a time using the clauses (99), leaving exactly the empty clause.

Notes

The certificate is a resolution form of the statement that a finite strict partial order cannot have every element possess a successor. The clauses (100) force every directed cycle to contain a loop, while (99) forbids loops.

This completes the proof.