# Lecture 2

Today’s lecture was split into two. In the first part we learned the very basics of the Polynomial Hierarchy, introduced by Meyer and Stockmeyer ’72. For that we followed chapter 5 from Arora-Barak book. We saw that each level of PH has a complete language, though PH itself does not have such a language unless PH collapses (to some level). As a corollary, we proved that PH \neq PSPACE unless the polynomial hierarchy collpases. We briefly mentioned the language TQBF which is complete for PSPACE, and in fact, also for NPSPACE (and thus PSPACE = NPSPACE). We finished by mentioning an equivalent definition of the levels of PH using oracles, namely, Sigma_{i+1}^p = NP^{Sigma_i^p} (see Theorem 5.12 from Arora-Barak book). We will see another equivalent definition in terms of circuits, due to Papadimitriou and Yannakakis ’82, next time.

One neat application of the polynomial hierarchy, which we skipped completely, is a result regarding time/space tradeoff for SAT, first studied by Fortnow ’97. The goal of this problem is to prove that SAT cannot be solved in time n^a and space n^b simultaniously, for constants a,b. Theorem 5.11 in Arora-Barak book shows this for a=1.2, b=0.2. See a recent paper by Samuel R. Buss and Ryan Williams, and references therein. This paper, as well as some related papers, will be added to the list of papers for the end of the semester talks.

In the second part of the lecture we defined circuits, following chapter 6 of Arora-Barak book. We saw that every function on n inputs can be computed by a circuit with size n 2^n, and that most functions require 2^n / n size circuits. In fact, the latter expression is the “right” one. In 1958 Lupanov proved that every boolean function on n variables can be computed by a circuit with size (1+alpha_n) 2^n / n, where alpha_n ~ log n / n. Check out Theorem 1.15 from the wonderful recent book by Stasys Jukna. The size hierarchy theorem is Theorem 4.3 in that book.

We then defined the “P of circuits”, namely, P/poly, and proved that P is contained in P/poly (Theorem 6.6 in Arora Barak book). Thus, showing that NP is not contained in P/poly would separate P from NP. This kind of results are called circuit lower bounds, as we want to prove a lower bound on the size of (a family of) circuits that compute a language in some class (NP in this case). This approach seems to overcome the relativizing barrier we saw last time, as circuits are more amendable to white-box inquiry than Turing machines.

It is conjectured that NP should not be contained in P/poly. For one, the vast majority of functions require exponential-size circuits. What are the chances that the entire NP sits in this tiny corner of polynomial-size circuits? (but who knows, P does..) We will see other results next time that supports this conjecture. As mentioned in class, we currently don’t even know how to prove that NEXP is not contained in P/poly (or even the potentially larger class EXP^NP). We do know to prove that NEXP^NP is not contained in P/poly, and in fact, something stronger, though we do not have enough theory to describe the result at this point.

Another attempt is to look at sub-classes of P/poly (e.g., constant depth circuits), and indeed, in this course we will prove that some sub-class of P/poly, which we will meet next time, (called ACC^0) does not contain NEXP. This is a cutting-edge result proved by Ryan Williams. (in the course we will follow a web addendum for Arora Barak book).