Summary
Upstream Jolt decomposes the combined ra polynomial into a product of d one-hot chunk polynomials via a virtualization sumcheck:
Σ_c eq(r_cycle_reduced, c) · Π_{i=0}^{d-1} ra_i(r_addr_chunk_i, c) = ra_claim_reduced
Where d is the number of one-hot decomposition chunks and ra_i are the committed one-hot polynomials (committed via Dory as CommittedPolynomial::RamRa(i)).
This is a degree d+1 sumcheck over log_T rounds. After completion, each ra_i(r_addr_chunk_i, r_cycle_final) becomes a committed polynomial opening sent to the commitment scheme.
Why
This is the bridge between the virtual ra polynomial used in sumchecks and the actual committed one-hot chunk polynomials. Without it, we can't reduce ra claims to commitment openings.
Depends on
- RamRaClaimReduction (provides the single
ra_claim_reduced input)
Reference
- Upstream:
jolt-core/src/zkvm/ram/ra_virtual.rs
- One-hot polynomials:
jolt-core/src/poly/one_hot_polynomial.rs (Dory commitment interface)
- RaPolynomial:
jolt-core/src/poly/ra_poly.rs (PIOP sumcheck polynomial)
Summary
Upstream Jolt decomposes the combined
rapolynomial into a product ofdone-hot chunk polynomials via a virtualization sumcheck:Where
dis the number of one-hot decomposition chunks andra_iare the committed one-hot polynomials (committed via Dory asCommittedPolynomial::RamRa(i)).This is a degree
d+1sumcheck overlog_Trounds. After completion, eachra_i(r_addr_chunk_i, r_cycle_final)becomes a committed polynomial opening sent to the commitment scheme.Why
This is the bridge between the virtual
rapolynomial used in sumchecks and the actual committed one-hot chunk polynomials. Without it, we can't reduceraclaims to commitment openings.Depends on
ra_claim_reducedinput)Reference
jolt-core/src/zkvm/ram/ra_virtual.rsjolt-core/src/poly/one_hot_polynomial.rs(Dory commitment interface)jolt-core/src/poly/ra_poly.rs(PIOP sumcheck polynomial)