Documentation

MIPRE.Foundations.CL.ProductSampler

The product of a typed sampler and a directly answered one: the presentations #

The answer-reduced sampler (sec:ar-verifier, ld_compiler.tex) is the direct sum of the oracularized sampler, whose queries are answered by a program, and the downsized PCP sampler, whose queries a polynomial-time function answers outright. This file is the CL half of that construction, for any two families of presentations on 𝔽₂^a and 𝔽₂^b:

Beyond the level #

theorem MIPRE.CL.CLFun.eval_truncate_of_le {F : Type u_1} [Semiring F] {ι : Type u_2} [DecidableEq ι] [Fintype ι] {ℓ : ℕ} (P : CLFun F ι ℓ) {j : ℕ} (h : ℓ ≤ j) (x : ι → F) :
(truncate j P).eval x = P.eval x
theorem MIPRE.CL.CLFun.mapOfPrefix_of_le {F : Type u_1} [Semiring F] {ι : Type u_2} [DecidableEq ι] [Fintype ι] {ℓ : ℕ} (P : CLFun F ι ℓ) {k : ℕ} (h : ℓ ≤ k) (u : ι → F) :
P.mapOfPrefix k u = 0
theorem MIPRE.CL.CLFun.factorOfPrefix_of_le {F : Type u_1} [Semiring F] {ι : Type u_2} [DecidableEq ι] [Fintype ι] {ℓ : ℕ} (P : CLFun F ι ℓ) {k : ℕ} (h : ℓ ≤ k) (u : ι → F) :

Splitting vectors of 𝔽₂^{a + b} #

def MIPRE.CL.leftPart {a b : ℕ} (x : Fin (a + b) → 𝔽₂) :
Fin a → 𝔽₂

The first a coordinates.

Equations
Instances For
    def MIPRE.CL.rightPart {a b : ℕ} (x : Fin (a + b) → 𝔽₂) :
    Fin b → 𝔽₂

    The last b coordinates.

    Equations
    Instances For
      @[simp]
      theorem MIPRE.CL.leftPart_append {a b : ℕ} (v : Fin a → 𝔽₂) (w : Fin b → 𝔽₂) :
      @[simp]
      theorem MIPRE.CL.rightPart_append {a b : ℕ} (v : Fin a → 𝔽₂) (w : Fin b → 𝔽₂) :
      theorem MIPRE.CL.toBits_append {a b : ℕ} (v : Fin a → 𝔽₂) (w : Fin b → 𝔽₂) :
      theorem MIPRE.CL.take_toBits {a b : ℕ} (x : Fin (a + b) → 𝔽₂) :
      theorem MIPRE.CL.drop_toBits {a b : ℕ} (x : Fin (a + b) → 𝔽₂) :

      The product presentation #

      noncomputable def MIPRE.CL.CLFun.prodCL {a b ℓa ℓb : ℕ} (L : ℕ) (P : CLFun 𝔽₂ (Fin a) ℓa) (Q : CLFun 𝔽₂ (Fin b) ℓb) (ha : ℓa ≤ L) (hb : ℓb ≤ L) :
      CLFun 𝔽₂ (Fin (a + b)) L

      P and Q padded to L levels, side by side on 𝔽₂^{a + b}: P on the first a coordinates.

      Equations
      Instances For
        theorem MIPRE.CL.CLFun.ExactlyOn.prodCL {a b ℓa ℓb : ℕ} (L : ℕ) {P : CLFun 𝔽₂ (Fin a) ℓa} {Q : CLFun 𝔽₂ (Fin b) ℓb} (hP : P.ExactlyOn Finset.univ) (hQ : Q.ExactlyOn Finset.univ) (ha : ℓa ≤ L) (hb : ℓb ≤ L) :
        theorem MIPRE.CL.CLFun.eval_truncate_prodCL {a b ℓa ℓb : ℕ} (L : ℕ) {P : CLFun 𝔽₂ (Fin a) ℓa} {Q : CLFun 𝔽₂ (Fin b) ℓb} (hP : P.ExactlyOn Finset.univ) (hQ : Q.ExactlyOn Finset.univ) (ha : ℓa ≤ L) (hb : ℓb ≤ L) (j : ℕ) (x : Fin (a + b) → 𝔽₂) :
        (truncate j (prodCL L P Q ha hb)).eval x = Fin.append ((truncate j P).eval (leftPart x)) ((truncate j Q).eval (rightPart x))
        theorem MIPRE.CL.CLFun.toBits_eval_truncate_prodCL {a b ℓa ℓb : ℕ} (L : ℕ) {P : CLFun 𝔽₂ (Fin a) ℓa} {Q : CLFun 𝔽₂ (Fin b) ℓb} (hP : P.ExactlyOn Finset.univ) (hQ : Q.ExactlyOn Finset.univ) (ha : ℓa ≤ L) (hb : ℓb ≤ L) (j : ℕ) (x : Fin (a + b) → 𝔽₂) :
        toBits ((truncate j (prodCL L P Q ha hb)).eval x) = toBits ((truncate j P).eval (leftPart x)) ++ toBits ((truncate j Q).eval (rightPart x))
        theorem MIPRE.CL.CLFun.mapOfPrefix_prodCL {a b ℓa ℓb : ℕ} (L : ℕ) {P : CLFun 𝔽₂ (Fin a) ℓa} {Q : CLFun 𝔽₂ (Fin b) ℓb} (hP : P.ExactlyOn Finset.univ) (hQ : Q.ExactlyOn Finset.univ) (ha : ℓa ≤ L) (hb : ℓb ≤ L) (k : ℕ) (u y : Fin (a + b) → 𝔽₂) :
        ((prodCL L P Q ha hb).mapOfPrefix k u) y = Fin.append ((P.mapOfPrefix k (leftPart u)) (leftPart y)) ((Q.mapOfPrefix k (rightPart u)) (rightPart y))
        theorem MIPRE.CL.CLFun.toBits_mapOfPrefix_prodCL {a b ℓa ℓb : ℕ} (L : ℕ) {P : CLFun 𝔽₂ (Fin a) ℓa} {Q : CLFun 𝔽₂ (Fin b) ℓb} (hP : P.ExactlyOn Finset.univ) (hQ : Q.ExactlyOn Finset.univ) (ha : ℓa ≤ L) (hb : ℓb ≤ L) (k : ℕ) (u y : Fin (a + b) → 𝔽₂) :
        toBits (((prodCL L P Q ha hb).mapOfPrefix k u) y) = toBits ((P.mapOfPrefix k (leftPart u)) (leftPart y)) ++ toBits ((Q.mapOfPrefix k (rightPart u)) (rightPart y))
        theorem MIPRE.CL.CLFun.factorOfPrefix_prodCL {a b ℓa ℓb : ℕ} (L : ℕ) {P : CLFun 𝔽₂ (Fin a) ℓa} {Q : CLFun 𝔽₂ (Fin b) ℓb} (hP : P.ExactlyOn Finset.univ) (hQ : Q.ExactlyOn Finset.univ) (ha : ℓa ≤ L) (hb : ℓb ≤ L) (k : ℕ) (u : Fin (a + b) → 𝔽₂) :
        theorem MIPRE.CL.CLFun.indicatorBits_factorOfPrefix_prodCL {a b ℓa ℓb : ℕ} (L : ℕ) {P : CLFun 𝔽₂ (Fin a) ℓa} {Q : CLFun 𝔽₂ (Fin b) ℓb} (hP : P.ExactlyOn Finset.univ) (hQ : Q.ExactlyOn Finset.univ) (ha : ℓa ≤ L) (hb : ℓb ≤ L) (k : ℕ) (u : Fin (a + b) → 𝔽₂) :