In Chapter 2 we saw that if there is any NP language that cannot be computed by polynomial-sized circuits, then NP ≠ P. Thus proving circuit lower bounds is a potential approach for proving NP ≠ P. Furthermore, there is a reason to hope that this is a viable approach, since the Karp-Lipton Theorem (Theorem 6.19) shows that if the polynomial hierarchy PH does not collapse, then there exists an NP language that does not have polynomial size circuits.
In the 1970s and 1980s, many researchers came to believe that proving circuit lower bounds represented the best route to resolving P versus NP, since circuits seem easier to reason about than Turing machines. The success in this endeavor was mixed.
Progress on general circuits has been almost nonexistent: a lower bound of n is trivial for any function that depends on all its input bits. We are unable to prove even a superlinear circuit lower bound for any NP problem–the best we can do after years of effort is 5n – o(n).
To make life (comparatively) easier, researchers focused on restricted circuit classes, and were successful in proving some good lower bounds. We prove some of the major results of this area, specifically, for bounded depth circuits (Section 14.1), bounded depth circuits with “counting” gates (Section 14.2), and monotone circuits (Section 14.3). In all these results we have a notion of “progress” of the computation. We show that small circuits simply cannot achieve the amount of progress necessary to compute the output from the inputs.