pub struct GkrProof<SC: StarkProtocolConfig> {
pub logup_pow_witness: SC::F,
pub q0_claim: SC::EF,
pub claims_per_layer: Vec<GkrLayerClaims<SC>>,
pub sumcheck_polys: Vec<Vec<[SC::EF; 3]>>,
}Fields§
§logup_pow_witness: SC::FThe grinding proof-of-work witness before sampling LogUp alpha,beta
q0_claim: SC::EFThe denominator of the root layer.
Note that the numerator claim is always zero, so we don’t include it in the proof. Despite that the numerator is zero, the representation of the denominator is important for the verification procedure and thus must be provided.
claims_per_layer: Vec<GkrLayerClaims<SC>>The claims for p_j(xi, 0), p_j(xi, 1), q_j(xi, 0), and q_j(xi, 0) for each layer j > 0.
sumcheck_polys: Vec<Vec<[SC::EF; 3]>>The sumcheck polynomials for each layer, for each sumcheck round, given by their evaluations on {1, 2, 3}.
Trait Implementations§
Source§impl<SC: StarkProtocolConfig> Clone for GkrProof<SC>
impl<SC: StarkProtocolConfig> Clone for GkrProof<SC>
Source§impl<SC: StarkProtocolConfig> Debug for GkrProof<SC>
impl<SC: StarkProtocolConfig> Debug for GkrProof<SC>
Source§impl<SC: DecodableConfig> Decode for GkrProof<SC>
impl<SC: DecodableConfig> Decode for GkrProof<SC>
Source§impl<'de, SC: StarkProtocolConfig> Deserialize<'de> for GkrProof<SC>
impl<'de, SC: StarkProtocolConfig> Deserialize<'de> for GkrProof<SC>
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Source§impl<SC: EncodableConfig> Encode for GkrProof<SC>
impl<SC: EncodableConfig> Encode for GkrProof<SC>
impl<SC: StarkProtocolConfig> Eq for GkrProof<SC>
Source§impl<SC: StarkProtocolConfig> PartialEq for GkrProof<SC>
impl<SC: StarkProtocolConfig> PartialEq for GkrProof<SC>
Auto Trait Implementations§
impl<SC> Freeze for GkrProof<SC>
impl<SC> RefUnwindSafe for GkrProof<SC>where
<SC as StarkProtocolConfig>::F: RefUnwindSafe,
<SC as StarkProtocolConfig>::EF: RefUnwindSafe,
impl<SC> Send for GkrProof<SC>
impl<SC> Sync for GkrProof<SC>
impl<SC> Unpin for GkrProof<SC>
impl<SC> UnsafeUnpin for GkrProof<SC>
impl<SC> UnwindSafe for GkrProof<SC>
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<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
§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