Documentation

Complexity.Computability.MCSP.NP

MCSP is in NP #

An instance of the Minimum Circuit Size Problem (Cslib.MCSP) is encoded by the 2 ^ n bits of its truth table followed by the threshold in binary (Cslib.MCSP.encInstance); the length of the table determines n. The problem is in NP for this encoding (Cslib.MCSP.mem_NP) Kabanets and Cai: a certificate is a circuit with at most as many gates as the threshold, in the format of Cslib.Circuits.Boolean.readCertificate, and the verifier checks that it is a circuit and evaluates it on all 2 ^ n inputs. The threshold may be exponentially larger than the table; certificates are capped at the truth-table bound 2 ^ n (2 n + 3) + 1, which every function on n inputs meets (Cslib.Circuits.Boolean.complexity_le_two_pow_mul_add_one), so they stay polynomially long in the length of the table.

Main definitions #

Main results #

References #

Instances of MCSP encoded by the bits of the truth table, then the threshold in binary.

Instances For

    The number of gates a certificate may describe: the threshold, capped at the truth-table bound that every function meets.

    Instances For

      The value of the function of an instance at the input with bits y.

      Instances For

        The verifier for MCSP: the certificate must describe a circuit on n inputs with at most budget n s gates (readCertificate) that agrees with the truth table on all 2 ^ n inputs.

        Instances For

          Correctness #

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

          The polynomial bounding the length of certificates.

          Instances For

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

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

            Polynomial time #

            The verifier on the bits of a truth table, a threshold and a certificate, with the number of inputs read from the length of the table: MCSP.verifier on raw data (Cslib.MCSP.verifier_eq_tableVerifier), defined on every list of bits.

            Instances For

              MCSP is in NP, for instances encoded by their truth table and the threshold in binary.