proof-cat-core 0.1.0

Field-agnostic proof-system primitives (sumcheck, multilinear, Fiat-Shamir, Merkle) shared by proof-cat and stark-cat
Documentation
//! # proof-cat-core
//!
//! Field-agnostic proof-system primitives shared by
//! [`proof_cat`](https://github.com/MavenRain/proof-cat) (`PLONKish`
//! sumcheck backend) and the future `stark-cat` (modern STARK
//! sumcheck + FRI backend).
//!
//! Everything here is independent of any particular constraint
//! system; downstream crates layer their constraint vocabulary on
//! top.
//!
//! # Modules
//!
//! - [`transcript`] -- Functional Fiat-Shamir transcript over SHA-256.
//! - [`commit`] -- Hash-based vector commitment ([`MerkleTree`](commit::merkle::MerkleTree)).
//! - [`poly`] -- Multilinear polynomial evaluation tables on `{0,1}^n`.
//! - [`sumcheck`] -- Sumcheck prover and verifier.
//!
//! Field types (the [`Field`](field_cat::Field) trait, the
//! [`FieldBytes`](field_cat::FieldBytes) transcript-serialization
//! trait, and concrete fields like [`BabyBear`](field_cat::BabyBear),
//! [`F101`](field_cat::F101), and
//! [`BFieldElement`](field_cat::BFieldElement)) live in the sibling
//! [`field_cat`] crate.

pub mod commit;
pub mod error;
pub mod poly;
pub mod sumcheck;
pub mod transcript;

pub use error::Error;
pub use poly::{MultilinearPoly, NumVars};
pub use sumcheck::{SumcheckClaim, SumcheckProof, sumcheck_prove, sumcheck_verify};
pub use transcript::Transcript;