Documentation

Complexity.Computability.MCSP.PartialNP

Partial MCSP (MCSP*) is in NP #

We define standard string encodings for instances of the Partial Minimum Circuit Size Problem (Cslib.PartialMCSP.Instance) and prove that PartialMCSP belongs to NP under both encodings:

A certificate for PartialMCSP is a circuit with at most MCSP.budget n s gates, in the format of Cslib.Circuits.Boolean.readCertificate, since any partial truth table on n variables can be extended to a total Boolean function x.completion of complexity at most $2^n (2 n + 3) + 1$ (complexity_le_two_pow_mul_add_one). The verifier evaluates the decoded circuit on every input $y \in \{0, 1\}^n$ and checks that whenever the partial truth table specifies some b at y, the circuit outputs b.

We also prove that the embedding PartialMCSP.Instance.ofTotal : MCSP.Instance → PartialMCSP.Instance is computable in polynomial time (computableInPolyTime_ofTotal_encBinary), giving a polynomial-time many-one reduction from MCSP to PartialMCSP (polyTimeReducible_MCSP_PartialMCSP_encBinary).

Main definitions #

Main results #

References #

The raw data of a partial MCSP instance as a truth table list and a threshold.

Instances For

    Instances of PartialMCSP encoded by the framed list of Option Bool truth-table entries followed by the threshold in unary [Hirahara2022, ECCC TR22-119, Definition 8.4, p. 30].

    Instances For

      Instances of PartialMCSP encoded by the framed list of Option Bool truth-table entries followed by the threshold in binary [Ilango2020FOCS, Section II.B; ECCC TR20-183, Section 2.2].

      Instances For

        The entry of a partial truth-table list at the input with bits y (none if out of bounds).

        Instances For

          The verifier reads the partial function of an instance from its truth table.

          The verifier for PartialMCSP: the certificate must describe a circuit on n inputs with at most MCSP.budget n s gates (readCertificate) whose output agrees with the partial truth table on all defined entries among the 2 ^ n inputs.

          Instances For

            Correctness #

            Soundness of the verifier. An instance with an accepted certificate, of any length, is in PartialMCSP.

            Completeness of the verifier. Every instance in PartialMCSP has a certificate of length certLength x.arity (MCSP.budget x.arity x.threshold) that is accepted whatever bits follow it.

            Polynomial time #

            The verifier on a raw partial truth-table list, a threshold, and a certificate, with the number of inputs read from the length of the table.

            Instances For

              Re-encoding a PartialMCSP.Instance from unary threshold encoding (enc) to binary threshold encoding (encBinary) is computable in polynomial time.

              PartialMCSP is in NP under PartialMCSP.enc (framed Option Bool truth table and unary threshold) [Hirahara2022, ECCC TR22-119, Definition 8.4, p. 30].

              PartialMCSP is in NP under PartialMCSP.encBinary (framed Option Bool truth table and binary threshold) [Ilango2020FOCS, Section II.B; ECCC TR20-183, Section 2.2].

              Polynomial-time reduction from MCSP to PartialMCSP #

              Embedding a total MCSP.Instance as a PartialMCSP.Instance with no * entries is computable in polynomial time.