@@ -15,8 +15,14 @@ Soundness target for the LogUp lookup argument (Cryptology ePrint Archive, Paper
1515The protocol verifier is the sequential composition of three phases (outer LogUp, embedded
1616sumcheck, final point check), so its soundness error decomposes as a sum of one error per phase.
1717We bound each phase separately and combine them with `OracleVerifier.append_soundness`, which
18- turns the soundness of a composed verifier into the sum of the parts' errors. This matches the
19- paper's Theorem 4, where the total error is `ε₁ + ε₂ + ε₃ + εsumcheck`.
18+ turns the soundness of a composed verifier into the sum of the parts' errors.
19+
20+ The paper's Theorem 4 presents the bound as `ε₁ + ε₂ + ε₃ + εsumcheck`, grouped by the
21+ mathematical bad events. The formal proof below instead groups errors by the verifier phases where
22+ the relevant challenges are sampled. In particular, the Lagrange-kernel contribution called `ε₂`
23+ in the paper is proved as part of the outer phase here, because the outer phase samples that point.
24+ Following Remark 3, this verifier also samples the outer challenge `x` from all of `F`, so the
25+ outer bound separately pays for the chance that `x` hits a denominator pole.
2026-/
2127
2228open scoped NNReal BigOperators
@@ -46,7 +52,9 @@ nonzero multilinear domain identity, and the batching scalar that combines the `
4652claims into one.
4753
4854The first two terms are an unconditional union bound over denominator poles and roots of the
49- cleared lookup identity. -/
55+ cleared lookup identity. The `params.numGroups * n / |F|` term bounds the chance that the sampled
56+ Lagrange-kernel point hides one of the nonzero domain identities. The paper accounts for this as
57+ `ε₂`; here it appears in the outer-phase error because this phase samples the point. -/
5058noncomputable def logupOuterSoundnessError (F : Type ) [Fintype F] (n M : ℕ)
5159 (params : ProtocolParams M) : ℝ≥0 :=
5260 ((((M + 1 ) * Fintype.card (Fin n → Fin 2 ) : ℕ) : ℝ≥0 ) /
@@ -56,11 +64,13 @@ noncomputable def logupOuterSoundnessError (F : Type) [Fintype F] (n M : ℕ)
5664 (((params.numGroups * n : ℕ) : ℝ≥0 ) / (Fintype.card F : ℝ≥0 )) +
5765 ((1 : ℕ) : ℝ≥0 ) / (Fintype.card F : ℝ≥0 )
5866
59- /-- Soundness error of the final LogUp point check (paper's `ε₂ = K/|F|`) .
67+ /-- Current error budget assigned to the final LogUp point- check phase in the composed theorem .
6068
61- This is the cost of reducing the domain identities to the Lagrange-kernel point evaluation, since
62- scalar products with the Lagrange kernel translate to point evaluation of the multilinear
63- extension. -/
69+ The final verifier has no fresh challenges: once the sumcheck final claim and retained oracles are
70+ fixed, it either accepts or rejects deterministically. Its standalone soundness error could
71+ therefore be stated as `0`. The composed statement currently keeps a separate `K / |F|` term for
72+ this phase; the mathematical bad event corresponding to the paper's `ε₂` is already proved in
73+ `logupOuterSoundnessError`, so this definition can likely be tightened later. -/
6474noncomputable def logupFinalCheckSoundnessError (F : Type ) [Fintype F] (M : ℕ)
6575 (params : ProtocolParams M) : ℝ≥0 :=
6676 ((params.numGroups : ℕ) : ℝ≥0 ) / (Fintype.card F : ℝ≥0 )
@@ -1953,8 +1963,8 @@ language, the reconstructed value `qAtPoint` disagrees with the claimed target a
19531963rejects. -/
19541964
19551965omit [SampleableType F] in
1956- /-- Soundness of the final LogUp point check, with error `logupFinalCheckSoundnessError`
1957- (paper's `ε₂ = K/|F|`) . -/
1966+ /-- Soundness of the deterministic final LogUp point check, using the current final-phase error
1967+ budget `logupFinalCheckSoundnessError` . -/
19581968theorem logup_finalCheck_soundness :
19591969 (finalCheckVerifier oSpec F n M params).soundness init impl
19601970 (logupAfterSumcheckRelation F n M params).language
0 commit comments