Documentation

Complexitylib.Classes.PCP.Internal.TesterCore

The assignment tester, assembled #

The six checks of the Hadamard assignment tester, run on one bundled random string, on raw tables, with a universal soundness constant.

The tester is handed two input tables Tt Th : Cube B → ZMod 2 — in the composition, the Hadamard encodings of the labels at the two ends of an outer edge — and a proof consisting of a linear table F over n variables and a quadratic table G over n * n, where the n variables are the 2 · 2^B input coordinates followed by the selectors of a one-hot system. Its random string has six blocks, one per check:

  1. linearity of F; 2. linearity of G; 3. consistency of G with F;
  2. the one-hot system, by a random linear combination; 5. and 6. the two input tables, one coordinate each.

Every check reads a constant number of positions — never a whole table — so the total query count is a constant independent of B, and the soundness constant 1/32 is universal. That independence is the point of the tester: the outer alphabet may be enormous, and neither the query count nor the soundness loss may notice.

Main definitions #

Main results #

Layout #

@[reducible, inline]

The number of input variables: two tables of 2^B coordinates.

Equations
Instances For
    @[reducible, inline]

    The number of variables: input coordinates and one-hot selectors.

    Equations
    Instances For
      @[reducible, inline]

      The number of constraints in the one-hot system.

      Equations
      Instances For
        noncomputable def Complexity.Tester.inTail (B : ) (r : BooleanAnalysis.Cube B) :
        Fin (nOf B)

        The variable holding coordinate r of the first input table.

        Equations
        Instances For
          noncomputable def Complexity.Tester.inHead (B : ) (r : BooleanAnalysis.Cube B) :
          Fin (nOf B)

          The variable holding coordinate r of the second input table.

          Equations
          Instances For

            The first input table an assignment of the variables carries.

            Equations
            Instances For

              The second input table an assignment of the variables carries.

              Equations
              Instances For
                @[reducible, inline]

                The random bits of the linearity check on F.

                Equations
                Instances For
                  @[reducible, inline]

                  The random bits of the linearity check on G.

                  Equations
                  Instances For
                    @[reducible, inline]

                    The random bits of the consistency check.

                    Equations
                    Instances For
                      @[reducible, inline]

                      The random bits of the constraint check.

                      Equations
                      Instances For
                        @[reducible, inline]

                        The random bits of one input check.

                        Equations
                        Instances For
                          @[reducible, inline]

                          The random bits of the last two blocks.

                          Equations
                          Instances For
                            @[reducible, inline]

                            The random bits of the last three blocks.

                            Equations
                            Instances For
                              @[reducible, inline]

                              The random bits of the last four blocks.

                              Equations
                              Instances For
                                @[reducible, inline]

                                The random bits after the first block.

                                Equations
                                Instances For
                                  @[reducible, inline]

                                  The total number of random bits.

                                  Equations
                                  Instances For

                                    The first block of the random string: linearity of F.

                                    Equations
                                    Instances For

                                      The second block: linearity of G.

                                      Equations
                                      Instances For

                                        Each block is uniform #

                                        The checks #

                                        The linearity check on a table, reading at the two halves of the block and their sum.

                                        Equations
                                        Instances For

                                          The tester's verdict: all six checks pass on the random string.

                                          Equations
                                          • One or more equations did not get rendered due to their size.
                                          Instances For

                                            Soundness #

                                            theorem Complexity.Tester.sound {B : } (S : Finset (BooleanAnalysis.Cube (kOf B))) (Tt Th : BooleanAnalysis.Cube BZMod 2) (F : BooleanAnalysis.Cube (nOf B)ZMod 2) (G : BooleanAnalysis.Cube (nOf B * nOf B)ZMod 2) (h : 1 - 1 / 32 < BooleanAnalysis.prob (AllChecks S Tt Th F G)) :
                                            ∃ (a : BooleanAnalysis.Cube (nOf B)), (∀ (j : Fin (Fintype.card (OneHotIdx (kOf B)))), (oneHotSystem S j).Sat a) bitDist Tt (tailPart a) 3 / 32 bitDist Th (headPart a) 3 / 32

                                            Soundness of the assembled tester. If the six checks all pass with probability above 31/32, the proof decodes to an assignment of the variables that satisfies the one-hot system and whose two input parts are within 3/32 of the input tables.

                                            Completeness #

                                            The honest tables pass the constraint check on every random string.

                                            Completeness of the assembled tester. The honest proof of an assignment satisfying the system — its Hadamard encoding and that of its tensor square, with the input tables read off the assignment — passes every check on every random string.