Some NP and NP-Complete Problems 513
The input will be the certifi cate:
CIRCUIT-SAT = {< C >: C is a satisfi able Boolean circuit}.
Here < C > is some reasonable encoding of C.
A Boolean circuit is a circuit using AND, OR, and NOT gates connected by wires, that have multiple
inputs and a single output. The size of a Boolean circuit is the total number of gates and wires used in the
circuit. A circuit is satisfi able if there exists an assignment of truth values (false or true) to its inputs that
results in the circuit outputting a true.
CIRCUIT-SAT is NP-Complete
CIRCUIT-SAT is in NP, as for a given circuit one can verify in polynomial time if an assignment yields
output T. CIRCUITSAT is NP-hard, as any NP language L can be reduced to it as follows: ...