1

I am following the Barak and Arora book, in circuit chapter, they use direct reduction from $\texttt{CKT-SAT}$ to $\texttt{3SAT}$ directly without any clue.

How to construct an explicit reduction from the language $\texttt{CKT-SAT}$ to the language $\texttt{3SAT} ?$

Where: $$\text{CKT-SAT}= \left\{\langle C_n \rangle:\text{$C_n$ is a Boolean circuit and $\exists x\in \{0,1\}^n$ s.t.$ C_n(x)=1$}\right\}.$$

My thoughts: Convert $C_n$ into a 3-CNF (3-Clause Normal Form) formula $\phi$ such that $\phi$ is satisfiable if and only if $C_n$ is satisfiable. For each gate in the circuit (AND, OR, NOT), introduce fresh Boolean variables to represent the output of each gate. After then how to approach?

1 Answers1

2

The procedure you describe in the last paragraph is called Tseytin transformation. The wikipedia article also provides an example of its application on a circuit. Clearly, as every rule produces only clauses of at most $3$ literals, the resulting formula is an instance of 3-SAT, which means the reduction is complete.

For every $k$ fan-out gate we need to introduce $k$ new variables. $k$ is bounded with $\mathcal O(n)$ and the number of gates also is bounded with $\mathcal O(n)$, which means we need at most $\mathcal O(n^2)$ new variables. This produces a formula of size $\mathcal O(n^2)$. Each application of the rule requires $\mathcal O(1)$ time, as we just work with 2 (or 1 for NOT gate) inputs and the new variable. The total runtime of this algorithm is therefore $\mathcal O(n^2)$.

rus9384
  • 2,111
  • 12
  • 17