pub struct Proof<F> {
pub up_evals: Vec<F>,
pub down_evals: Vec<F>,
pub bit_op_evals: Vec<F>,
}Expand description
The proof type of the combined polynomial resolver subprotocol.
Note: the sumcheck proof now lives at the protocol
level as part of MultiDegreeSumcheckProof.
bit_op_evals is the prover’s claim about the bit-op virtual columns’
MLE evaluations at the shared CPR point. These are not trusted by
themselves: they are bound back to the source columns’ lifted openings at
the multi-point evaluation endpoint via Lemma 2.3.
Fields§
§up_evals: Vec<F>The evaluation of the projected trace columns MLEs at the shared point.
down_evals: Vec<F>The evaluations of the shifted projected trace columns MLEs at the
shared point. Carries only the row-shift virtual columns —
bit-op virtuals are sent separately in bit_op_evals to avoid
overloading shift semantics on the wire.
bit_op_evals: Vec<F>The evaluations of the bit-op virtual columns (ROTR / SHR) at the
shared point, in UairSignature::bit_op_specs() order.
Implementations§
Trait Implementations§
Source§impl<F: ConstTranscribable> GenTranscribable for Proof<F>
impl<F: ConstTranscribable> GenTranscribable for Proof<F>
Source§fn read_transcription_bytes_exact(bytes: &[u8]) -> Self
fn read_transcription_bytes_exact(bytes: &[u8]) -> Self
Source§fn write_transcription_bytes_exact(&self, buf: &mut [u8])
fn write_transcription_bytes_exact(&self, buf: &mut [u8])
Source§impl<F: ConstTranscribable> Transcribable for Proof<F>
impl<F: ConstTranscribable> Transcribable for Proof<F>
Source§fn get_num_bytes(&self) -> usize
fn get_num_bytes(&self) -> usize
write_transcription_bytes should be exactly the
length returned by this function.§const LENGTH_NUM_BYTES: usize = u32::NUM_BYTES
const LENGTH_NUM_BYTES: usize = u32::NUM_BYTES
§fn read_num_bytes(bytes: &[u8]) -> usize
fn read_num_bytes(bytes: &[u8]) -> usize
LENGTH_NUM_BYTES long.
The buffer passed to read_transcription_bytes should be exactly the
length returned by this function.§fn read_transcription_bytes_subset(bytes: &[u8]) -> (Self, &[u8])
fn read_transcription_bytes_subset(bytes: &[u8]) -> (Self, &[u8])
§fn write_transcription_bytes_subset<'a>(
&self,
buf: &'a mut [u8],
) -> &'a mut [u8] ⓘ
fn write_transcription_bytes_subset<'a>( &self, buf: &'a mut [u8], ) -> &'a mut [u8] ⓘ
impl<F: Eq> Eq for Proof<F>
impl<F> StructuralPartialEq for Proof<F>
Auto Trait Implementations§
impl<F> Freeze for Proof<F>
impl<F> RefUnwindSafe for Proof<F>where
F: RefUnwindSafe,
impl<F> Send for Proof<F>where
F: Send,
impl<F> Sync for Proof<F>where
F: Sync,
impl<F> Unpin for Proof<F>where
F: Unpin,
impl<F> UnsafeUnpin for Proof<F>
impl<F> UnwindSafe for Proof<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,
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