Analysis of Boolean Functions in Lean

7.2. Probabilistically Checkable Proofs of Proximity🔗

Definition7.2.1
Group: Chapter 7: Property testing, PCPPs, and CSPs (103)
Group member previews
Preview
Definition 7.1.1
Loading preview
Group member preview content is loaded from the rendered-fragment cache.
uses 1
Used by 3
Reverse dependency previews
Preview
Definition 7.2.2
Loading preview
Reverse dependency preview content is loaded from the rendered-fragment cache.
L∃∀N

Definition 7.10. An r-query tester for a string w\in\{0,1\}^n randomly chooses at most r coordinates, reads only those symbols, and deterministically accepts or rejects from the answers. The same definition applies to strings in \Omega^n over any finite alphabet \Omega.

Lean code for Definition7.2.11 definition
  • abbrevdefined in FABL/Chapter07/PCPP.lean
    complete
    abbrev FABL.NonadaptiveStringTester.{u} (Alphabet : Type u) (n r : ) :
      Type (u + 1)
    abbrev FABL.NonadaptiveStringTester.{u}
      (Alphabet : Type u) (n r : ) :
      Type (u + 1)
    O'Donnell, Definition 7.10: an `r`-query tester for a length-`n` string over `Alphabet`. 
Definition7.2.2
Group: Chapter 7: Property testing, PCPPs, and CSPs (103)
Group member previews
Preview
Definition 7.1.1
Loading preview
Group member preview content is loaded from the rendered-fragment cache.
Statement uses 2
Statement dependency previews
Preview
Definition 7.1.2
Loading preview
Statement dependency preview content is loaded from the rendered-fragment cache.
Used by 3
Reverse dependency previews
Preview
Lemma 7.2.3
Loading preview
Reverse dependency preview content is loaded from the rendered-fragment cache.
L∃∀N

Definition 7.11. A string tester locally tests a property \mathcal C\subseteq\{0,1\}^n with rejection rate \lambda>0 when it accepts every member of \mathcal C with probability 1 and, for all 0\le\epsilon\le1, \operatorname{dist}(w,\mathcal C)>\epsilon \quad\Longrightarrow\quad \Pr[\text{tester rejects }w]>\lambda\epsilon, where distance is relative Hamming distance.

Lean code for Definition7.2.21 definition
  • abbrevdefined in FABL/Chapter07/PCPP.lean
    complete
    abbrev FABL.IsLocalStringTester.{u} {Alphabet : Type u} [DecidableEq Alphabet]
      {n r : } [NeZero n] (T : FABL.NonadaptiveStringTester Alphabet n r)
      (P : (Fin n  Alphabet)  Prop) (rate : ) : Prop
    abbrev FABL.IsLocalStringTester.{u}
      {Alphabet : Type u}
      [DecidableEq Alphabet] {n r : }
      [NeZero n]
      (T :
        FABL.NonadaptiveStringTester Alphabet
          n r)
      (P : (Fin n  Alphabet)  Prop)
      (rate : ) : Prop
    O'Donnell, Definition 7.11: local testing of a finite-alphabet string property. 
Lemma7.2.3
Group: Chapter 7: Property testing, PCPPs, and CSPs (103)
Group member previews
Preview
Definition 7.1.1
Loading preview
Group member preview content is loaded from the rendered-fragment cache.
uses 1
Used by 3
Reverse dependency previews
Preview
Lemma 7.2.6
Loading preview
Reverse dependency preview content is loaded from the rendered-fragment cache.
L∃∀N

Example 7.12. Let \mathcal Z=\{0^n\}, \mathcal E=\{0^n,1^n\}, and \mathcal O=\{w\in\mathbb F_2^n:\sum_iw_i=1\}.

  • Sampling one uniform coordinate and checking that it is zero locally tests \mathcal Z with one query and rejection rate 1.

  • Sampling independent uniform i,j and checking w_i=w_j locally tests \mathcal E with two queries and rejection rate 1; at distance \epsilon its rejection probability is \frac12-\frac12(1-2\epsilon)^2\ge\epsilon.

  • Every tester for \mathcal O with perfect completeness must query all n coordinates.

Lean code for Lemma7.2.314 declarations
  • defdefined in FABL/Chapter07/PCPPConstructions.lean
    complete
    def FABL.IsAllZeroString {n : } (w : Fin n  Bool) : Prop
    def FABL.IsAllZeroString {n : }
      (w : Fin n  Bool) : Prop
    The singleton property consisting of the all-zero Boolean string. 
  • defdefined in FABL/Chapter07/PCPPConstructions.lean
    complete
    def FABL.IsAllEqualString {n : } (w : Fin n  Bool) : Prop
    def FABL.IsAllEqualString {n : }
      (w : Fin n  Bool) : Prop
    The property consisting of the two constant Boolean strings. 
  • defdefined in FABL/Chapter07/PCPPConstructions.lean
    complete
    def FABL.pcppBoolF₂Equiv : Bool  FABL.𝔽₂
    def FABL.pcppBoolF₂Equiv : Bool  FABL.𝔽₂
    The explicit bridge `false ↔ 0`, `true ↔ 1` between Boolean strings and `𝔽₂`. 
  • defdefined in FABL/Chapter07/PCPPConstructions.lean
    complete
    def FABL.boolStringParity {n : } (w : Fin n  Bool) : FABL.𝔽₂
    def FABL.boolStringParity {n : }
      (w : Fin n  Bool) : FABL.𝔽₂
    Parity of a Boolean string, computed in `𝔽₂`. 
  • defdefined in FABL/Chapter07/PCPPConstructions.lean
    complete
    def FABL.IsOddWeightString {n : } (w : Fin n  Bool) : Prop
    def FABL.IsOddWeightString {n : }
      (w : Fin n  Bool) : Prop
    The property of having an odd number of `true` coordinates. 
  • defdefined in FABL/Chapter07/PCPPConstructions.lean
    complete
    def FABL.allZeroStringTester (n : ) [NeZero n] :
      FABL.NonadaptiveStringTester Bool n 1
    def FABL.allZeroStringTester (n : )
      [NeZero n] :
      FABL.NonadaptiveStringTester Bool n 1
    Example 7.12's one-query tester for the all-zero string. 
  • theoremdefined in FABL/Chapter07/PCPPConstructions.lean
    complete
    theorem FABL.allZeroStringTester_acceptanceProbability {n : } [NeZero n]
      (w : Fin n  Bool) :
      FABL.NonadaptiveFunctionTester.acceptanceProbability
          (FABL.allZeroStringTester n) w =
        FABL.uniformProbability fun i => w i = false
    theorem FABL.allZeroStringTester_acceptanceProbability
      {n : } [NeZero n] (w : Fin n  Bool) :
      FABL.NonadaptiveFunctionTester.acceptanceProbability
          (FABL.allZeroStringTester n) w =
        FABL.uniformProbability fun i =>
          w i = false
    The all-zero tester accepts precisely the sampled zero coordinates. 
  • theoremdefined in FABL/Chapter07/PCPPConstructions.lean
    complete
    theorem FABL.allZeroStringTester_rejectionProbability {n : } [NeZero n]
      (w : Fin n  Bool) :
      FABL.NonadaptiveFunctionTester.rejectionProbability
          (FABL.allZeroStringTester n) w =
        FABL.uniformProbability fun i => w i = true
    theorem FABL.allZeroStringTester_rejectionProbability
      {n : } [NeZero n] (w : Fin n  Bool) :
      FABL.NonadaptiveFunctionTester.rejectionProbability
          (FABL.allZeroStringTester n) w =
        FABL.uniformProbability fun i =>
          w i = true
    The all-zero tester rejects with the relative weight of the input string. 
  • theoremdefined in FABL/Chapter07/PCPPConstructions.lean
    complete
    theorem FABL.allZeroStringTester_isLocalTester {n : } [NeZero n] :
      FABL.IsLocalStringTester (FABL.allZeroStringTester n)
        FABL.IsAllZeroString 1
    theorem FABL.allZeroStringTester_isLocalTester
      {n : } [NeZero n] :
      FABL.IsLocalStringTester
        (FABL.allZeroStringTester n)
        FABL.IsAllZeroString 1
    Example 7.12: the all-zero property has a one-query local tester with rejection rate one. 
  • defdefined in FABL/Chapter07/PCPPConstructions.lean
    complete
    def FABL.allEqualStringTester (n : ) [NeZero n] :
      FABL.NonadaptiveStringTester Bool n 2
    def FABL.allEqualStringTester (n : )
      [NeZero n] :
      FABL.NonadaptiveStringTester Bool n 2
    Example 7.12's two-query equality tester. 
  • theoremdefined in FABL/Chapter07/PCPPConstructions.lean
    complete
    theorem FABL.allEqualStringTester_rejectionProbability {n : } [NeZero n]
      (w : Fin n  Bool) :
      FABL.NonadaptiveFunctionTester.rejectionProbability
          (FABL.allEqualStringTester n) w =
        Finset.univ.expect fun i =>
          Finset.univ.expect fun j => if w i  w j then 1 else 0
    theorem FABL.allEqualStringTester_rejectionProbability
      {n : } [NeZero n] (w : Fin n  Bool) :
      FABL.NonadaptiveFunctionTester.rejectionProbability
          (FABL.allEqualStringTester n) w =
        Finset.univ.expect fun i =>
          Finset.univ.expect fun j =>
            if w i  w j then 1 else 0
    The equality tester's rejection probability is the probability that two independent
    coordinates differ. 
  • theoremdefined in FABL/Chapter07/PCPPConstructions.lean
    complete
    theorem FABL.allEqualStringTester_rejectionProbability_eq {n : } [NeZero n]
      (w : Fin n  Bool) :
      FABL.NonadaptiveFunctionTester.rejectionProbability
          (FABL.allEqualStringTester n) w =
        (2 * FABL.uniformProbability fun i => w i = false) *
          FABL.uniformProbability fun i => w i = true
    theorem FABL.allEqualStringTester_rejectionProbability_eq
      {n : } [NeZero n] (w : Fin n  Bool) :
      FABL.NonadaptiveFunctionTester.rejectionProbability
          (FABL.allEqualStringTester n) w =
        (2 *
            FABL.uniformProbability fun i =>
              w i = false) *
          FABL.uniformProbability fun i =>
            w i = true
    The two independent samples disagree with probability twice the product of the zero and one
    densities. 
  • theoremdefined in FABL/Chapter07/PCPPConstructions.lean
    complete
    theorem FABL.uniformProbability_bool_false_add_true {n : } [NeZero n]
      (w : Fin n  Bool) :
      ((FABL.uniformProbability fun i => w i = false) +
          FABL.uniformProbability fun i => w i = true) =
        1
    theorem FABL.uniformProbability_bool_false_add_true
      {n : } [NeZero n] (w : Fin n  Bool) :
      ((FABL.uniformProbability fun i =>
            w i = false) +
          FABL.uniformProbability fun i =>
            w i = true) =
        1
    The zero and one coordinate densities partition the uniform probability space. 
  • theoremdefined in FABL/Chapter07/PCPPConstructions.lean
    complete
    theorem FABL.allEqualStringTester_isLocalTester {n : } [NeZero n] :
      FABL.IsLocalStringTester (FABL.allEqualStringTester n)
        FABL.IsAllEqualString 1
    theorem FABL.allEqualStringTester_isLocalTester
      {n : } [NeZero n] :
      FABL.IsLocalStringTester
        (FABL.allEqualStringTester n)
        FABL.IsAllEqualString 1
    Example 7.12: the all-equal property has a two-query local tester with rejection rate one. 
Definition7.2.4
Group: Chapter 7: Property testing, PCPPs, and CSPs (103)
Group member previews
Preview
Definition 7.1.1
Loading preview
Group member preview content is loaded from the rendered-fragment cache.
uses 1
Used by 7
Reverse dependency previews
Preview
Lemma 7.2.5
Loading preview
Reverse dependency preview content is loaded from the rendered-fragment cache.
L∃∀N

Definition 7.13. A property \mathcal C\subseteq\{0,1\}^n has an r-query, length-\ell, rejection-rate-\lambda PCPP if there is an r-query tester T for pairs (w,\Pi)\in\{0,1\}^{n+\ell} such that w\in\mathcal C \Longrightarrow \exists\Pi,\ \Pr[T(w,\Pi)\text{ accepts}]=1, and, for every 0\le\epsilon\le1, \operatorname{dist}(w,\mathcal C)>\epsilon \Longrightarrow \forall\Pi,\ \Pr[T(w,\Pi)\text{ rejects}]>\lambda\epsilon. The distance is measured only on the alleged input w, not on the proof.

Lean code for Definition7.2.47 declarations
  • defdefined in FABL/Chapter07/PCPP.lean
    complete
    def FABL.inputProofWord.{u} {Alphabet : Type u} {n  : }
      (w : Fin n  Alphabet) (proof : Fin   Alphabet) :
      Fin n  Fin   Alphabet
    def FABL.inputProofWord.{u}
      {Alphabet : Type u} {n  : }
      (w : Fin n  Alphabet)
      (proof : Fin   Alphabet) :
      Fin n  Fin   Alphabet
    Concatenate an alleged input and a proof without hiding the two regions behind arithmetic
    casts. 
  • structure(1 field)defined in FABL/Chapter07/PCPP.lean
    complete
    structure FABL.PCPPSystem.{u} (Alphabet : Type u) (n  r : ) : Type (u + 1)
    structure FABL.PCPPSystem.{u} (Alphabet : Type u)
      (n  r : ) : Type (u + 1)
    A finite `r`-query verifier for a length-`n` input and a length-`ℓ` proof. 
    verifier : FABL.NonadaptiveFunctionTester (Fin n  Fin ) Alphabet r
    The verifier queries the disjoint input/proof address space. 
  • defdefined in FABL/Chapter07/PCPP.lean
    complete
    def FABL.PCPPSystem.acceptanceProbability.{u} {Alphabet : Type u}
      {n  r : } (V : FABL.PCPPSystem Alphabet n  r)
      (w : Fin n  Alphabet) (proof : Fin   Alphabet) : 
    def FABL.PCPPSystem.acceptanceProbability.{u}
      {Alphabet : Type u} {n  r : }
      (V : FABL.PCPPSystem Alphabet n  r)
      (w : Fin n  Alphabet)
      (proof : Fin   Alphabet) : 
    Acceptance probability of a PCPP verifier on an alleged input and proof. 
  • defdefined in FABL/Chapter07/PCPP.lean
    complete
    def FABL.PCPPSystem.rejectionProbability.{u} {Alphabet : Type u} {n  r : }
      (V : FABL.PCPPSystem Alphabet n  r) (w : Fin n  Alphabet)
      (proof : Fin   Alphabet) : 
    def FABL.PCPPSystem.rejectionProbability.{u}
      {Alphabet : Type u} {n  r : }
      (V : FABL.PCPPSystem Alphabet n  r)
      (w : Fin n  Alphabet)
      (proof : Fin   Alphabet) : 
    Rejection probability of a PCPP verifier on an alleged input and proof. 
  • defdefined in FABL/Chapter07/PCPP.lean
    complete
    def FABL.IsPCPP.{u} {Alphabet : Type u} [Fintype Alphabet]
      [DecidableEq Alphabet] {n  r : } [NeZero n]
      (V : FABL.PCPPSystem Alphabet n  r) (P : (Fin n  Alphabet)  Prop)
      (rate : ) : Prop
    def FABL.IsPCPP.{u} {Alphabet : Type u}
      [Fintype Alphabet]
      [DecidableEq Alphabet] {n  r : }
      [NeZero n]
      (V : FABL.PCPPSystem Alphabet n  r)
      (P : (Fin n  Alphabet)  Prop)
      (rate : ) : Prop
    O'Donnell, Definition 7.13: perfect-completeness PCPP with linear proximity soundness.
    
    The distance condition quantifies only over the alleged input `w`; no distance is imposed on the
    proof. The universal formulation also handles an empty property honestly. 
  • theoremdefined in FABL/Chapter07/PCPP.lean
    complete
    theorem FABL.IsPCPP.exists_close_of_acceptanceProbability_ge.{u}
      {Alphabet : Type u} [Fintype Alphabet] [DecidableEq Alphabet]
      {n  r : } [NeZero n] {V : FABL.PCPPSystem Alphabet n  r}
      {P : (Fin n  Alphabet)  Prop} {rate ε : }
      (hV : FABL.IsPCPP V P rate) ( : ε  Set.Icc 0 1)
      (w : Fin n  Alphabet) (proof : Fin   Alphabet)
      (haccept : 1 - rate * ε  V.acceptanceProbability w proof) :
      FABL.IsCloseToProperty ε w P
    theorem FABL.IsPCPP.exists_close_of_acceptanceProbability_ge.{u}
      {Alphabet : Type u} [Fintype Alphabet]
      [DecidableEq Alphabet] {n  r : }
      [NeZero n]
      {V : FABL.PCPPSystem Alphabet n  r}
      {P : (Fin n  Alphabet)  Prop}
      {rate ε : } (hV : FABL.IsPCPP V P rate)
      ( : ε  Set.Icc 0 1)
      (w : Fin n  Alphabet)
      (proof : Fin   Alphabet)
      (haccept :
        1 - rate * ε 
          V.acceptanceProbability w proof) :
      FABL.IsCloseToProperty ε w P
    High verifier acceptance yields a close property member whenever the property is nonempty. 
  • theoremdefined in FABL/Chapter07/PCPP.lean
    complete
    theorem FABL.isPCPP_of_exists_close_of_acceptanceProbability_ge.{u}
      {Alphabet : Type u} [Fintype Alphabet] [DecidableEq Alphabet]
      {n  r : } [NeZero n] (V : FABL.PCPPSystem Alphabet n  r)
      (P : (Fin n  Alphabet)  Prop) (rate : ) (hrate : 0 < rate)
      (hcomplete :
         (w : Fin n  Alphabet),
          P w   proof, V.acceptanceProbability w proof = 1)
      (hclose :
         ε  Set.Icc 0 1,
           (w : Fin n  Alphabet) (proof : Fin   Alphabet),
            1 - rate * ε  V.acceptanceProbability w proof 
              FABL.IsCloseToProperty ε w P) :
      FABL.IsPCPP V P rate
    theorem FABL.isPCPP_of_exists_close_of_acceptanceProbability_ge.{u}
      {Alphabet : Type u} [Fintype Alphabet]
      [DecidableEq Alphabet] {n  r : }
      [NeZero n]
      (V : FABL.PCPPSystem Alphabet n  r)
      (P : (Fin n  Alphabet)  Prop)
      (rate : ) (hrate : 0 < rate)
      (hcomplete :
         (w : Fin n  Alphabet),
          P w 
             proof,
              V.acceptanceProbability w
                  proof =
                1)
      (hclose :
         ε  Set.Icc 0 1,
           (w : Fin n  Alphabet)
            (proof : Fin   Alphabet),
            1 - rate * ε 
                V.acceptanceProbability w
                  proof 
              FABL.IsCloseToProperty ε w P) :
      FABL.IsPCPP V P rate
    The high-acceptance implication is sufficient for PCPP soundness. 
Lemma7.2.5
Group: Chapter 7: Property testing, PCPPs, and CSPs (103)
Group member previews
Preview
Definition 7.1.1
Loading preview
Group member preview content is loaded from the rendered-fragment cache.
uses 1used by 0XL∃∀N

Remark 7.14. The desired PCPP parameters have a very small universal query bound r, a proof length as short as possible, and a positive rejection-rate constant independent of the input length.

Lemma7.2.6
Group: Chapter 7: Property testing, PCPPs, and CSPs (103)
Group member previews
Preview
Definition 7.1.1
Loading preview
Group member preview content is loaded from the rendered-fragment cache.
Statement uses 2
Statement dependency previews
Preview
Lemma 7.2.3
Loading preview
Statement dependency preview content is loaded from the rendered-fragment cache.
Used by 2
Reverse dependency previews
Preview
Lemma 7.3.10
Loading preview
Reverse dependency preview content is loaded from the rendered-fragment cache.
L∃∀N

Example 7.15. For n\ge2, the odd-weight property \mathcal O has a 3-query, length-n-1, rejection-rate-1 PCPP. A valid proof records the partial sums \Pi_j=\sum_{i=1}^{j+1}w_i\pmod2. The verifier uniformly checks one of the local equations \Pi_1=w_1+w_2,\qquad \Pi_j=\Pi_{j-1}+w_{j+1},\qquad \Pi_{n-1}=1. The formal construction is parameterized as n=m+2, so every dimension in the stated range has a valid first, step, and final check without an out-of-range partial-sum index.

Lean code for Lemma7.2.69 declarations
  • abbrevdefined in FABL/Chapter07/PCPPConstructions.lean
    complete
    abbrev FABL.OddWeightPartialSumCheckSeed (m : ) : Type
    abbrev FABL.OddWeightPartialSumCheckSeed
      (m : ) : Type
    The `n = m + 2` checks in Example 7.15: the two Boolean seeds are the explicit first and
    last checks, while `Fin m` indexes the recurrence checks. 
  • defdefined in FABL/Chapter07/PCPPConstructions.lean
    complete
    def FABL.boolPrefixParity {m : } (w : Fin (m + 2)  Bool) (k : ) : FABL.𝔽₂
    def FABL.boolPrefixParity {m : }
      (w : Fin (m + 2)  Bool) (k : ) :
      FABL.𝔽₂
    The parity of the first `k` coordinates, interpreted in `𝔽₂`. 
  • defdefined in FABL/Chapter07/PCPPConstructions.lean
    complete
    def FABL.oddWeightPartialSumProof {m : } (w : Fin (m + 2)  Bool) :
      Fin (m + 1)  Bool
    def FABL.oddWeightPartialSumProof {m : }
      (w : Fin (m + 2)  Bool) :
      Fin (m + 1)  Bool
    The canonical proof string in Example 7.15 contains the successive partial parities through
    coordinates `1, ..., m + 1`. 
  • defdefined in FABL/Chapter07/PCPPConstructions.lean
    complete
    def FABL.OddWeightPartialSumCheckHolds {m : }
      (seed : FABL.OddWeightPartialSumCheckSeed m) (w : Fin (m + 2)  Bool)
      (proof : Fin (m + 1)  Bool) : Prop
    def FABL.OddWeightPartialSumCheckHolds {m : }
      (seed :
        FABL.OddWeightPartialSumCheckSeed m)
      (w : Fin (m + 2)  Bool)
      (proof : Fin (m + 1)  Bool) : Prop
    The mathematical equation checked by each of Example 7.15's explicit endpoint or recurrence
    seeds. 
  • defdefined in FABL/Chapter07/PCPPConstructions.lean
    complete
    def FABL.oddWeightPartialSumPCPPSystem (m : ) :
      FABL.PCPPSystem Bool (m + 2) (m + 1) 3
    def FABL.oddWeightPartialSumPCPPSystem
      (m : ) :
      FABL.PCPPSystem Bool (m + 2) (m + 1) 3
    Example 7.15's three-query, length-`m + 1` PCPP system for odd-weight strings of length
    `m + 2`. The `m = 0` instance has exactly the first and last checks and proof length one. 
  • theoremdefined in FABL/Chapter07/PCPPConstructions.lean
    complete
    theorem FABL.oddWeightPartialSumPCPPSystem_rejectionProbability {m : }
      (w : Fin (m + 2)  Bool) (proof : Fin (m + 1)  Bool) :
      (FABL.oddWeightPartialSumPCPPSystem m).rejectionProbability w proof =
        FABL.uniformProbability fun seed =>
          ¬FABL.OddWeightPartialSumCheckHolds seed w proof
    theorem FABL.oddWeightPartialSumPCPPSystem_rejectionProbability
      {m : } (w : Fin (m + 2)  Bool)
      (proof : Fin (m + 1)  Bool) :
      (FABL.oddWeightPartialSumPCPPSystem
              m).rejectionProbability
          w proof =
        FABL.uniformProbability fun seed =>
          ¬FABL.OddWeightPartialSumCheckHolds
              seed w proof
    Example 7.15's verifier rejects with the uniform fraction of failed prefix equations. 
  • theoremdefined in FABL/Chapter07/PCPPConstructions.lean
    complete
    theorem FABL.oddWeightPartialSumProof_checks {m : } (w : Fin (m + 2)  Bool)
      (hw : FABL.IsOddWeightString w)
      (seed : FABL.OddWeightPartialSumCheckSeed m) :
      FABL.OddWeightPartialSumCheckHolds seed w
        (FABL.oddWeightPartialSumProof w)
    theorem FABL.oddWeightPartialSumProof_checks
      {m : } (w : Fin (m + 2)  Bool)
      (hw : FABL.IsOddWeightString w)
      (seed :
        FABL.OddWeightPartialSumCheckSeed m) :
      FABL.OddWeightPartialSumCheckHolds seed
        w (FABL.oddWeightPartialSumProof w)
    Correct partial sums satisfy every first, recurrence, and final check. 
  • theoremdefined in FABL/Chapter07/PCPPConstructions.lean
    complete
    theorem FABL.isOddWeightString_of_partialSumChecks {m : }
      (w : Fin (m + 2)  Bool) (proof : Fin (m + 1)  Bool)
      (hchecks :
         (seed : FABL.OddWeightPartialSumCheckSeed m),
          FABL.OddWeightPartialSumCheckHolds seed w proof) :
      FABL.IsOddWeightString w
    theorem FABL.isOddWeightString_of_partialSumChecks
      {m : } (w : Fin (m + 2)  Bool)
      (proof : Fin (m + 1)  Bool)
      (hchecks :
        
          (seed :
            FABL.OddWeightPartialSumCheckSeed
              m),
          FABL.OddWeightPartialSumCheckHolds
            seed w proof) :
      FABL.IsOddWeightString w
    If all prefix equations hold, then the input has odd weight. 
  • theoremdefined in FABL/Chapter07/PCPPConstructions.lean
    complete
    theorem FABL.oddWeightPartialSumPCPPSystem_isPCPP (m : ) :
      FABL.IsPCPP (FABL.oddWeightPartialSumPCPPSystem m)
        FABL.IsOddWeightString 1
    theorem FABL.oddWeightPartialSumPCPPSystem_isPCPP
      (m : ) :
      FABL.IsPCPP
        (FABL.oddWeightPartialSumPCPPSystem m)
        FABL.IsOddWeightString 1
    O'Donnell, Example 7.15, including the explicit `n = 2` endpoint: odd-weight strings of
    length `m + 2` have a three-query, length-`m + 1` PCPP with rejection rate one. 
Theorem7.2.7
Group: Chapter 7: Property testing, PCPPs, and CSPs (103)
Group member previews
Preview
Definition 7.1.1
Loading preview
Group member preview content is loaded from the rendered-fragment cache.
Statement uses 3
Statement dependency previews
Preview
Proposition 1.6.6
Loading preview
Statement dependency preview content is loaded from the rendered-fragment cache.
used by 1L∃∀N

Theorem 7.16. Every property \mathcal C\subseteq\{0,1\}^n has a 3-query PCPP of proof length 2^{2^n} and rejection rate 0.001.

Writing N=2^n, identify a proof with a Boolean function on \{0,1\}^N. A correct proof is the truth table of the dictator indexed by a word w'\in\mathcal C. One branch tests this dictator subclass; the other locally corrects it at the strings X^{(j)}_{\iota(y)}=y_j and compares the answers with the alleged input bits w_j.

The production theorem also covers the empty property: completeness is vacuous, while every alleged input has normalized distance 1 and the property-test branch supplies soundness.

Lean code for Theorem7.2.724 declarations
  • defdefined in FABL/Chapter07/PCPPConstructions.lean
    complete
    def FABL.pcppBoolSignEquiv : Bool  FABL.Sign
    def FABL.pcppBoolSignEquiv : Bool  FABL.Sign
    The explicit alphabet equivalence used to interpret a Boolean proof string as a
    sign-valued truth table. 
  • defdefined in FABL/Chapter07/PCPPConstructions.lean
    complete
    def FABL.booleanStringIndexEquiv (n : ) : (Fin n  Bool)  Fin (2 ^ n)
    def FABL.booleanStringIndexEquiv (n : ) :
      (Fin n  Bool)  Fin (2 ^ n)
    A fixed enumeration of length-`n` Boolean strings. 
  • defdefined in FABL/Chapter07/PCPPConstructions.lean
    complete
    def FABL.signCubeIndexEquiv (N : ) : FABL.SignCube N  Fin (2 ^ N)
    def FABL.signCubeIndexEquiv (N : ) :
      FABL.SignCube N  Fin (2 ^ N)
    A fixed enumeration of the sign cube, used for proof-string addresses. 
  • defdefined in FABL/Chapter07/PCPPConstructions.lean
    complete
    def FABL.pcppProofFunction {N : } (proof : Fin (2 ^ N)  Bool) :
      FABL.BooleanFunction N
    def FABL.pcppProofFunction {N : }
      (proof : Fin (2 ^ N)  Bool) :
      FABL.BooleanFunction N
    Interpret a Boolean proof string as a sign-valued Boolean function. 
  • defdefined in FABL/Chapter07/PCPPConstructions.lean
    complete
    def FABL.encodeBooleanFunctionProof {N : } (f : FABL.BooleanFunction N) :
      Fin (2 ^ N)  Bool
    def FABL.encodeBooleanFunctionProof {N : }
      (f : FABL.BooleanFunction N) :
      Fin (2 ^ N)  Bool
    Encode a sign-valued Boolean function as its Boolean proof truth table. 
  • defdefined in FABL/Chapter07/PCPPConstructions.lean
    complete
    def FABL.coordinateTruthTable (n : ) (j : Fin n) : FABL.SignCube (2 ^ n)
    def FABL.coordinateTruthTable (n : )
      (j : Fin n) : FABL.SignCube (2 ^ n)
    The truth table of the `j`th coordinate on length-`n` Boolean strings. 
  • defdefined in FABL/Chapter07/PCPPConstructions.lean
    complete
    def FABL.propertyIndexSet {n : } (P : (Fin n  Bool)  Prop) :
      Finset (Fin (2 ^ n))
    def FABL.propertyIndexSet {n : }
      (P : (Fin n  Bool)  Prop) :
      Finset (Fin (2 ^ n))
    The truth-table indices of the strings in a fixed property. 
  • defdefined in FABL/Chapter07/PCPPConstructions.lean
    complete
    def FABL.boolTruthTableLiftTester {r N : }
      (T : FABL.NonadaptiveFunctionTester (FABL.SignCube N) FABL.Sign r)
      (n : ) : FABL.NonadaptiveFunctionTester (Fin n  Fin (2 ^ N)) Bool r
    def FABL.boolTruthTableLiftTester {r N : }
      (T :
        FABL.NonadaptiveFunctionTester
          (FABL.SignCube N) FABL.Sign r)
      (n : ) :
      FABL.NonadaptiveFunctionTester
        (Fin n  Fin (2 ^ N)) Bool r
    Transport a sign-valued truth-table tester to the proof region of a Boolean PCPP word. 
  • theoremdefined in FABL/Chapter07/PCPPConstructions.lean
    complete
    theorem FABL.boolTruthTableLiftTester_acceptanceProbability {r N : }
      (T : FABL.NonadaptiveFunctionTester (FABL.SignCube N) FABL.Sign r)
      (n : ) (w : Fin n  Bool) (proof : Fin (2 ^ N)  Bool) :
      (FABL.boolTruthTableLiftTester T n).acceptanceProbability
          (FABL.inputProofWord w proof) =
        T.acceptanceProbability (FABL.pcppProofFunction proof)
    theorem FABL.boolTruthTableLiftTester_acceptanceProbability
      {r N : }
      (T :
        FABL.NonadaptiveFunctionTester
          (FABL.SignCube N) FABL.Sign r)
      (n : ) (w : Fin n  Bool)
      (proof : Fin (2 ^ N)  Bool) :
      (FABL.boolTruthTableLiftTester T
              n).acceptanceProbability
          (FABL.inputProofWord w proof) =
        T.acceptanceProbability
          (FABL.pcppProofFunction proof)
    The lift preserves the tested truth table's acceptance probability exactly. 
  • defdefined in FABL/Chapter07/PCPPConstructions.lean
    complete
    def FABL.coordinateTrueIndexSet (n : ) (j : Fin n) : Finset (Fin (2 ^ n))
    def FABL.coordinateTrueIndexSet (n : )
      (j : Fin n) : Finset (Fin (2 ^ n))
    Indices at which the `j`th coordinate truth table has value `-1`. 
  • theoremdefined in FABL/Chapter07/PCPPConstructions.lean
    complete
    theorem FABL.subsetIndicatorSign_coordinateTrueIndexSet (n : ) (j : Fin n) :
      FABL.subsetIndicatorSign (FABL.coordinateTrueIndexSet n j) =
        FABL.coordinateTruthTable n j
    theorem FABL.subsetIndicatorSign_coordinateTrueIndexSet
      (n : ) (j : Fin n) :
      FABL.subsetIndicatorSign
          (FABL.coordinateTrueIndexSet n j) =
        FABL.coordinateTruthTable n j
    The subset-indicator sign vector at a coordinate is its full Boolean truth table. 
  • theoremdefined in FABL/Chapter07/PCPPConstructions.lean
    complete
    theorem FABL.coordinateLocalCorrection_correctProbability_ge {n : }
      (f : FABL.BooleanFunction (2 ^ n)) (j : Fin n) (i : Fin (2 ^ n))
      (δ : ) (hclose : FABL.relativeHammingDist f (FABL.dictator i)  δ) :
      1 - 2 * δ 
        FABL.uniformProbability fun y =>
          FABL.localCorrection
              (fun z => f ((FABL.binaryCubeSignEquiv (2 ^ n)) z))
              ((FABL.binaryCubeSignEquiv (2 ^ n)).symm
                (FABL.coordinateTruthTable n j))
              y =
            FABL.pcppBoolSignEquiv
              ((FABL.booleanStringIndexEquiv n).symm i j)
    theorem FABL.coordinateLocalCorrection_correctProbability_ge
      {n : }
      (f : FABL.BooleanFunction (2 ^ n))
      (j : Fin n) (i : Fin (2 ^ n)) (δ : )
      (hclose :
        FABL.relativeHammingDist f
            (FABL.dictator i) 
          δ) :
      1 - 2 * δ 
        FABL.uniformProbability fun y =>
          FABL.localCorrection
              (fun z =>
                f
                  ((FABL.binaryCubeSignEquiv
                      (2 ^ n))
                    z))
              ((FABL.binaryCubeSignEquiv
                    (2 ^ n)).symm
                (FABL.coordinateTruthTable n
                  j))
              y =
            FABL.pcppBoolSignEquiv
              ((FABL.booleanStringIndexEquiv
                    n).symm
                i j)
    Local correction at a coordinate truth table recovers the corresponding bit of a nearby
    dictator with probability at least `1 - 2δ`. 
  • defdefined in FABL/Chapter07/PCPPConstructions.lean
    complete
    def FABL.coordinateCorrectionProbability {n : }
      (f : FABL.BooleanFunction (2 ^ n)) (j : Fin n) (bit : Bool) : 
    def FABL.coordinateCorrectionProbability
      {n : }
      (f : FABL.BooleanFunction (2 ^ n))
      (j : Fin n) (bit : Bool) : 
    Success probability of local correction at one requested Boolean coordinate. 
  • defdefined in FABL/Chapter07/PCPPConstructions.lean
    complete
    def FABL.coordinateConsistencyFunctionTester (n : ) [NeZero n] :
      FABL.NonadaptiveFunctionTester (Fin n  Fin (2 ^ 2 ^ n)) Bool 3
    def FABL.coordinateConsistencyFunctionTester
      (n : ) [NeZero n] :
      FABL.NonadaptiveFunctionTester
        (Fin n  Fin (2 ^ 2 ^ n)) Bool 3
    The three-query consistency test compares one alleged input bit with its two-query local
    correction from the alleged proof truth table. 
  • theoremdefined in FABL/Chapter07/PCPPConstructions.lean
    complete
    theorem FABL.coordinateConsistencyFunctionTester_acceptanceProbability {n : }
      [NeZero n] (w : Fin n  Bool) (proof : Fin (2 ^ 2 ^ n)  Bool) :
      (FABL.coordinateConsistencyFunctionTester n).acceptanceProbability
          (FABL.inputProofWord w proof) =
        Finset.univ.expect fun j =>
          FABL.coordinateCorrectionProbability
            (FABL.pcppProofFunction proof) j (w j)
    theorem FABL.coordinateConsistencyFunctionTester_acceptanceProbability
      {n : } [NeZero n] (w : Fin n  Bool)
      (proof : Fin (2 ^ 2 ^ n)  Bool) :
      (FABL.coordinateConsistencyFunctionTester
              n).acceptanceProbability
          (FABL.inputProofWord w proof) =
        Finset.univ.expect fun j =>
          FABL.coordinateCorrectionProbability
            (FABL.pcppProofFunction proof) j
            (w j)
    Acceptance of the consistency component is the coordinate average of local-correction
    success probabilities. 
  • theoremdefined in FABL/Chapter07/PCPPConstructions.lean
    complete
    theorem FABL.coordinateLocalCorrection_dictator {n : } (w : Fin n  Bool)
      (j : Fin n) (y : FABL.F₂Cube (2 ^ n)) :
      FABL.localCorrection
          (fun z =>
            FABL.dictator ((FABL.booleanStringIndexEquiv n) w)
              ((FABL.binaryCubeSignEquiv (2 ^ n)) z))
          ((FABL.binaryCubeSignEquiv (2 ^ n)).symm
            (FABL.coordinateTruthTable n j))
          y =
        FABL.pcppBoolSignEquiv (w j)
    theorem FABL.coordinateLocalCorrection_dictator
      {n : } (w : Fin n  Bool) (j : Fin n)
      (y : FABL.F₂Cube (2 ^ n)) :
      FABL.localCorrection
          (fun z =>
            FABL.dictator
              ((FABL.booleanStringIndexEquiv
                  n)
                w)
              ((FABL.binaryCubeSignEquiv
                  (2 ^ n))
                z))
          ((FABL.binaryCubeSignEquiv
                (2 ^ n)).symm
            (FABL.coordinateTruthTable n j))
          y =
        FABL.pcppBoolSignEquiv (w j)
    Local correction of the truth table of a dictator returns the corresponding original
    Boolean coordinate on every correction seed. 
  • defdefined in FABL/Chapter07/PCPPConstructions.lean
    complete
    def FABL.propertyTruthTableFunctionTester {n : }
      (P : (Fin n  Bool)  Prop) :
      FABL.NonadaptiveFunctionTester (Fin n  Fin (2 ^ 2 ^ n)) Bool 3
    def FABL.propertyTruthTableFunctionTester
      {n : } (P : (Fin n  Bool)  Prop) :
      FABL.NonadaptiveFunctionTester
        (Fin n  Fin (2 ^ 2 ^ n)) Bool 3
    The proof-test component applies Theorem 7.9 to the truth-table indices of a property. 
  • defdefined in FABL/Chapter07/PCPPConstructions.lean
    complete
    def FABL.arbitraryPropertyPCPPSystem {n : } (P : (Fin n  Bool)  Prop)
      [NeZero n] : FABL.PCPPSystem Bool n (2 ^ 2 ^ n) 3
    def FABL.arbitraryPropertyPCPPSystem {n : }
      (P : (Fin n  Bool)  Prop) [NeZero n] :
      FABL.PCPPSystem Bool n (2 ^ 2 ^ n) 3
    Theorem 7.16's verifier uniformly chooses the property truth-table test or the input/proof
    consistency test. 
  • theoremdefined in FABL/Chapter07/PCPPConstructions.lean
    complete
    theorem FABL.arbitraryPropertyPCPPSystem_acceptanceProbability {n : }
      (P : (Fin n  Bool)  Prop) [NeZero n] (w : Fin n  Bool)
      (proof : Fin (2 ^ 2 ^ n)  Bool) :
      (FABL.arbitraryPropertyPCPPSystem P).acceptanceProbability w proof =
        ((FABL.propertyTruthTableFunctionTester P).acceptanceProbability
              (FABL.inputProofWord w proof) +
            (FABL.coordinateConsistencyFunctionTester
                  n).acceptanceProbability
              (FABL.inputProofWord w proof)) /
          2
    theorem FABL.arbitraryPropertyPCPPSystem_acceptanceProbability
      {n : } (P : (Fin n  Bool)  Prop)
      [NeZero n] (w : Fin n  Bool)
      (proof : Fin (2 ^ 2 ^ n)  Bool) :
      (FABL.arbitraryPropertyPCPPSystem
              P).acceptanceProbability
          w proof =
        ((FABL.propertyTruthTableFunctionTester
                  P).acceptanceProbability
              (FABL.inputProofWord w proof) +
            (FABL.coordinateConsistencyFunctionTester
                  n).acceptanceProbability
              (FABL.inputProofWord w proof)) /
          2
    The two components give the verifier acceptance probability as their arithmetic mean. 
  • theoremdefined in FABL/Chapter07/PCPPConstructions.lean
    complete
    theorem FABL.arbitraryPropertyPCPPSystem_complete {n : }
      (P : (Fin n  Bool)  Prop) [NeZero n] (w : Fin n  Bool) (hw : P w) :
      (FABL.arbitraryPropertyPCPPSystem P).acceptanceProbability w
          (FABL.encodeBooleanFunctionProof
            (FABL.dictator ((FABL.booleanStringIndexEquiv n) w))) =
        1
    theorem FABL.arbitraryPropertyPCPPSystem_complete
      {n : } (P : (Fin n  Bool)  Prop)
      [NeZero n] (w : Fin n  Bool)
      (hw : P w) :
      (FABL.arbitraryPropertyPCPPSystem
              P).acceptanceProbability
          w
          (FABL.encodeBooleanFunctionProof
            (FABL.dictator
              ((FABL.booleanStringIndexEquiv
                  n)
                w))) =
        1
    The encoded dictator truth table is a perfect proof for every member of the property. 
  • theoremdefined in FABL/Chapter07/PCPPConstructions.lean
    complete
    theorem FABL.arbitraryPropertyPCPPSystem_close_of_acceptanceProbability_ge
      {n : } (P : (Fin n  Bool)  Prop) [NeZero n] (ε : )
      ( : ε  Set.Icc 0 1) (w : Fin n  Bool)
      (proof : Fin (2 ^ 2 ^ n)  Bool)
      (haccept :
        1 - 1 / 1000 * ε 
          (FABL.arbitraryPropertyPCPPSystem P).acceptanceProbability w
            proof) :
      FABL.IsCloseToProperty ε w P
    theorem FABL.arbitraryPropertyPCPPSystem_close_of_acceptanceProbability_ge
      {n : } (P : (Fin n  Bool)  Prop)
      [NeZero n] (ε : )
      ( : ε  Set.Icc 0 1)
      (w : Fin n  Bool)
      (proof : Fin (2 ^ 2 ^ n)  Bool)
      (haccept :
        1 - 1 / 1000 * ε 
          (FABL.arbitraryPropertyPCPPSystem
                P).acceptanceProbability
            w proof) :
      FABL.IsCloseToProperty ε w P
    High acceptance of Theorem 7.16's verifier yields an input within `ε` of the property.
    The empty-property case is discharged by the property component itself. 
  • theoremdefined in FABL/Chapter07/PCPPConstructions.lean
    complete
    theorem FABL.arbitraryPropertyPCPPSystem_isPCPP {n : }
      (P : (Fin n  Bool)  Prop) [NeZero n] :
      FABL.IsPCPP (FABL.arbitraryPropertyPCPPSystem P) P (1 / 1000)
    theorem FABL.arbitraryPropertyPCPPSystem_isPCPP
      {n : } (P : (Fin n  Bool)  Prop)
      [NeZero n] :
      FABL.IsPCPP
        (FABL.arbitraryPropertyPCPPSystem P) P
        (1 / 1000)
    O'Donnell, Theorem 7.16: every nonempty-length Boolean string property has a three-query
    PCPP with proof length exactly `2^(2^n)` and rejection rate `.001`. 
  • defdefined in FABL/Chapter07/PCPPConstructions.lean
    complete
    def FABL.arbitraryPropertyPCPPDescription {n : }
      (P : (Fin n  Bool)  Prop) [NeZero n] : FABL.PCPPDescription n P
    def FABL.arbitraryPropertyPCPPDescription
      {n : } (P : (Fin n  Bool)  Prop)
      [NeZero n] : FABL.PCPPDescription n P
    The exact semantic resource description supplied by Theorem 7.16. 
  • theoremdefined in FABL/Chapter07/PCPPConstructions.lean
    complete
    theorem FABL.exists_arbitraryPropertyPCPPSystem {n : }
      (P : (Fin n  Bool)  Prop) [NeZero n] :
       V, FABL.IsPCPP V P (1 / 1000)
    theorem FABL.exists_arbitraryPropertyPCPPSystem
      {n : } (P : (Fin n  Bool)  Prop)
      [NeZero n] :
       V, FABL.IsPCPP V P (1 / 1000)
    The existential book-facing form of Theorem 7.16, retaining its exact proof length,
    query count, and rejection rate. 
Lemma7.2.8
Group: Chapter 7: Property testing, PCPPs, and CSPs (103)
Group member previews
Preview
Definition 7.1.1
Loading preview
Group member preview content is loaded from the rendered-fragment cache.
Statement uses 2
Statement dependency previews
Preview
Proposition 1.6.6
Loading preview
Statement dependency preview content is loaded from the rendered-fragment cache.
used by 0L∃∀N

Equation (7.1). If a proof function \Pi has relative Hamming distance at most 200\lambda\epsilon from the dictator \chi_{\iota(w')}, then for every coordinate j, \Pr[\operatorname{LC}_{\Pi}(X^{(j)})=w'_j] \ge1-400\lambda\epsilon\ge\frac12. Here \operatorname{LC} is the BLR local-correction procedure and the last inequality is used with \lambda=.001 and \epsilon\le1.

Lean code for Lemma7.2.81 theorem
  • theoremdefined in FABL/Chapter07/PCPPConstructions.lean
    complete
    theorem FABL.equation_7_1 {n : } (f : FABL.BooleanFunction (2 ^ n)) (j : Fin n)
      (i : Fin (2 ^ n)) (ε : ) ( : ε  Set.Icc 0 1)
      (hclose :
        FABL.relativeHammingDist f (FABL.dictator i) 
          200 * (1 / 1000) * ε) :
      (1 - 400 * (1 / 1000) * ε 
          FABL.uniformProbability fun y =>
            FABL.localCorrection
                (fun z => f ((FABL.binaryCubeSignEquiv (2 ^ n)) z))
                ((FABL.binaryCubeSignEquiv (2 ^ n)).symm
                  (FABL.coordinateTruthTable n j))
                y =
              FABL.pcppBoolSignEquiv
                ((FABL.booleanStringIndexEquiv n).symm i j)) 
        1 / 2 
          FABL.uniformProbability fun y =>
            FABL.localCorrection
                (fun z => f ((FABL.binaryCubeSignEquiv (2 ^ n)) z))
                ((FABL.binaryCubeSignEquiv (2 ^ n)).symm
                  (FABL.coordinateTruthTable n j))
                y =
              FABL.pcppBoolSignEquiv
                ((FABL.booleanStringIndexEquiv n).symm i j)
    theorem FABL.equation_7_1 {n : }
      (f : FABL.BooleanFunction (2 ^ n))
      (j : Fin n) (i : Fin (2 ^ n)) (ε : )
      ( : ε  Set.Icc 0 1)
      (hclose :
        FABL.relativeHammingDist f
            (FABL.dictator i) 
          200 * (1 / 1000) * ε) :
      (1 - 400 * (1 / 1000) * ε 
          FABL.uniformProbability fun y =>
            FABL.localCorrection
                (fun z =>
                  f
                    ((FABL.binaryCubeSignEquiv
                        (2 ^ n))
                      z))
                ((FABL.binaryCubeSignEquiv
                      (2 ^ n)).symm
                  (FABL.coordinateTruthTable n
                    j))
                y =
              FABL.pcppBoolSignEquiv
                ((FABL.booleanStringIndexEquiv
                      n).symm
                  i j)) 
        1 / 2 
          FABL.uniformProbability fun y =>
            FABL.localCorrection
                (fun z =>
                  f
                    ((FABL.binaryCubeSignEquiv
                        (2 ^ n))
                      z))
                ((FABL.binaryCubeSignEquiv
                      (2 ^ n)).symm
                  (FABL.coordinateTruthTable n
                    j))
                y =
              FABL.pcppBoolSignEquiv
                ((FABL.booleanStringIndexEquiv
                      n).symm
                  i j)
    O'Donnell, Equation (7.1): at rate `λ = .001`, a proof within `200λε` of a dictator
    locally corrects every requested bit with probability at least `1 - 400λε`, hence at least
    one half for `ε ≤ 1`. 
Definition7.2.9
Group: Chapter 7: Property testing, PCPPs, and CSPs (103)
Group member previews
Preview
Definition 7.1.1
Loading preview
Group member preview content is loaded from the rendered-fragment cache.
uses 0
Used by 3
Reverse dependency previews
Preview
Definition 7.2.10
Loading preview
Reverse dependency preview content is loaded from the rendered-fragment cache.
L∃∀N

Equation (7.2). The string property accepted by an n-input Boolean circuit C is \mathcal C_C=\{w\in\{0,1\}^n:C(w)=1\}.

Lean code for Definition7.2.96 definitions
  • inductive(5 constructors, 2 parameters)defined in FABL/Chapter07/PCPP.lean
    complete
    inductive FABL.OrderedBooleanGate (n i : ) : Type
    inductive FABL.OrderedBooleanGate (n i : ) : Type
    One gate in a topologically ordered Boolean DAG. A gate at position `i` can reference only
    the preceding `i` gates. 
    FABL.OrderedBooleanGate.input {n i : }
      (inputIndex : Fin n) : FABL.OrderedBooleanGate n i
    Read an input bit. 
    FABL.OrderedBooleanGate.const {n i : } (value : Bool) :
      FABL.OrderedBooleanGate n i
    A Boolean constant. 
    FABL.OrderedBooleanGate.neg {n i : } (source : Fin i) :
      FABL.OrderedBooleanGate n i
    Negation of an earlier gate. 
    FABL.OrderedBooleanGate.and {n i : } (left right : Fin i) :
      FABL.OrderedBooleanGate n i
    Conjunction of two earlier gates. 
    FABL.OrderedBooleanGate.or {n i : } (left right : Fin i) :
      FABL.OrderedBooleanGate n i
    Disjunction of two earlier gates. 
  • structure(3 fields)defined in FABL/Chapter07/PCPP.lean
    complete
    structure FABL.BooleanCircuit (n : ) : Type
    structure FABL.BooleanCircuit (n : ) : Type
    A finite, single-output, topologically ordered Boolean DAG.
    
    The dependent gate table makes cyclic or forward references unrepresentable. Sharing is retained,
    so `gateCount` is the circuit size rather than the size of an unfolded formula. 
    gateCount : 
    Number of gates. 
    gates : (i : Fin self.gateCount)  FABL.OrderedBooleanGate n i
    Gate at each position in topological order. 
    output : Fin self.gateCount
    Distinguished output gate. Its type forces every circuit to contain a gate. 
  • defdefined in FABL/Chapter07/PCPP.lean
    complete
    def FABL.BooleanCircuit.evalGate {n : } (C : FABL.BooleanCircuit n)
      (input : Fin n  Bool) (i : Fin C.gateCount) : Bool
    def FABL.BooleanCircuit.evalGate {n : }
      (C : FABL.BooleanCircuit n)
      (input : Fin n  Bool)
      (i : Fin C.gateCount) : Bool
    Evaluate a gate of an ordered Boolean DAG. 
  • defdefined in FABL/Chapter07/PCPP.lean
    complete
    def FABL.BooleanCircuit.eval {n : } (C : FABL.BooleanCircuit n)
      (input : Fin n  Bool) : Bool
    def FABL.BooleanCircuit.eval {n : }
      (C : FABL.BooleanCircuit n)
      (input : Fin n  Bool) : Bool
    Evaluate the output gate of a Boolean circuit. 
  • defdefined in FABL/Chapter07/PCPP.lean
    complete
    def FABL.BooleanCircuit.size {n : } (C : FABL.BooleanCircuit n) : 
    def FABL.BooleanCircuit.size {n : }
      (C : FABL.BooleanCircuit n) : 
    Circuit size in Definition 7.17. 
  • defdefined in FABL/Chapter07/PCPP.lean
    complete
    def FABL.BooleanCircuit.acceptedProperty {n : } (C : FABL.BooleanCircuit n)
      (input : Fin n  Bool) : Prop
    def FABL.BooleanCircuit.acceptedProperty
      {n : } (C : FABL.BooleanCircuit n)
      (input : Fin n  Bool) : Prop
    O'Donnell, Equation (7.2): the string property accepted by a circuit. 
Definition7.2.10
Group: Chapter 7: Property testing, PCPPs, and CSPs (103)
Group member previews
Preview
Definition 7.1.1
Loading preview
Group member preview content is loaded from the rendered-fragment cache.
Statement uses 2
Statement dependency previews
Preview
Definition 7.2.4
Loading preview
Statement dependency preview content is loaded from the rendered-fragment cache.
Used by 5
Reverse dependency previews
Preview
Theorem 7.2.11
Loading preview
Reverse dependency preview content is loaded from the rendered-fragment cache.
L∃∀N

Definition 7.17. A PCPP reduction is an algorithm which, given a finite encoding of a Boolean circuit C, outputs a description of a PCPP for the accepted property \mathcal C_C. It has query bound r, proof length \ell(n,\operatorname{size}(C)), and rejection rate \lambda when every output system has those parameters. Its machine running time is bounded by a polynomial in the two quantities \operatorname{size}(C) \quad\text{and}\quad \ell(n,\operatorname{size}(C)). This is a two-parameter output-sensitive bound; it is not ordinary polynomial time in the circuit encoding when \ell is exponential. For the canonical packed ordered-DAG encoding used by the formal machine adapter, \operatorname{size}(C) is the declared input length plus the gate count; the codec certifies that this representation size is bounded by the encoded bit length.

Lean code for Definition7.2.1015 declarations
  • structure(5 fields)defined in FABL/Chapter07/PCPP.lean
    complete
    structure FABL.PCPPDescription (n : ) [NeZero n] (P : (Fin n  Bool)  Prop) :
      Type 1
    structure FABL.PCPPDescription (n : ) [NeZero n]
      (P : (Fin n  Bool)  Prop) : Type 1
    A semantic PCPP description for a string property. The separate complexity adapter encodes
    this data and certifies the output-sensitive runtime of a reduction which produces it. 
    proofLength : 
    Proof length. 
    queryCount : 
    Query count. 
    system : FABL.PCPPSystem Bool n self.proofLength self.queryCount
    Finite verifier. 
    rejectionRate : 
    Rejection rate. 
    isPCPP : FABL.IsPCPP self.system P self.rejectionRate
    The verifier has the stated PCPP semantics. 
  • abbrevdefined in FABL/Chapter07/PCPP.lean
    complete
    abbrev FABL.SemanticPCPPReduction : Type 1
    abbrev FABL.SemanticPCPPReduction : Type 1
    The pure semantic layer of a PCPP reduction, before machine encoding and runtime charges. 
  • structure(4 fields)defined in FABL/Chapter07/Complexity.lean
    complete
    structure FABL.BinaryEncoding.{u_1} (A : Type u_1) : Type u_1
    structure FABL.BinaryEncoding.{u_1} (A : Type u_1) :
      Type u_1
    An injective binary encoding with a partial decoder. Failure to decode is represented by
    `none`; successful decoding is canonical. 
    encode : A  List Bool
    Encode a semantic object as a binary string. 
    decode : List Bool  Option A
    Decode a binary string, returning `none` on malformed input. 
    decode_encode :  (object : A), self.decode (self.encode object) = some object
    Encoding followed by decoding recovers the object. 
    encode_decode :  {bits : List Bool} {object : A}, self.decode bits = some object  self.encode object = bits
    Every successfully decoded string is the canonical encoding of its result. 
  • theoremdefined in FABL/Chapter07/Complexity.lean
    complete
    theorem FABL.BinaryEncoding.encode_injective.{u_1} {A : Type u_1}
      (encoding : FABL.BinaryEncoding A) :
      Function.Injective encoding.encode
    theorem FABL.BinaryEncoding.encode_injective.{u_1}
      {A : Type u_1}
      (encoding : FABL.BinaryEncoding A) :
      Function.Injective encoding.encode
    Every binary encoding is injective. 
  • defdefined in FABL/Chapter07/Complexity.lean
    complete
    def FABL.BinaryEncoding.language.{u_1} {A : Type u_1}
      (encoding : FABL.BinaryEncoding A) : Language Bool
    def FABL.BinaryEncoding.language.{u_1}
      {A : Type u_1}
      (encoding : FABL.BinaryEncoding A) :
      Language Bool
    Language of well-formed strings for an encoding. 
  • structure(3 fields)defined in FABL/Chapter07/Complexity.lean
    complete
    structure FABL.PackedBooleanCircuit : Type
    structure FABL.PackedBooleanCircuit : Type
    A Boolean circuit with the nonzero input length required by Definition 7.17. 
    inputLength : 
    Number of input bits. 
    inputLength_ne_zero : self.inputLength  0
    PCPP proximity is normalized by this positive input length. 
    circuit : FABL.BooleanCircuit self.inputLength
    Canonical ordered-DAG circuit from `PCPP.lean`. 
  • defdefined in FABL/Chapter07/Complexity.lean
    complete
    def FABL.PackedBooleanCircuit.size (C : FABL.PackedBooleanCircuit) : 
    def FABL.PackedBooleanCircuit.size
      (C : FABL.PackedBooleanCircuit) : 
    Representation size of a packed circuit: declared input coordinates plus ordered-DAG gates. 
  • structure(extends 1, 5 fields)defined in FABL/Chapter07/Complexity.lean
    complete
    structure FABL.BooleanCircuitEncoding : Type
    structure FABL.BooleanCircuitEncoding : Type
    An honest circuit encoding additionally records that the representation size is bounded by the
    encoded input length. This is the size-faithfulness needed to pass from output-sensitive time to
    ordinary input-length polynomial time. 
    • FABL.BinaryEncoding FABL.PackedBooleanCircuit
    encode : FABL.PackedBooleanCircuit  List Bool
    Inherited from
    1. FABL.BinaryEncoding
    decode : List Bool  Option FABL.PackedBooleanCircuit
    Inherited from
    1. FABL.BinaryEncoding
    decode_encode :  (object : FABL.PackedBooleanCircuit), self.decode (self.encode object) = some object
    Inherited from
    1. FABL.BinaryEncoding
    encode_decode :  {bits : List Bool} {object : FABL.PackedBooleanCircuit}, self.decode bits = some object  self.encode object = bits
    Inherited from
    1. FABL.BinaryEncoding
    size_le_encode_length :  (C : FABL.PackedBooleanCircuit), C.size  (self.encode C).length
    A serialized circuit contains at least one bit per unit of represented input and gate data. 
  • structure(3 fields)defined in FABL/Chapter07/Complexity.lean
    complete
    structure FABL.PackedPCPPDescription (semantic : FABL.SemanticPCPPReduction) :
      Type 1
    structure FABL.PackedPCPPDescription
      (semantic :
        FABL.SemanticPCPPReduction) :
      Type 1
    A PCPP description in the image of one fixed semantic reduction, packaged together with its
    source circuit. The equality field prevents the output codec from pretending to serialize an
    arbitrary real-valued PCPP description. 
    source : FABL.PackedBooleanCircuit
    Source circuit. 
    description : FABL.PCPPDescription self.source.inputLength self.source.circuit.acceptedProperty
    Semantic PCPP description for the source circuit. 
    description_eq : self.description = semantic self.source.circuit
    The description is exactly the output selected by the semantic reduction. 
  • defdefined in FABL/Chapter07/Complexity.lean
    complete
    def FABL.packPCPPDescription (semantic : FABL.SemanticPCPPReduction)
      (C : FABL.PackedBooleanCircuit) :
      FABL.PackedPCPPDescription fun {n} [NeZero n] => semantic
    def FABL.packPCPPDescription
      (semantic : FABL.SemanticPCPPReduction)
      (C : FABL.PackedBooleanCircuit) :
      FABL.PackedPCPPDescription
        fun {n} [NeZero n] => semantic
    Package the output of an existing semantic PCPP reduction. 
  • structure(3 fields)defined in FABL/Chapter07/Complexity.lean
    complete
    structure FABL.PolynomialTimeBound₂ : Type
    structure FABL.PolynomialTimeBound₂ : Type
    A two-parameter time bound certified polynomial in the sum of its parameters. Over natural
    parameters this is the standard `poly(first, second)` bound while retaining the two arguments in
    the machine statement. 
    timeBound :     
    Concrete bound as a function of two size parameters. 
    polynomial : Polynomial 
    Polynomial majorant. 
    le_polynomial :  (first second : ), self.timeBound first second  Polynomial.eval (first + second) self.polynomial
    The two-parameter bound is polynomial. 
  • structure(7 fields)defined in FABL/Chapter07/Complexity.lean
    complete
    structure FABL.OutputSensitivePCPPReduction
      (circuitEncoding : FABL.BooleanCircuitEncoding) : Type 1
    structure FABL.OutputSensitivePCPPReduction
      (circuitEncoding :
        FABL.BooleanCircuitEncoding) :
      Type 1
    Definition 7.17's machine boundary. The machine runs on total binary strings, with malformed
    encodings handled by the explicit `none` decoder branch. On a valid circuit its CSLib runtime is
    bounded in the two independent parameters `size C` and the generated proof length. 
    semantic : FABL.SemanticPCPPReduction
    Pure PCPP construction. 
    descriptionEncoding : FABL.BinaryEncoding (FABL.PackedPCPPDescription fun {n} [NeZero n] => self.semantic)
    Binary encoding of semantic outputs. 
    output : List Bool  List Bool
    Total encoded output function; behavior on malformed encodings remains explicit below. 
    output_encode :  (C : FABL.PackedBooleanCircuit),
      self.output (circuitEncoding.encode C) =
        self.descriptionEncoding.encode (FABL.packPCPPDescription (fun {n} [NeZero n] => self.semantic) C)
    The machine's output agrees with the semantic PCPP construction on canonical inputs. 
    machine : Cslib.Turing.SingleTapeTM Bool
    Underlying CSLib single-tape machine. 
    runtime : FABL.PolynomialTimeBound₂
    Runtime as a polynomially bounded function of circuit size and proof length. 
    outputsWithinTime :  (input : List Bool),
      self.machine.OutputsWithinTime input (self.output input)
        (match circuitEncoding.decode input with
        | some C => self.runtime.timeBound C.size (self.semantic C.circuit).proofLength
        | none => self.runtime.timeBound input.length 0)
    Actual CSLib bounded execution. Malformed strings use `(input.length, 0)`; valid strings use
    `(circuit size, generated proof length)`. 
  • structure(2 fields)defined in FABL/Chapter07/Complexity.lean
    complete
    structure FABL.ProofLengthPolynomiallyBounded
      {circuitEncoding : FABL.BooleanCircuitEncoding}
      (reduction : FABL.OutputSensitivePCPPReduction circuitEncoding) : Type
    structure FABL.ProofLengthPolynomiallyBounded
      {circuitEncoding :
        FABL.BooleanCircuitEncoding}
      (reduction :
        FABL.OutputSensitivePCPPReduction
          circuitEncoding) :
      Type
    The additional condition under which an output-sensitive PCPP construction is ordinary
    input-length polynomial time. 
    polynomial : Polynomial 
    Polynomial proof-length majorant in circuit representation size. 
    proofLength_le :  (C : FABL.PackedBooleanCircuit), (reduction.semantic C.circuit).proofLength  Polynomial.eval C.size self.polynomial
    Generated proof lengths obey the majorant. 
  • defdefined in FABL/Chapter07/Complexity.lean
    complete
    def FABL.OutputSensitivePCPPReduction.toPolyTimeComputable
      {circuitEncoding : FABL.BooleanCircuitEncoding}
      (reduction : FABL.OutputSensitivePCPPReduction circuitEncoding)
      (hproof : FABL.ProofLengthPolynomiallyBounded reduction) :
      Cslib.Turing.SingleTapeTM.PolyTimeComputable reduction.output
    def FABL.OutputSensitivePCPPReduction.toPolyTimeComputable
      {circuitEncoding :
        FABL.BooleanCircuitEncoding}
      (reduction :
        FABL.OutputSensitivePCPPReduction
          circuitEncoding)
      (hproof :
        FABL.ProofLengthPolynomiallyBounded
          reduction) :
      Cslib.Turing.SingleTapeTM.PolyTimeComputable
        reduction.output
    An output-sensitive PCPP reduction becomes CSLib polynomial-time computable when its proof
    length is polynomially bounded by circuit size. 
  • defdefined in FABL/Chapter07/Complexity.lean
    complete
    def FABL.OutputSensitivePCPPReduction.toPolytimeMap
      {circuitEncoding : FABL.BooleanCircuitEncoding}
      (reduction : FABL.OutputSensitivePCPPReduction circuitEncoding)
      (hproof : FABL.ProofLengthPolynomiallyBounded reduction) :
      FABL.PolytimeMap
    def FABL.OutputSensitivePCPPReduction.toPolytimeMap
      {circuitEncoding :
        FABL.BooleanCircuitEncoding}
      (reduction :
        FABL.OutputSensitivePCPPReduction
          circuitEncoding)
      (hproof :
        FABL.ProofLengthPolynomiallyBounded
          reduction) :
      FABL.PolytimeMap
    The corresponding book-facing polynomial-time map, available under the same proof-length
    hypothesis and not otherwise. 
Theorem7.2.11
Group: Chapter 7: Property testing, PCPPs, and CSPs (103)
Group member previews
Preview
Definition 7.1.1
Loading preview
Group member preview content is loaded from the rendered-fragment cache.
Statement uses 2
Statement dependency previews
Preview
Theorem 7.2.7
Loading preview
Statement dependency preview content is loaded from the rendered-fragment cache.
used by 0L∃∀N

Theorem 7.18. There is a 3-query PCPP reduction with proof length 2^{2^n} and rejection rate 0.001. The reduction enumerates the accepted property of the input circuit and instantiates the construction of Theorem 7.16 within time polynomial in the circuit size and its output length.

The associated production declarations prove the complete finite semantic construction and its exact resources. The machine-facing output-sensitive certificate is represented by Definition 7.17's injected CSLib adapter; no ordinary input-length polynomial-time conclusion is inferred for this doubly-exponential output.

Lean code for Theorem7.2.112 declarations
  • defdefined in FABL/Chapter07/PCPPConstructions.lean
    complete
    def FABL.exhaustiveCircuitSemanticPCPPReduction : FABL.SemanticPCPPReduction
    def FABL.exhaustiveCircuitSemanticPCPPReduction :
      FABL.SemanticPCPPReduction
    The pure semantic reduction in Theorem 7.18 applies Theorem 7.16 to the property accepted
    by the input circuit. Its output-sensitive running-time certification belongs to the complexity
    adapter. 
  • theoremdefined in FABL/Chapter07/PCPPConstructions.lean
    complete
    theorem FABL.exhaustiveCircuitSemanticPCPPReduction_resources {n : } [NeZero n]
      (C : FABL.BooleanCircuit n) :
      (FABL.exhaustiveCircuitSemanticPCPPReduction C).proofLength =
          2 ^ 2 ^ n 
        (FABL.exhaustiveCircuitSemanticPCPPReduction C).queryCount = 3 
          (FABL.exhaustiveCircuitSemanticPCPPReduction C).rejectionRate =
            1 / 1000
    theorem FABL.exhaustiveCircuitSemanticPCPPReduction_resources
      {n : } [NeZero n]
      (C : FABL.BooleanCircuit n) :
      (FABL.exhaustiveCircuitSemanticPCPPReduction
              C).proofLength =
          2 ^ 2 ^ n 
        (FABL.exhaustiveCircuitSemanticPCPPReduction
                C).queryCount =
            3 
          (FABL.exhaustiveCircuitSemanticPCPPReduction
                C).rejectionRate =
            1 / 1000
    O'Donnell, Theorem 7.18, semantic part: the exhaustive circuit reduction has proof length
    `2^(2^n)`, three queries, and rejection rate `.001`. 
Theorem7.2.12
Group: Chapter 7: Property testing, PCPPs, and CSPs (103)
Group member previews
Preview
Definition 7.1.1
Loading preview
Group member preview content is loaded from the rendered-fragment cache.
Statement uses 2
Statement dependency previews
Preview
Definition 7.2.10
Loading preview
Statement dependency preview content is loaded from the rendered-fragment cache.
used by 0L∃∀N

Theorem 7.19. There is a 3-query PCPP reduction of proof length 2^{\operatorname{poly}(\operatorname{size}(C))} and positive universal rejection rate.

For the ordered-DAG representation, the proved size parameter is the input length plus the gate count. This is necessary even when a circuit leaves some declared inputs unused. The construction has rejection rate 1/12800000 and proof length at most 2^{12(n+\operatorname{gateCount}(C)+2)^2}. Its semantic reduction is unconditional; the output-sensitive CSLib layer requires a concrete codec and machine certificate satisfying Definition 7.17's adapter. The ordinary-input PolytimeMap specialization is not applicable here because this theorem deliberately has exponential proof length; its running time is polynomial in the output length instead.

Lean code for Theorem7.2.126 declarations
  • defdefined in FABL/Chapter07/QuadraticCircuitReduction.lean
    complete
    def FABL.quadraticCircuitSemanticPCPPReduction : FABL.SemanticPCPPReduction
    def FABL.quadraticCircuitSemanticPCPPReduction :
      FABL.SemanticPCPPReduction
    Theorem 7.19's semantic three-query PCPP reduction for Boolean circuits. 
  • theoremdefined in FABL/Chapter07/QuadraticCircuitReduction.lean
    complete
    theorem FABL.quadraticCircuitSemanticPCPPReduction_resources {n : } [NeZero n]
      (C : FABL.BooleanCircuit n) :
      (FABL.quadraticCircuitSemanticPCPPReduction C).queryCount = 3 
        (FABL.quadraticCircuitSemanticPCPPReduction C).rejectionRate =
          1 / 12800000
    theorem FABL.quadraticCircuitSemanticPCPPReduction_resources
      {n : } [NeZero n]
      (C : FABL.BooleanCircuit n) :
      (FABL.quadraticCircuitSemanticPCPPReduction
              C).queryCount =
          3 
        (FABL.quadraticCircuitSemanticPCPPReduction
              C).rejectionRate =
          1 / 12800000
    Theorem 7.19 has three queries and a universal positive rejection rate. 
  • theoremdefined in FABL/Chapter07/QuadraticCircuitReduction.lean
    complete
    theorem FABL.quadraticCircuitSemanticPCPPReduction_proofLength {n : }
      [NeZero n] (C : FABL.BooleanCircuit n) :
      (FABL.quadraticCircuitSemanticPCPPReduction C).proofLength =
        C.circuitQuadraticPCPPProofLength +
          64 * C.circuitQuadraticFourQueryPCPPSystem.descriptionSize
    theorem FABL.quadraticCircuitSemanticPCPPReduction_proofLength
      {n : } [NeZero n]
      (C : FABL.BooleanCircuit n) :
      (FABL.quadraticCircuitSemanticPCPPReduction
            C).proofLength =
        C.circuitQuadraticPCPPProofLength +
          64 *
            C.circuitQuadraticFourQueryPCPPSystem.descriptionSize
    Theorem 7.19 retains the exact finite proof-length formula from Exercise 7.12. 
  • theoremdefined in FABL/Chapter07/QuadraticCircuitReduction.lean
    complete
    theorem FABL.quadraticCircuitSemanticPCPPReduction_proofLength_le_explicit
      {n : } [NeZero n] (C : FABL.BooleanCircuit n) :
      (FABL.quadraticCircuitSemanticPCPPReduction C).proofLength 
        2 ^ (12 * (n + C.gateCount + 2) ^ 2)
    theorem FABL.quadraticCircuitSemanticPCPPReduction_proofLength_le_explicit
      {n : } [NeZero n]
      (C : FABL.BooleanCircuit n) :
      (FABL.quadraticCircuitSemanticPCPPReduction
            C).proofLength 
        2 ^ (12 * (n + C.gateCount + 2) ^ 2)
    Theorem 7.19's three-query proof length is bounded by a single exponential in an explicit
    quadratic polynomial of the input length plus circuit gate count. 
  • abbrevdefined in FABL/Chapter07/QuadraticCircuitReduction.lean
    complete
    abbrev FABL.QuadraticCircuitOutputSensitiveAdapter
      (circuitEncoding : FABL.BooleanCircuitEncoding) : Type 1
    abbrev FABL.QuadraticCircuitOutputSensitiveAdapter
      (circuitEncoding :
        FABL.BooleanCircuitEncoding) :
      Type 1
    The narrow machine boundary for Theorem 7.19: implementations certify the already-proved
    semantic construction through the existing output-sensitive Exercise 7.12 adapter. 
  • theoremdefined in FABL/Chapter07/QuadraticCircuitReduction.lean
    complete
    theorem FABL.QuadraticCircuitOutputSensitiveAdapter.semantic_eq_canonical
      {circuitEncoding : FABL.BooleanCircuitEncoding}
      (adapter :
        FABL.QuadraticCircuitOutputSensitiveAdapter circuitEncoding)
      {n : } [NeZero n] (C : FABL.BooleanCircuit n) :
      adapter.outputSensitive.semantic C =
        FABL.quadraticCircuitSemanticPCPPReduction C
    theorem FABL.QuadraticCircuitOutputSensitiveAdapter.semantic_eq_canonical
      {circuitEncoding :
        FABL.BooleanCircuitEncoding}
      (adapter :
        FABL.QuadraticCircuitOutputSensitiveAdapter
          circuitEncoding)
      {n : } [NeZero n]
      (C : FABL.BooleanCircuit n) :
      adapter.outputSensitive.semantic C =
        FABL.quadraticCircuitSemanticPCPPReduction
          C
    An output-sensitive implementation computes exactly the canonical three-query semantics. 
Theorem7.2.13
Group: Chapter 7: Property testing, PCPPs, and CSPs (103)
Group member previews
Preview
Definition 7.1.1
Loading preview
Group member preview content is loaded from the rendered-fragment cache.
uses 1used by 1XL∃∀N

The PCPP Theorem. There is a 3-query PCPP reduction whose proof length is polynomial in \operatorname{size}(C) and whose rejection rate is a positive universal constant.

This quoted PCP/PCPP result is not proved in the book and supplies no assumption to the production library.

Theorem7.2.14
Group: Chapter 7: Property testing, PCPPs, and CSPs (103)
Group member previews
Preview
Definition 7.1.1
Loading preview
Group member preview content is loaded from the rendered-fragment cache.
uses 1used by 0XL∃∀N

Theorem 7.20. There is a 3-query PCPP reduction with proof length \operatorname{size}(C)\, \operatorname{polylog}(\operatorname{size}(C)) and positive universal rejection rate.

The near-linear PCPP theorem is external to the book and remains a statement-only node.