1#![cfg_attr(not(feature = "std"), no_std)]
2#![doc = include_str!("../README.md")]
3
4pub use miden_assembly::{
8 self as assembly, Assembler,
9 ast::{Module, ModuleKind},
10 diagnostics,
11};
12pub use miden_core::proof::{ExecutionProof, HashFunction};
13#[cfg(not(target_arch = "wasm32"))]
14pub use miden_processor::execute_sync;
15pub use miden_processor::{
16 BaseHost, DefaultHost, ExecutionError, ExecutionOptions, ExecutionOutput, FastProcessor,
17 FutureMaybeSend, Host, Kernel, Program, ProgramInfo, StackInputs, SyncHost, TraceBuildInputs,
18 TraceGenerationContext, ZERO, advice, crypto, execute, field, operation::Operation, serde,
19 trace, trace::ExecutionTrace, utils,
20};
21pub use miden_prover::{InputError, ProvingOptions, StackOutputs, TraceProvingInputs, Word, prove};
22#[cfg(not(target_arch = "wasm32"))]
23pub use miden_prover::{prove_from_trace_sync, prove_sync};
24pub use miden_verifier::VerificationError;
25
26#[cfg(feature = "internal")]
30pub mod internal;
31
32pub fn verify(
36 program_info: ProgramInfo,
37 stack_inputs: StackInputs,
38 stack_outputs: StackOutputs,
39 proof: ExecutionProof,
40) -> Result<u32, VerificationError> {
41 let registry = miden_core_lib::CoreLibrary::default().verifier_registry();
42 let (security_level, _) = miden_verifier::verify_with_precompiles(
43 program_info,
44 stack_inputs,
45 stack_outputs,
46 proof,
47 ®istry,
48 )?;
49 Ok(security_level)
50}