Skip to main content

proof_cat_core/
lib.rs

1//! # proof-cat-core
2//!
3//! Field-agnostic proof-system primitives shared by
4//! [`proof_cat`](https://github.com/MavenRain/proof-cat) (`PLONKish`
5//! sumcheck backend) and the future `stark-cat` (modern STARK
6//! sumcheck + FRI backend).
7//!
8//! Everything here is independent of any particular constraint
9//! system; downstream crates layer their constraint vocabulary on
10//! top.
11//!
12//! # Modules
13//!
14//! - [`transcript`] -- Functional Fiat-Shamir transcript over SHA-256.
15//! - [`commit`] -- Hash-based vector commitment ([`MerkleTree`](commit::merkle::MerkleTree)).
16//! - [`poly`] -- Multilinear polynomial evaluation tables on `{0,1}^n`.
17//! - [`sumcheck`] -- Sumcheck prover and verifier.
18//!
19//! Field types (the [`Field`](field_cat::Field) trait, the
20//! [`FieldBytes`](field_cat::FieldBytes) transcript-serialization
21//! trait, and concrete fields like [`BabyBear`](field_cat::BabyBear),
22//! [`F101`](field_cat::F101), and
23//! [`BFieldElement`](field_cat::BFieldElement)) live in the sibling
24//! [`field_cat`] crate.
25
26pub mod commit;
27pub mod error;
28pub mod poly;
29pub mod sumcheck;
30pub mod transcript;
31
32pub use error::Error;
33pub use poly::{MultilinearPoly, NumVars};
34pub use sumcheck::{SumcheckClaim, SumcheckProof, sumcheck_prove, sumcheck_verify};
35pub use transcript::Transcript;