Documentation

Complexity.Computability.MCSP.SuccinctNP

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:

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 #

Main results #

References #

Sample-set complexity bound and gate budget #

The Boolean function on n inputs that returns true on the positive samples in samples and false elsewhere.

Instances For

    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 #

    All possible input-output pairs on n variables, enumerated in the order of BitString.enum n with output false before true.

    Instances For

      The samples of an instance x listed canonically in the order of enumSamples x.arity, with each input bitstring converted to List Bool via List.ofFn.

      Instances For

        Embedding a SuccinctMCSP.Instance into raw data ((arity, rawSamples), threshold).

        Instances For

          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

            Instances of SuccinctMCSP encoded by the arity in unary, the framed list of samples, and the threshold in binary.

            Instances For
              theorem Cslib.SuccinctMCSP.rawSamples_ofFunction {n : ℕ} (f : BooleanFunction n) (S : Finset (BitString n)) (s : ℕ) :
              rawSamples (Instance.ofFunction f S s) = List.map (fun (y : Fin n → Bool) => (List.ofFn y, f y)) (List.filter (fun (x : BitString n) => decide (x ∈ S)) (BitString.enum n))

              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.

                @[simp]

                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 #

                The verifier on raw data (((n, samples), s), w): instantiates MCSP.checkCertificateOn on the sample list samples at gate budget MCSP.sampleBudget n samples.length s.

                Instances For

                  The NP verifier for SuccinctMCSP.

                  Instances For

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

                    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.

                    Polynomial time #

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

                    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).