Struct folding::instance_witness::RelaxedInstance
source · pub struct RelaxedInstance<G: CommitmentCurve, I: Instance<G>> {
pub extended_instance: ExtendedInstance<G, I>,
pub u: G::ScalarField,
pub error_commitment: PolyComm<G>,
pub blinder: G::ScalarField,
}
Expand description
A relaxed instance is an instance that has been relaxed by the folding scheme.
It contains the original instance, extended with the columns added by
quadriticization, the scalar u
and a commitment to the
slack/error term.
See page 15 of Nova.
Fields§
§extended_instance: ExtendedInstance<G, I>
The original instance, extended with the columns added by quadriticization
u: G::ScalarField
The scalar u
that is used to homogenize the polynomials
error_commitment: PolyComm<G>
The commitment to the error term, introduced when homogenizing the polynomials
blinder: G::ScalarField
Blinder used for the commitments to the cross terms
Implementations§
source§impl<G: CommitmentCurve, I: Instance<G>> RelaxedInstance<G, I>
impl<G: CommitmentCurve, I: Instance<G>> RelaxedInstance<G, I>
sourcepub fn to_absorb(&self) -> (Vec<G::ScalarField>, Vec<G>)
pub fn to_absorb(&self) -> (Vec<G::ScalarField>, Vec<G>)
Returns the elements to be absorbed by the sponge
The scalar elements of the are appended with the scalar u
and the
commitments are appended by the commitment to the error term.
sourcepub fn get_extended_column_commitment(&self, i: usize) -> Option<&PolyComm<G>>
pub fn get_extended_column_commitment(&self, i: usize) -> Option<&PolyComm<G>>
Provides access to commitments to the extra columns added by quadraticization
Trait Implementations§
source§impl<G: Clone + CommitmentCurve, I: Clone + Instance<G>> Clone for RelaxedInstance<G, I>where
G::ScalarField: Clone,
impl<G: Clone + CommitmentCurve, I: Clone + Instance<G>> Clone for RelaxedInstance<G, I>where G::ScalarField: Clone,
source§fn clone(&self) -> RelaxedInstance<G, I>
fn clone(&self) -> RelaxedInstance<G, I>
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl<G: CommitmentCurve, I: Instance<G>> Foldable<<G as AffineRepr>::ScalarField> for RelaxedInstance<G, I>
impl<G: CommitmentCurve, I: Instance<G>> Foldable<<G as AffineRepr>::ScalarField> for RelaxedInstance<G, I>
A relaxed instance can be folded.
source§impl<G: PartialEq + CommitmentCurve, I: PartialEq + Instance<G>> PartialEq<RelaxedInstance<G, I>> for RelaxedInstance<G, I>where
G::ScalarField: PartialEq,
impl<G: PartialEq + CommitmentCurve, I: PartialEq + Instance<G>> PartialEq<RelaxedInstance<G, I>> for RelaxedInstance<G, I>where G::ScalarField: PartialEq,
source§fn eq(&self, other: &RelaxedInstance<G, I>) -> bool
fn eq(&self, other: &RelaxedInstance<G, I>) -> bool
self
and other
values to be equal, and is used
by ==
.source§impl<G: CommitmentCurve, I: Instance<G>> RelaxableInstance<G, I> for RelaxedInstance<G, I>
impl<G: CommitmentCurve, I: Instance<G>> RelaxableInstance<G, I> for RelaxedInstance<G, I>
A relaxed instance is trivially relaxable.