Skip to main content

p3_batch_stark/
lib.rs

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