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 #
Cslib.MCSP.encInstance: the encoding of instances.Cslib.MCSP.verifier: the verifier.Cslib.MCSP.tableVerifier: the verifier on the bits of a truth table and a threshold.
Main results #
Cslib.MCSP.mem_of_verifier_eq_true,Cslib.MCSP.exists_verifier_append: the verifier accepts some certificate exactly for the instances in MCSP, certificates of a fixed length suffice, and bits after them are ignored.Cslib.MCSP.isVerifier: the verifier is correct.Cslib.MCSP.computableTidilyInPolyTime_verifier,Cslib.MCSP.computableTidilyInPolyTime_tableVerifier: the verifiers are polynomial-time.Cslib.MCSP.mem_NP: MCSP is inNP.
References #
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
Correctness #
The polynomial bounding the length of certificates.
Instances For
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.
MCSP.verifier verifies MCSP, with certificates of length certPolynomial.
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
The verifier on raw data is polynomial-time.
The MCSP verifier is polynomial-time, on certificates of arbitrary length.
MCSP is in NP, for instances encoded by their truth table and the threshold in
binary.