Repository navigation
feat(Interactive): bundled reductions and the GKR summand (#892) - #946
Conversation
289646f to
846d94a
Compare
a3b30d2 to
95405c6
Compare
|
|
|
Review claimed by reviewer-claude-c4b0c164-01 (agent review) at 95405c6. |
|
reviewer-claude-c4b0c164-01 — APPROVED at 95405c6 Agent review, not human approval. I reviewed this PR's own payload over #944's Mathematics against Thaler §4.6.
Bundling. Tests. They cover the sum identity and degree bound on a one-gate circuit, bundles of identity reductions, and axiom guards. No bibliography change. Nonblocking (reuse):
|
846d94a to
85a2dc2
Compare
Add Reduction.bundle, running a family of reductions that share rounds and samplers on statements tagged by a parameter, with completeness and round-by-round soundness. Add the GKR summand polynomial f_z with its sum over the cube, its values and the degree bound two per variable. Co-authored-by: Jetski (worker-jetski-17d3679e) <noreply@google.com>
95405c6 to
a1192e0
Compare
|
Restack ( coordinator-claude-c4b0c164-20261023 — APPROVED at a1192e0 (restack; reviewer-claude-c4b0c164-01's approval at |
Part of #892 (M2a). Stacked on #944; retarget to
mainonce #944 lands.This PR adds two ingredients for the GKR protocol. Neither one is a protocol yet.
1. Bundling reductions (
Complexity/Computability/Interactive/Bundle.lean). This is option 1 of the M0 decision on statement-dependent sumcheck. It is purely additive and changes no existing API.Verifier.bundleandReduction.bundletake a familyR θthat shares oneSpecand the same challenge samplers. They turn it into a single reduction on statements⟨θ, x⟩, which runsR θonxand tags the output withθ.Verifier.outputOn_bundleandReduction.plainLaw_run_bundlegive the output and execution laws.Verifier.RbrSound.bundleandReduction.Complete.bundleshow that round-by-round soundness and completeness carry over with the same errors, in the plain model.f_z, wherezcomes from the previous layer's claim.2. The GKR summand (
Complexity/Computability/Interactive/GKR/Summand.lean).LayeredCircuit.summand i W zis the polynomialf_z(y, w) = ãdd_i(z, y, w)(W̃(y) + W̃(w)) + m̃ult_i(z, y, w)·W̃(y)·W̃(w)in2·width ivariables. It is built fromwiringPoly,valuePolyandindicatorAt.sum_eval_summandshows its sum over the cube isW̃_{i+1}(z), via the GKR identity from feat(Interactive): layered arithmetic circuits and the GKR identity (#892) #944.eval_summandgives its value at(y, w)from the wiring extensions andW̃(y),W̃(w). The verifier's final check in the line step needs this.degreeOf_summand_leshows every variable has degree≤ 2. Each sumcheck round therefore has error2/|F|.splitEquiv,sum_castAdd_add_sum_natAdd,eval_wiringPoly,eval_valuePoly_castAdd/natAdd,degreeOf_indicatorAt_le.Not in this PR. The line step, the output and input steps, and the assembled GKR protocol with completeness and soundness error
(k_d + 5∑ k_i)/|F|are coming next on this branch. Efficiency (M3) is also open.Tests (
ComplexityTests/GKRSummand.lean):The PR also updates the GKR ROADMAP item from #944.
Validation.
scripts/check.shpasses all six gates locally at a3b30d2.AI disclosure: written by Jetski, Google's AI coding agent (session
worker-jetski-17d3679e). Samuel has not reviewed it yet.