binius_core/protocols/evalcheck/
mod.rs

1// Copyright 2023-2025 Irreducible Inc.
2
3//! The multivariate evalcheck polynomial protocol.
4//!
5//! This protocol can be used to verify a list of evaluation claims on the multilinears in the
6//! [`crate::oracle::MultilinearOracleSet`]. For each claim, if they contain a subclaim, we
7//! recursively prove the subclaim. Otherwise, we evaluate the claim if they are virtual, further
8//! reduced to sumcheck constraints for [`crate::oracle::MultilinearPolyVariant::Shifted`],
9//! [`crate::oracle::MultilinearPolyVariant::Packed`],
10//! or [`crate::oracle::MultilinearPolyVariant::Composite`].
11//! All the committed polynomials are collected and should be handled by the [`crate::ring_switch`]
12//! module. [`crate::protocols::greedy_evalcheck`] shows how the protocol is used in a
13//! round-by-round manner. See [`EvalcheckProver::prove`] for more details.
14
15mod error;
16#[allow(clippy::module_inception)]
17mod evalcheck;
18mod logging;
19mod prove;
20pub mod subclaims;
21#[cfg(test)]
22mod tests;
23mod verify;
24
25pub use error::*;
26pub use evalcheck::*;
27pub use prove::*;
28pub use verify::*;