pub struct OperandClaims<F: Field> {
pub r_x: Vec<F>,
pub r_zhat_prime: F,
pub evals: Vec<F>,
}Expand description
The operand evaluation claims of every operation, as the shift reduction receives them.
Fields§
§r_x: Vec<F>The constraint point, as long as the widest operation’s constraint count.
Every operation is claimed at the whole point, its matrix padded with empty rows; see
[padding_scales].
r_zhat_prime: FThe univariate challenge folding the bit axis, shared by every operation.
evals: Vec<F>One evaluation per operand column, the four operations’ runs in [OPERATION_ARITIES]
order.
Implementations§
Source§impl<F: Field> OperandClaims<F>
impl<F: Field> OperandClaims<F>
Sourcepub fn from_rerand(
cs: &ConstraintSystem,
log_instances: usize,
z_challenge: F,
rerand: &RerandOutput<F>,
sample: impl FnMut() -> F,
) -> Self
pub fn from_rerand( cs: &ConstraintSystem, log_instances: usize, z_challenge: F, rerand: &RerandOutput<F>, sample: impl FnMut() -> F, ) -> Self
Assembles the claims from the output of the BitAnd sumcheck.
The sumcheck’s point is r_rho || r_x_star, instance index low, constraint index high.
r_x_star spans the widest AND, IMUL and BMUL set. The constraint point r_x extends it
through [zero::reduction_point] when the ZERO set is wider still, drawing the extra
challenges from sample.
The sumcheck claims each operation at its own prefix of r_x. Its padding factor lifts the
claim to its padded matrix at the whole point.
An operation the constraint system does not use gets zero evaluations.
§Arguments
cs: the constraint system, whose row counts pick each operation’s padding factor.log_instances: the instance variables at the low end of the point.z_challenge: the univariate challenge, shared by every operation.rerand: the sumcheck’s output, with the IntMul operand evaluations before the BinMul ones.sample: draws the constraint point’s extra challenges from the transcript.
Sourcepub fn prepare(
self,
channel: &mut impl IPProverChannel<F>,
) -> PreparedOperandClaims<F>
pub fn prepare( self, channel: &mut impl IPProverChannel<F>, ) -> PreparedOperandClaims<F>
Draws the batching challenges and folds their weights into the claims.
The claim of column m is weighted by the equality indicator of the operand axis at m.
The axis is padded to a cube of log2_ceil(evals.len()) challenges; the columns past the
last claim name nothing. The verifier draws the same challenges at the same place, so the
count is protocol, not detail.
§Arguments
channel: the transcript the batching challenges are drawn from.
Trait Implementations§
Auto Trait Implementations§
impl<F> Freeze for OperandClaims<F>where
F: Freeze,
impl<F> RefUnwindSafe for OperandClaims<F>where
F: RefUnwindSafe,
impl<F> Send for OperandClaims<F>
impl<F> Sync for OperandClaims<F>
impl<F> Unpin for OperandClaims<F>where
F: Unpin,
impl<F> UnsafeUnpin for OperandClaims<F>where
F: UnsafeUnpin,
impl<F> UnwindSafe for OperandClaims<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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§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>
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>
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