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 [`crate::oracle::MultilinearOracleSet`].
6//! For each claim, if they contain a subclaim, we recursively prove the subclaim. Otherwise,
7//! we evaluate the claim if they are virtual, further reduced to sumcheck constraints for
8//! [`crate::oracle::MultilinearPolyVariant::Shifted`], [`crate::oracle::MultilinearPolyVariant::Packed`],
9//! or [`crate::oracle::MultilinearPolyVariant::Composite`].
10//! All the committed polynomials are collected and should be handled by the [`crate::ring_switch`] module.
11//! [`crate::protocols::greedy_evalcheck`] shows how the protocol is used in a round-by-round manner.
12//! See [`EvalcheckProver::prove`] for more details.
13
14mod error;
15#[allow(clippy::module_inception)]
16mod evalcheck;
17mod logging;
18mod prove;
19pub mod subclaims;
20#[cfg(test)]
21mod tests;
22mod verify;
23
24pub use error::*;
25pub use evalcheck::*;
26pub use prove::*;
27pub use verify::*;