Skip to main content

miden_vm/
lib.rs

1#![cfg_attr(not(feature = "std"), no_std)]
2#![doc = include_str!("../README.md")]
3
4// EXPORTS
5// ================================================================================================
6
7pub use miden_assembly::{
8    self as assembly, Assembler,
9    ast::{Module, ModuleKind},
10    diagnostics,
11};
12pub use miden_core::{
13    program::ExecutionClaim,
14    proof::{DeferredProof, ExecutionProof, HashFunction, StarkProof},
15};
16#[cfg(not(target_family = "wasm"))]
17pub use miden_processor::execute_sync;
18pub use miden_processor::{
19    BaseHost, DefaultHost, ExecutionError, ExecutionOptions, ExecutionOutput, FastProcessor,
20    FutureMaybeSend, Host, KernelDescriptor, Program, ProgramInfo, StackInputs, SyncHost,
21    TraceBuildInputs, TraceGenerationContext, ZERO, advice, crypto, execute, field,
22    operation::Operation, serde, trace, trace::ExecutionTrace, utils,
23};
24pub use miden_prover::{InputError, ProvingOptions, StackOutputs, TraceProvingInputs, Word, prove};
25#[cfg(not(target_family = "wasm"))]
26pub use miden_prover::{prove_from_trace_sync, prove_sync};
27pub use miden_verifier::{Unsettled, VerificationError, Verifier};
28
29// (private) exports
30// ================================================================================================
31
32#[cfg(feature = "internal")]
33pub mod internal;
34
35/// Verifies a final Miden proof of the given execution claim.
36///
37/// Wire-backed deferred proofs are partial/delegable proof material and are rejected here; use
38/// [`Verifier::verify_partial`] to verify and hydrate wire-backed partial proofs.
39pub fn verify(proof: ExecutionProof, claim: ExecutionClaim) -> Result<u32, VerificationError> {
40    miden_verifier::verify(proof, claim)
41}