p3_batch_stark/
lib.rs

1//! Batch-STARK proving and verification.
2//!
3//! ```ignore
4//! use p3_batch_stark::{prove_batch, verify_batch, CommonData, StarkInstance};
5//!
6//! let instances = vec![
7//!     StarkInstance { air: &air1, trace: trace1, public_values: pv1 },
8//!     StarkInstance { air: &air2, trace: trace2, public_values: pv2 },
9//! ];
10//!
11//! let common = CommonData::from_instances(&config, &instances);
12//! let proof = prove_batch(&config, instances, &common);
13//! verify_batch(&config, &[air1, air2], &proof, &[pv1, pv2], &common)?;
14//! ```
15
16#![no_std]
17
18extern crate alloc;
19
20#[cfg(debug_assertions)]
21mod check_constraints;
22pub mod common;
23pub mod config;
24pub mod proof;
25pub mod prover;
26pub mod symbolic;
27pub mod verifier;
28
29// Re-export main types and functions for convenience
30pub use common::CommonData;
31pub use config::{
32    Challenge, Commitment, Domain, PackedChallenge, PackedVal, PcsError, PcsProof,
33    StarkGenericConfig, Val,
34};
35pub use p3_uni_stark::{OpenedValues, VerificationError};
36pub use proof::{BatchCommitments, BatchOpenedValues, BatchProof};
37pub use prover::{StarkInstance, prove_batch};
38pub use verifier::verify_batch;