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
30#[cfg(debug_assertions)]
31pub use check_constraints::*;
32pub use common::{CommonData, get_perm_challenges};
33pub use config::{
34    Challenge, Commitment, Domain, PackedChallenge, PackedVal, PcsError, PcsProof,
35    StarkGenericConfig, Val,
36};
37pub use p3_uni_stark::{OpenedValues, VerificationError};
38pub use proof::{BatchCommitments, BatchOpenedValues, BatchProof};
39pub use prover::{StarkInstance, prove_batch};
40pub use verifier::verify_batch;