binius_ip/lib.rs
1// Copyright 2026 The Binius Developers
2
3//! Interactive Polynomial (IP) protocol data structures and verification for Binius64.
4//!
5//! This crate provides the core data structures and verifier-side implementations for
6//! interactive polynomial protocols used in Binius64, including sumcheck, prodcheck,
7//! and multilinear evaluation claims.
8//!
9//! # When to use this crate
10//!
11//! This crate is primarily used internally by `binius_verifier` and `binius_iop`.
12//! Direct use is needed when implementing custom verification logic or working with
13//! the IP protocol layer directly.
14//!
15//! # Key types
16//!
17//! - [`MultilinearEvalClaim`] - A claim that a multilinear polynomial evaluates to a value
18//! - [`sumcheck`] - Sumcheck protocol verification
19//! - [`prodcheck`] - Product check protocol verification
20//! - [`channel`] - IP verifier channel traits
21//!
22//! # Related crates
23//!
24//! - `binius_ip_prover` - Prover-side IP implementations
25//! - `binius_iop` - Higher-level IOP protocols built on IP
26
27#![warn(rustdoc::missing_crate_level_docs)]
28
29pub mod batch_eval;
30pub mod channel;
31pub mod fracaddcheck;
32pub mod logup_star;
33pub mod mlecheck;
34pub mod prodcheck;
35pub mod sumcheck;
36
37/// A claim that a multilinear polynomial evaluates to a specific value at a point.
38#[derive(Debug, Clone, PartialEq, Eq)]
39pub struct MultilinearEvalClaim<F> {
40 /// The evaluation of the multilinear.
41 pub eval: F,
42 /// The evaluation point.
43 pub point: Vec<F>,
44}