Show that if 3CNF polynomial-size compiles into a classCthat is nice, then PH = Σp

Computational ComplexityTake-home examHand in via Canvas before March 31 at 17:00Definition 1.We say that a classCof propositional formulas isniceif it has the following property:•There is a polynomial-time algorithm that—given a formulaφ∈ C, a positive integerk∈N, anda partial truth assignmentαto (some of) the variables in Var(φ)—correctly decides if there existsa truth assignmentβ: Var(φ)→ {0,1}that (i) extendsα, (ii) satisfiesφ, and (iii) that sets atleastkvariables among Var(φ) to true.Exercise 1(6pt; a:112pt, b:112pt, c:112pt, d:112pt).(a) Show that if the class of all 2CNF formulas is nice, then P = NP.(b) Specify a classCof propositional formulas that is nice, and such that for every (arbitrary) propo-sitional formulaφ, there exists someψ∈Cthat is logically equivalent toφ. Prove that this is thecase.In the rest of this exercise, we will show that the class of all propositional 3CNF formulas does notpolynomial-size compile into any nice classC, unless the PH collapses.Definition 2.LetC1,C2be two classes of propositional formulas. The classC1polynomial-size compilesintoC2if there exists a polynomialp:N→Nsuch that for everyφ∈ C1there exists af(φ)∈ C2thatis logically equivalent toφand for which holds|f(φ)|≤p(|φ|). Note that there are no requirements onthe running time to computef(φ).Consider the following family{φn}n∈Nof propositional formulas, where eachφncontains variablesin{xi,xi,j|1≤i < j≤n}, and is defined as follows:φn=∧1≤i<j≤n(¬xi,j∨¬xi∨¬xj)(c) LetCbe a class of propositional formulas that is nice. Suppose that there exists a polynomialp:N→Nand a family{ψn}n∈Nof propositional formulas such that for eachn∈N: (i)ψn∈ C,(ii)ψnis logically equivalent toφn, and (iii)|ψn|≤p(n).Show that then there exists a polynomial-time algorithm that—given a graphG= (V,E) withnvertices, an integerk∈N, and the formulaψn—decides ifGhas a clique of sizek.(d) Show that if 3CNF polynomial-size compiles into a classCthat is nice, then PH = Σp2.Hint:use the answer that you gave for(c).1