pub struct AirProof<F: Field> { /* private fields */ }Expand description
A proof that an AIR’s constraints hold over a given trace.
§Examples
use field_cat::F101;
use machine_cat::{Air, FibonacciAir, FibonacciInput, StepCount};
use machine_cat::bridge::{air_prove, air_verify};
let air = FibonacciAir;
let input = FibonacciInput::new(
F101::new(1), F101::new(1), StepCount::new(7),
);
let trace = air.generate_trace(&input)?;
let proof = air_prove(&air, &trace)?;
assert!(air_verify(&air, &proof)?);Implementations§
Source§impl<F: Field> AirProof<F>
impl<F: Field> AirProof<F>
Sourcepub fn trace_commitment(&self) -> &MerkleRoot
pub fn trace_commitment(&self) -> &MerkleRoot
The Merkle root committing to the trace.
Sourcepub fn sumcheck(&self) -> &SumcheckProof<F>
pub fn sumcheck(&self) -> &SumcheckProof<F>
The sumcheck proof.
Sourcepub fn column_openings(&self) -> &[ColumnOpening<F>]
pub fn column_openings(&self) -> &[ColumnOpening<F>]
The opened column values with Merkle proofs.
Trait Implementations§
Auto Trait Implementations§
impl<F> Freeze for AirProof<F>
impl<F> RefUnwindSafe for AirProof<F>where
F: RefUnwindSafe,
impl<F> Send for AirProof<F>where
F: Send,
impl<F> Sync for AirProof<F>where
F: Sync,
impl<F> Unpin for AirProof<F>where
F: Unpin,
impl<F> UnsafeUnpin for AirProof<F>
impl<F> UnwindSafe for AirProof<F>where
F: UnwindSafe,
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more