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:
Cslib.PartialMCSP.enc: encodes the $2^n$-entry truth table overOption BoolusingencList (encOption encBool)followed by the threshold in unary (encUnary), matching [Hirahara2022, ECCC TR22-119, Definition 8.4, p. 30].Cslib.PartialMCSP.encBinary: encodes the $2^n$-entry truth table overOption BoolusingencList (encOption encBool)followed by the threshold in binary (encNat), matchingCslib.MCSP.encInstanceand [Ilango2020FOCS, Section II.B; ECCC TR20-183, Section 2.2].
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 #
Cslib.PartialMCSP.toRaw: raw data of an instance as a truth table list and a threshold.Cslib.PartialMCSP.enc: encoding ofPartialMCSP.Instancewith unary threshold.Cslib.PartialMCSP.encBinary: encoding ofPartialMCSP.Instancewith binary threshold.Cslib.PartialMCSP.tableEntry: lookup of an input bitstring in a partial truth-table list.Cslib.PartialMCSP.verifier,Cslib.PartialMCSP.tableVerifier: the NP verifiers.
Main results #
Cslib.PartialMCSP.mem_of_verifier_eq_true,Cslib.PartialMCSP.exists_verifier_append: soundness and padded completeness ofPartialMCSP.verifier.Cslib.PartialMCSP.isVerifier,Cslib.PartialMCSP.isVerifier_encBinary: verifier correctness.Cslib.PartialMCSP.computableInPolyTime_tableEntry: table entry lookup is polynomial-time.Cslib.PartialMCSP.computableInPolyTime_id_enc_encBinary: re-encoding from unary (enc) to binary (encBinary) threshold is polynomial-time.Cslib.PartialMCSP.computableInPolyTime_verifier,Cslib.PartialMCSP.computableInPolyTime_verifier_encBinary: plain polynomial-time certificates for the verifiers.Cslib.PartialMCSP.mem_NP,Cslib.PartialMCSP.mem_NP_encBinary:PartialMCSP ∈ NP.Cslib.PartialMCSP.computableInPolyTime_ofTotal_encBinary,Cslib.PartialMCSP.polyTimeReducible_MCSP_PartialMCSP_encBinary: polynomial-time reduction fromMCSPtoPartialMCSP.
References #
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 #
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.
PartialMCSP.verifier verifies PartialMCSP under enc (unary threshold).
PartialMCSP.verifier verifies PartialMCSP under encBinary (binary threshold).
Polynomial time #
Looking up an entry in a partial truth table is computable in polynomial time.
The verifier on raw data is computable in polynomial time.
The PartialMCSP verifier is computable in polynomial time under encBinary.
Re-encoding a PartialMCSP.Instance from unary threshold encoding (enc) to binary threshold
encoding (encBinary) is computable in polynomial time.
The PartialMCSP verifier is computable in polynomial time under enc (unary threshold).
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.
MCSP reduces to PartialMCSP in polynomial time via Instance.ofTotal.