pub struct IOPProver { /* private fields */ }Expand description
IOP prover for a particular constraint system.
This struct encapsulates the constraint system and pre-computed keys,
providing the core proving logic independent of the specific IOP compilation strategy.
Most users should use Prover instead, which wraps this with a BaseFold compiler.
Implementations§
Source§impl IOPProver
impl IOPProver
Sourcepub fn new(iop_verifier: IOPVerifier, key_collection: KeyCollection) -> Self
pub fn new(iop_verifier: IOPVerifier, key_collection: KeyCollection) -> Self
Constructs an IOP prover from an IOP verifier and pre-computed keys.
Sourcepub const fn constraint_system(&self) -> &ConstraintSystem
pub const fn constraint_system(&self) -> &ConstraintSystem
Returns the constraint system.
Sourcepub const fn key_collection(&self) -> &KeyCollection
pub const fn key_collection(&self) -> &KeyCollection
Returns a reference to the KeyCollection.
This can be used to serialize the KeyCollection for later use.
Sourcepub fn prove<A, P, Channel>(
&self,
witness: &ValueVec,
channel: &mut Channel,
alloc: &A,
) -> Result<(), Error>where
A: Allocator,
P: PackedField<Scalar = B128>,
Channel: IOPProverChannel<P, A> + WordIPProverChannel<B128, Word = Word>,
pub fn prove<A, P, Channel>(
&self,
witness: &ValueVec,
channel: &mut Channel,
alloc: &A,
) -> Result<(), Error>where
A: Allocator,
P: PackedField<Scalar = B128>,
Channel: IOPProverChannel<P, A> + WordIPProverChannel<B128, Word = Word>,
Proves using an IOP channel interface.
This is the core proving logic, independent of the specific IOP compilation strategy.
For most users, Prover::prove is the simpler interface.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for IOPProver
impl RefUnwindSafe for IOPProver
impl Send for IOPProver
impl Sync for IOPProver
impl Unpin for IOPProver
impl UnsafeUnpin for IOPProver
impl UnwindSafe for IOPProver
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
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more