Documentation

Complexity.Computability.MCSP.Magnification

Hardness Magnification for MCSP via Circuit-Min-Merge #

Slightly superlinear circuit lower bounds for MCSP[s] (Cslib.GapMCSP.yesSet s) imply NP ⊄ P/poly and P ≠ NP McKay, Murray, and Williams, Lemma 3.1, Theorem 1.4 (third bullet), and Section 5.

Assuming NP ⊆ P/poly, the polynomial-hierarchy language CircuitMinMergeLanguage (Cslib.MCSP.CircuitMinMergeLanguage), adapted from Circuit-Min-Merge in [McKayMurrayWilliams2019, Section 2.1], has polynomial-size circuits: given two subcube circuit certificates w₀ and w₁ for the half-subcubes p ++ [false] and p ++ [true] of {0, 1} ^ n (rather than t intervals), it selects the Cslib.BitString.wordLt-least valid size-≤ s circuit certificate w of length certLength n s (rather than a minimum-size circuit) that agrees with w₀ on p ++ [false] and with w₁ on p ++ [true], together with a validity bit. Following the C = P/poly case of the proof of Theorem 1.4 (Section 5) combined with Lemma 3.1's merge-tree idea, composing this merge circuit across the 2 ^ n nodes of the full binary tree of subcubes of {0, 1} ^ n (rather than a d-ary tree with ℓ = s³) produces a circuit of size 2 ^ n · poly(n, s(n)) deciding the 2 ^ n-bit slice of GapMCSP.yesSet s (Cslib.MCSP.exists_complexity_yesSet_le_of_NP_subset_PPoly).

Taking the contrapositive magnifies 2 ^ n · poly(n, s(n)) circuit lower bounds for GapMCSP.yesSet s to NP ⊄ P/poly (Cslib.MCSP.not_NP_subset_PPoly_of_yesSet_hard) and, via P ⊆ P/poly, to P ≠ NP (Cslib.MCSP.P_ne_NP_of_yesSet_hard). Relative to [McKayMurrayWilliams2019, Theorem 1.4, third bullet], the NP ⊄ P/poly magnification statements incorporate four specializations:

  1. decision GapMCSP.yesSet s (MCSP[s]) instead of search-MCSP^A[s];
  2. no oracle (A = ∅);
  3. fan-in-2 De Morgan circuits counting all gates (Cslib.Circuits.Circuit.size);
  4. a size-only lower bound, whereas the paper assumes no circuits of simultaneous size N · poly(s) and depth poly(s). Specializations (1) and (4) strengthen the lower-bound hypothesis (a decision lower bound implies a search lower bound, and a size-only lower bound implies a combined size-and-depth lower bound), while (2) and (3) fix parameters allowed by the source (A ∈ PH), making the Lean theorem a special case.

Main definitions #

Main results #

References #

Lexicographic minimum on fixed-length bit lists #

Subcubes and child-agreement predicates #

def Cslib.MCSP.agreesOnPoint (n s : ℕ) (p w₀ w₁ w x : List Bool) :

Whether the candidate circuit w agrees at point x in the subcube p (tested by p.isPrefixOf x) with the child certificate w₀ (if x[p.length] = false) or w₁ (if x[p.length] = true).

Instances For
    def Cslib.MCSP.AgreesWithChildren (n s : ℕ) (p w₀ w₁ w : List Bool) :

    Whether the candidate circuit w agrees on the subcube p with the child certificates w₀ (on p ++ [false]) and w₁ (on p ++ [true]) at every n-bit input.

    Instances For
      def Cslib.MCSP.IsMergedCert (n s : ℕ) (p w₀ w₁ w : List Bool) :

      w is a canonical certificate of length certLength n s encoding a valid size-s circuit on n inputs that agrees with w₀ on p ++ [false] and with w₁ on p ++ [true].

      Instances For
        def Cslib.MCSP.IsMinMergedCert (n s : ℕ) (p w₀ w₁ w : List Bool) :

        w is the lexicographically smallest (BitString.wordLt) certificate satisfying IsMergedCert n s p w₀ w₁.

        Instances For

          CircuitMinMergeLanguage and nonuniform quantifier elimination #

          The width certLength n s + 1 of a child state vector (ok, w), consisting of one validity bit followed by a certificate of length certLength n s.

          Instances For
            @[reducible, inline]

            The fixed parameters ((n, s), (p, j)) of a query to CircuitMinMergeLanguage: arity n and size bound s in unary, subcube prefix p, and output bit index j in unary.

            Instances For

              Encoding of MergeHeader with n, s, j in unary and p as raw bits.

              Instances For
                @[reducible, inline]

                An input (((n, s), (p, j)), v) to CircuitMinMergeLanguage, where v concatenates the two child state vectors (ok₀, w₀) and (ok₁, w₁) of width stateWidth n s.

                Instances For

                  Encoding of MergeInput as encPair encHeader encBits, so encMerge (hdr, v) = frame (encHeader hdr) ++ v.

                  Instances For

                    Extract the left child validity bit ok₀ from a MergeInput.

                    Instances For

                      Extract the left child certificate w₀ of length certLength n s from a MergeInput.

                      Instances For

                        Extract the right child validity bit ok₁ from a MergeInput.

                        Instances For

                          Extract the right child certificate w₁ of length certLength n s from a MergeInput.

                          Instances For

                            The CircuitMinMergeLanguage decision problem, adapted from Circuit-Min-Merge in [McKayMurrayWilliams2019, Section 2.1]: given parameters ((n, s), (p, j)) and concatenated child states v representing (ok₀, w₀) and (ok₁, w₁) for the two half-subcubes p ++ [false] and p ++ [true] (rather than t intervals), accepts when ok₀ = true, ok₁ = true, and there is a BitString.wordLt-least valid size-≤ s merged certificate w (IsMinMergedCert n s p w₀ w₁ w, rather than a minimum-size circuit) whose j-th output bit (true at j = 0, and bit j - 1 of w at j > 0) is true.

                            Instances For

                              Under NP ⊆ P/poly, CircuitMinMergeLanguage has polynomial-size circuits. Since CircuitMinMergeLanguage is defined by bounded existential and universal quantifiers over polynomial-time predicates, nonuniform quantifier elimination puts it in PPolyOn encMerge [McKayMurrayWilliams2019, Section 2.1 and Section 5 (proof of Theorem 1.4)].

                              Subcube certificates and semantic tree synthesis #

                              w is a canonical certificate of length certLength n s encoding a valid size-s circuit on n inputs that computes f on every point in the subcube p (tested via p.isPrefixOf).

                              Instances For

                                w is the lexicographically smallest (BitString.wordLt) certificate satisfying IsSubcubeCert n s f p.

                                Instances For
                                  noncomputable def Cslib.MCSP.subcubeState (n s : ℕ) (f : BooleanFunction n) (p : List Bool) :

                                  The stateWidth n s-bit state vector of subcube p for f: bit 0 records whether a size-s circuit certificate exists for f on p, and bits 1 .. certLength n s record the lexicographically smallest such certificate (or all false if none exists).

                                  Instances For

                                    Main theorems: MMW19 circuit upper bound and hardness magnification #

                                    McKay–Murray–Williams circuit upper bound for MCSP[s] under NP ⊆ P/poly [McKayMurrayWilliams2019, Lemma 3.1 and Section 5 (proof of Theorem 1.4, C = P/poly case)]: if NP ⊆ P/poly, then there is a constant c > 0 such that for every size schedule s : ℕ → ℕ and every n, the 2 ^ n-bit slice of GapMCSP.yesSet s has circuit complexity at most 2 ^ n * c * (n + s n + 1) ^ c. The proof composes the P/poly circuit for CircuitMinMergeLanguage across a binary merge tree over the 2 ^ n subcubes of {0, 1} ^ n (rather than a d-ary tree with ℓ = s³).

                                    McKay–Murray–Williams circuit upper bound for MCSP[n ^ k] under NP ⊆ P/poly [McKayMurrayWilliams2019, Lemma 3.1 and Section 5 (proof of Theorem 1.4, C = P/poly case)]: if NP ⊆ P/poly, then for every degree k, there is c > 0 such that the 2 ^ n-bit slice of GapMCSP.yesSet (fun m => m ^ k) has circuit complexity at most 2 ^ n * c * (n + 1) ^ c.

                                    Hardness magnification for MCSP[s] against NP ⊆ P/poly [McKayMurrayWilliams2019, Theorem 1.4, third bullet]: if for every c > 0 there exist a schedule s and input arity n such that the 2 ^ n-bit slice of GapMCSP.yesSet s requires more than 2 ^ n * c * (n + s n + 1) ^ c gates, then NP ⊄ P/poly.

                                    Relative to the paper's statement, this specializes search-MCSP^A[s] to decision GapMCSP.yesSet s (MCSP[s]), sets A = ∅, uses fan-in-2 De Morgan circuits counting all gates, and assumes a size-only lower bound rather than a combined size-and-depth lower bound.

                                    Hardness magnification for MCSP[s] to P ≠ NP: if for every c > 0 there exist a schedule s and input arity n such that the 2 ^ n-bit slice of GapMCSP.yesSet s requires more than 2 ^ n * c * (n + s n + 1) ^ c gates, then P ≠ NP.

                                    This follows immediately from not_NP_subset_PPoly_of_yesSet_hard ([McKayMurrayWilliams2019, Theorem 1.4, third bullet]) and P ⊆ P/poly (P_subset_PPolyOn).

                                    Hardness magnification for MCSP[n ^ k] against NP ⊆ P/poly [McKayMurrayWilliams2019, Theorem 1.4, third bullet]: if for some k and every c > 0, there is n such that the 2 ^ n-bit slice of GapMCSP.yesSet (fun m => m ^ k) requires more than 2 ^ n * c * (n + 1) ^ c gates, then NP ⊄ P/poly.

                                    Relative to the paper's statement, this specializes search-MCSP^A[s] to decision GapMCSP.yesSet (MCSP[n ^ k]), sets A = ∅, uses fan-in-2 De Morgan circuits counting all gates, and assumes a size-only lower bound rather than a combined size-and-depth lower bound.

                                    Hardness magnification for MCSP[n ^ k] to P ≠ NP: if for some k and every c > 0, there is n such that the 2 ^ n-bit slice of GapMCSP.yesSet (fun m => m ^ k) requires more than 2 ^ n * c * (n + 1) ^ c gates, then P ≠ NP.

                                    This follows immediately from not_NP_subset_PPoly_of_yesSet_pow_hard ([McKayMurrayWilliams2019, Theorem 1.4, third bullet]) and P ⊆ P/poly (P_subset_PPolyOn).