Documentation

Complexitylib.Classes.PCP.Internal.AlgRound

One round, uniformly #

AlgEdge.stepFn_eq computes a round of amplification for a graph whose sizes match the constants it is given. Iterating a round needs more: one function that is right for every graph. This module supplies the constants that do not depend on the graph — the walk length, the degree, the tester's counts — and specialises the round to them.

The one fact that makes this possible is that the encoding a round composes with does not depend on the graph either: the walks it is defined on are PreWalk E T, whose type is fixed by the expander family alone.

Main definitions #

Main results #

The constants #

noncomputable def Complexity.qOf (F : FinBase) (hd : 1 < F.deg) :

The killing rate a round uses.

Equations
Instances For
    theorem Complexity.qOf_pos (F : FinBase) (hd : 1 < F.deg) :
    0 < qOf F hd
    noncomputable def Complexity.walkLen (F : FinBase) (hd : 1 < F.deg) :

    The walk length a round uses.

    Equations
    Instances For
      noncomputable def Complexity.cZOf (F : FinBase) (hd : 1 < F.deg) :

      How many random strings the tester has.

      Equations
      Instances For
        noncomputable def Complexity.cRel :

        How many constraints the alphabet has.

        Equations
        Instances For
          noncomputable def Complexity.roundOf (F : FinBase) (hd : 1 < F.deg) :

          The round's constants.

          Equations
          Instances For
            theorem Complexity.roundOf_q (F : FinBase) (hd : 1 < F.deg) :
            (roundOf F hd).q = qOf F hd
            theorem Complexity.roundOf_T (F : FinBase) (hd : 1 < F.deg) :
            (roundOf F hd).T = walkLen F hd
            theorem Complexity.roundOf_C (F : FinBase) (hd : 1 < F.deg) :
            (roundOf F hd).C = cRel
            theorem Complexity.roundOf_cZ (F : FinBase) (hd : 1 < F.deg) :
            (roundOf F hd).cZ = cZOf F hd
            theorem Complexity.roundOf_deg (F : FinBase) (hd : 1 < F.deg) :
            (roundOf F hd).deg = (F.toFamily hd).degree
            theorem Complexity.roundOf_P (F : FinBase) (hd : 1 < F.deg) (G : ConstraintGraph DinurAlpha) :
            (roundOf F hd).P = G.preDeg (F.toFamily hd)
            theorem Complexity.roundOf_cQ (F : FinBase) (hd : 1 < F.deg) :
            (roundOf F hd).cQ = qOf F hd ^ walkLen F hd
            noncomputable def Complexity.dfltKey (F : FinBase) (hd : 1 < F.deg) :
            StepKey (F.toFamily hd) (roundOf F hd).T (roundOf F hd).q (Dinur.bits (F.toFamily hd) (roundOf F hd).T) (Fintype.card (DinurAlphaDinurAlphaBool))

            A key to fall back on, for arguments that name no edge.

            Equations
            • One or more equations did not get rendered due to their size.
            Instances For
              noncomputable def Complexity.encOf (F : FinBase) (hd : 1 < F.deg) :

              The encoding a round composes with. It is written at a graph, but does not depend on it: the walks are those of the expander family.

              Equations
              Instances For
                theorem Complexity.encOf_eq (F : FinBase) (hd : 1 < F.deg) (G : ConstraintGraph DinurAlpha) :
                encOf F hd = Dinur.enc (F.toFamily hd) G (roundOf F hd).T

                The round #

                noncomputable def Complexity.roundFn (F : FinBase) (hd : 1 < F.deg) :

                A round of amplification, as one function.

                Equations
                • One or more equations did not get rendered due to their size.
                Instances For
                  theorem Complexity.roundOf_cQ_pos (F : FinBase) (hd : 1 < F.deg) :
                  0 < (roundOf F hd).cQ
                  theorem Complexity.roundOf_cD_pos (F : FinBase) (hd : 1 < F.deg) :
                  0 < (roundOf F hd).cD
                  theorem Complexity.roundOf_cZ_pos (F : FinBase) (hd : 1 < F.deg) :
                  0 < (roundOf F hd).cZ
                  theorem Complexity.roundOf_C_pos (F : FinBase) (hd : 1 < F.deg) :
                  0 < (roundOf F hd).C
                  theorem Complexity.roundFn_mem_FP (F : FinBase) (hd : 1 < F.deg) :
                  theorem Complexity.roundFn_eq (F : FinBase) (hd : 1 < F.deg) (G : ConstraintGraph DinurAlpha) :
                  roundFn F hd (encGraph G) = encGraph (Dinur.step (F.toFamily hd) (qOf F hd) G)

                  The round computes a round of amplification, for every graph.