pub struct AbstractNovaGadget<CM, const CHALLENGE_BITS: usize = 128> { /* private fields */ }Expand description
AbstractNovaGadget is the in-circuit gadget for AbstractNova.
Trait Implementations§
Source§impl<CM, const CHALLENGE_BITS: usize> FoldingSchemeDefGadget for AbstractNovaGadget<CM, CHALLENGE_BITS>where
CM: CommitmentDefGadget<Widget: GroupBasedCommitment>,
impl<CM, const CHALLENGE_BITS: usize> FoldingSchemeDefGadget for AbstractNovaGadget<CM, CHALLENGE_BITS>where
CM: CommitmentDefGadget<Widget: GroupBasedCommitment>,
Source§type Widget = AbstractNova<<CM as CommitmentDefGadget>::Widget, <CM as CommitmentDefGadget>::ConstraintField, CHALLENGE_BITS>
type Widget = AbstractNova<<CM as CommitmentDefGadget>::Widget, <CM as CommitmentDefGadget>::ConstraintField, CHALLENGE_BITS>
FoldingSchemeDefGadget::Widget points to the out-of-circuit folding
scheme widget.Source§type CM = CM
type CM = CM
FoldingSchemeDefGadget::CM is the commitment scheme gadget.Source§type RU = RunningInstanceVar<CM>
type RU = RunningInstanceVar<CM>
FoldingSchemeDefGadget::RU is the type of in-circuit running
instance variable.Source§type IU = IncomingInstanceVar<CM>
type IU = IncomingInstanceVar<CM>
FoldingSchemeDefGadget::IU is the type of in-circuit incoming
instance variable.Source§type VerifierKey = ()
type VerifierKey = ()
FoldingSchemeDefGadget::VerifierKey is the type of in-circuit
verifier key variable.Source§type Challenge = [Boolean<<CM as CommitmentDefGadget>::ConstraintField>; CHALLENGE_BITS]
type Challenge = [Boolean<<CM as CommitmentDefGadget>::ConstraintField>; CHALLENGE_BITS]
FoldingSchemeDefGadget::Challenge is the type of in-circuit
challenge variable.Source§type Proof<const M: usize, const N: usize> = <CM as CommitmentDefGadget>::CommitmentVar
type Proof<const M: usize, const N: usize> = <CM as CommitmentDefGadget>::CommitmentVar
FoldingSchemeDefGadget::Proof is the type of in-circuit proof
variable.Source§impl<CM, const B: usize> FoldingSchemeFullVerifierGadget<1, 1> for AbstractNovaGadget<CM, B>where
CM: CommitmentDefGadget<Widget: GroupBasedCommitment>,
CM::CommitmentVar: CurveVar<<CM::Widget as CommitmentDef>::Commitment, CM::ConstraintField>,
impl<CM, const B: usize> FoldingSchemeFullVerifierGadget<1, 1> for AbstractNovaGadget<CM, B>where
CM: CommitmentDefGadget<Widget: GroupBasedCommitment>,
CM::CommitmentVar: CurveVar<<CM::Widget as CommitmentDef>::Commitment, CM::ConstraintField>,
Source§fn verify(
_vk: &Self::VerifierKey,
transcript: &mut impl TranscriptGadget<CM::ConstraintField>,
[U]: [&Self::RU; 1],
[u]: [&Self::IU; 1],
proof: &Self::Proof<1, 1>,
) -> Result<Self::RU, SynthesisError>
fn verify( _vk: &Self::VerifierKey, transcript: &mut impl TranscriptGadget<CM::ConstraintField>, [U]: [&Self::RU; 1], [u]: [&Self::IU; 1], proof: &Self::Proof<1, 1>, ) -> Result<Self::RU, SynthesisError>
FoldingSchemeFullVerifierGadget::verify defines the proof
verification gadget that matches its out-of-circuit widget
crate::FoldingSchemeVerifier::verify. Read moreSource§impl<CM, const B: usize> FoldingSchemePartialVerifierGadget<1, 1> for AbstractNovaGadget<CM, B>where
CM: CommitmentDefGadget<Widget: GroupBasedCommitment>,
impl<CM, const B: usize> FoldingSchemePartialVerifierGadget<1, 1> for AbstractNovaGadget<CM, B>where
CM: CommitmentDefGadget<Widget: GroupBasedCommitment>,
Source§fn verify_hinted(
_vk: &Self::VerifierKey,
transcript: &mut impl TranscriptGadget<CM::ConstraintField>,
[U]: [&Self::RU; 1],
[u]: [&Self::IU; 1],
proof: &Self::Proof<1, 1>,
) -> Result<Self::RU, SynthesisError>
fn verify_hinted( _vk: &Self::VerifierKey, transcript: &mut impl TranscriptGadget<CM::ConstraintField>, [U]: [&Self::RU; 1], [u]: [&Self::IU; 1], proof: &Self::Proof<1, 1>, ) -> Result<Self::RU, SynthesisError>
FoldingSchemePartialVerifierGadget::verify_hinted defines the proof
verification gadget that matches its out-of-circuit widget
crate::FoldingSchemeVerifier::verify. Read moreSource§impl<CM, const B: usize> FoldingSchemePartialVerifierGadget<2, 0> for AbstractNovaGadget<CM, B>where
CM: CommitmentDefGadget<Widget: GroupBasedCommitment>,
impl<CM, const B: usize> FoldingSchemePartialVerifierGadget<2, 0> for AbstractNovaGadget<CM, B>where
CM: CommitmentDefGadget<Widget: GroupBasedCommitment>,
Source§fn verify_hinted(
_vk: &Self::VerifierKey,
transcript: &mut impl TranscriptGadget<CM::ConstraintField>,
[U1, U2]: [&Self::RU; 2],
_: [&Self::IU; 0],
proof: &Self::Proof<2, 0>,
) -> Result<Self::RU, SynthesisError>
fn verify_hinted( _vk: &Self::VerifierKey, transcript: &mut impl TranscriptGadget<CM::ConstraintField>, [U1, U2]: [&Self::RU; 2], _: [&Self::IU; 0], proof: &Self::Proof<2, 0>, ) -> Result<Self::RU, SynthesisError>
FoldingSchemePartialVerifierGadget::verify_hinted defines the proof
verification gadget that matches its out-of-circuit widget
crate::FoldingSchemeVerifier::verify. Read moreAuto Trait Implementations§
impl<CM, const CHALLENGE_BITS: usize> Freeze for AbstractNovaGadget<CM, CHALLENGE_BITS>
impl<CM, const CHALLENGE_BITS: usize> RefUnwindSafe for AbstractNovaGadget<CM, CHALLENGE_BITS>where
CM: RefUnwindSafe,
impl<CM, const CHALLENGE_BITS: usize> Send for AbstractNovaGadget<CM, CHALLENGE_BITS>where
CM: Send,
impl<CM, const CHALLENGE_BITS: usize> Sync for AbstractNovaGadget<CM, CHALLENGE_BITS>where
CM: Sync,
impl<CM, const CHALLENGE_BITS: usize> Unpin for AbstractNovaGadget<CM, CHALLENGE_BITS>where
CM: Unpin,
impl<CM, const CHALLENGE_BITS: usize> UnsafeUnpin for AbstractNovaGadget<CM, CHALLENGE_BITS>
impl<CM, const CHALLENGE_BITS: usize> UnwindSafe for AbstractNovaGadget<CM, CHALLENGE_BITS>where
CM: 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
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§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