//! Hash-based accumulation of evaluation claims on Reed–Solomon codewords,
//! and its decider.
//!
//! An *instance* is a WHIR-committed word `u: L → K` (root, base or Fp3
//! symbols) with evaluation claims `f(z_j) = y_j` on its message `f` (the
//! multilinear whose monomial coefficients define `û`, `û(x) = f(pow(x))`).
//! It is accepted (relaxed relation) when `u` is `δ`-close to a codeword of
//! `C = RS[K, L, 2^ℓ]` whose message satisfies every claim.
//!
//! An accumulation step reduces `m` instances (an accumulator and fresh
//! ones alike) to one *accumulator*: a new Fp3 word `g` with
//! `1 + s + t` claims, whatever `m` and whatever the depth — the distance
//! `δ` is preserved, so steps compose without bound. The step is the
//! claim-carrying form of WARP (Bünz–Chiesa–Fenzi–Wang, eprint 2025/753:
//! pseudo-batching §6, codeword batching Construction 7.2) instantiated for
//! Reed–Solomon codes with univariate out-of-domain samples as in ARC
//! (Bünz–Mishra–Nguyen–Wang, eprint 2024/1731, §2.1) and WHIR:
//!
//! 1. `γ`; sumcheck reduces every claim of every word to one point `ρ`;
//! the prover sends `μ_i = f_i(ρ)`;
//! 2. grinding, `r`; the virtual word `u' = Σ r^{i} u_i` carries the claim
//! `f'(ρ) = Σ r^{i} μ_i`;
//! 3. the prover commits `g` (honestly `u'`), answers `s` OOD samples;
//! 4. grinding, `t` positions `x_k ∈ L`; every input word is opened there
//! and `y_k = Σ r^i u_i(x_k)` becomes the claim `ĝ(x_k) = y_k`.
//!
//! The decider proves one accumulator with a claim-batching sumcheck and a
//! single WHIR opening of `g` at the resulting point. See
//! `specs/accumulation.md`; parameters and the round-by-round bound in
//! [`config`].
pub use ;
pub use ;
pub use ;
use WhirData;
use pow_point;
use ;
use Fp3;
/// `f(point) = value` on a word's message; `point` in lens order (variable
/// `k` ↔ bit `k` of a table index).
/// A committed word and its claims.
/// An instance with the prover's committed data.
/// Absorb an accumulation configuration into a running transcript.
/// The transcript every step and decider of one accumulation runs on:
/// domain, the caller's context bytes and the configuration.
Homonyms
cyb/evy/forks/naga/src/back/hlsl/mod.rs
struct Baz { m: mat3x2, } struct Baz { float2 m_0; float2 m_1; float2 m_2; }; float3x2 GetMatmOnBaz(Baz obj) { return float3x2(obj.m_0, obj.m_1, obj.m_2); }