Succinct MCSP is in NP #
We define standard string encodings for instances of the Succinct Minimum Circuit Size Problem
(Cslib.SuccinctMCSP.Instance) and prove that SuccinctMCSP belongs to NP under both encodings:
Cslib.SuccinctMCSP.enc: encodes the arity in unary (encUnary), the canonical list of input-output samples usingencList (encPair encBits encBool), and the threshold in unary (encUnary). This is equivalent up to field order and list framing (tis implicit inencList) to the encoding⟨1^n, 1^s, 1^t, (x_1, b_1), …, (x_t, b_t)⟩of [OliveiraPichSanthanam2019, Section 4.1, proof of Theorem 1.4], and the two are computable from each other in polynomial time.Cslib.SuccinctMCSP.encBinary: encodes the arity in unary, the canonical list of samples, and the threshold in binary (encNat).
Any consistent sample set samples on n variables is satisfied by the sparse DNF indicator
function sampleFunction samples of circuit complexity at most samples.card * (2 * n + 3) + 1
(complexity_sampleFunction_le). A certificate for SuccinctMCSP can therefore be capped at
MCSP.sampleBudget n samples.card s = min s (samples.card * (2 * n + 3) + 1) gates, which is
polynomial in the encoded instance length even when samples.card ≪ 2 ^ n and the threshold s is
given in binary. The verifier instantiates MCSP.checkCertificateOn with the listed samples.
Main definitions #
Cslib.SuccinctMCSP.sampleFunction: indicator function of the positive samples.Cslib.SuccinctMCSP.enumSamples,Cslib.SuccinctMCSP.rawSamples: canonical duplicate-free enumeration of an instance's samples.Cslib.SuccinctMCSP.toRaw: embedding ofSuccinctMCSP.Instanceinto raw data.Cslib.SuccinctMCSP.enc,Cslib.SuccinctMCSP.encBinary: unary- and binary-threshold encodings.Cslib.SuccinctMCSP.ofFunctionEncLength: the exact bit length ofSuccinctMCSP.enc (SuccinctMCSP.Instance.ofFunction f S s).Cslib.SuccinctMCSP.rawVerifier,Cslib.SuccinctMCSP.verifier: theNPverifiers.
Main results #
Cslib.SuccinctMCSP.complexity_sampleFunction_le: sparse synthesis bound in the number of samples.Cslib.SuccinctMCSP.mem_iff_exists_circuit_le_sampleBudget:SuccinctMCSPmembership with gate count capped atMCSP.sampleBudget.Cslib.SuccinctMCSP.rawSamples_ofFunction,Cslib.SuccinctMCSP.length_enc_ofFunction: canonical sample enumeration and encoded length ofInstance.ofFunction.Cslib.SuccinctMCSP.mem_of_verifier_eq_true,Cslib.SuccinctMCSP.exists_verifier_append: soundness and padded completeness ofSuccinctMCSP.verifier.Cslib.SuccinctMCSP.isVerifier,Cslib.SuccinctMCSP.isVerifier_encBinary: verifier correctness.Cslib.SuccinctMCSP.computableInPolyTime_rawVerifier,Cslib.SuccinctMCSP.computableInPolyTime_id_enc_encBinary,Cslib.SuccinctMCSP.computableInPolyTime_verifier,Cslib.SuccinctMCSP.computableInPolyTime_verifier_encBinary: polynomial-time certificates for the verifiers and unary-to-binary threshold re-encoding.Cslib.SuccinctMCSP.mem_NP,Cslib.SuccinctMCSP.mem_NP_encBinary:SuccinctMCSP ∈ NP.
References #
Sample-set complexity bound and gate budget #
Restricting the constant true function to the positive inputs in samples shows that
sampleFunction samples has circuit complexity at most samples.card * (2 * n + 3) + 1.
When x has no contradictory samples, sampleFunction x.samples agrees with every sample in
x.samples.
An instance is in SuccinctMCSP if and only if it is satisfied by a circuit of size at most
MCSP.sampleBudget x.arity x.samples.card x.threshold.
Canonical sample enumeration and instance encodings #
Instances of SuccinctMCSP encoded by the arity in unary, the framed list of samples, and the
threshold in unary. This is equivalent up to field order and list framing (t is implicit in
encList) to ⟨1^n, 1^s, 1^t, (x_1, b_1), …, (x_t, b_t)⟩ in
[OliveiraPichSanthanam2019, Section 4.1, proof of Theorem 1.4], and both encodings are computable
from each other in polynomial time.
Instances For
For Instance.ofFunction f S s, the canonical sample enumeration rawSamples visits the
inputs of S in the order of BitString.enum n, paired with their values under f.
The exact bit length of SuccinctMCSP.enc (SuccinctMCSP.Instance.ofFunction f S s) when
S.card = q: the framed unary arity n, the twice-framed list of q samples of length n + 1,
and the unary threshold s.
Instances For
SuccinctMCSP.ofFunctionEncLength is monotone in the number of samples q.
The encoded length of Instance.ofFunction f S s under SuccinctMCSP.enc depends only on the
arity n, the sample count S.card, and the threshold s.
Verifier and correctness #
Completeness of the verifier. Every instance in SuccinctMCSP has a certificate of length
certLength x.arity (MCSP.sampleBudget x.arity x.samples.card x.threshold) that is accepted
whatever bits follow it.
SuccinctMCSP.verifier verifies SuccinctMCSP under enc (unary threshold).
SuccinctMCSP.verifier verifies SuccinctMCSP under encBinary (binary threshold).
Polynomial time #
The raw verifier for SuccinctMCSP is computable in polynomial time.
The SuccinctMCSP verifier is computable in polynomial time under encBinary.
Re-encoding a SuccinctMCSP.Instance from unary threshold encoding (enc) to binary threshold
encoding (encBinary) is computable in polynomial time.
The SuccinctMCSP verifier is computable in polynomial time under enc (unary threshold).
SuccinctMCSP is in NP under SuccinctMCSP.enc (unary arity, framed sample list, and
unary threshold) [OliveiraPichSanthanam2019, Section 4.1, proof of Theorem 1.4].
SuccinctMCSP is in NP under SuccinctMCSP.encBinary (unary arity, framed sample list,
and binary threshold).