pub struct Proof<U, FI, FE, VCSProof>{
pub n_polys: usize,
pub mixed_t_prime: MultilinearExtension<PackedType<U, FE>>,
pub vcs_proofs: VCSProofs<PackedType<U, FI>, VCSProof>,
}
Expand description
Evaluation proof data for the TensorPCS
polynomial commitment scheme.
§Type Parameters
PI
: The packed intermediate field type.PE
: The packed extension field type.VCSProof
: The vector commitment scheme proof type.
Fields§
§n_polys: usize
Number of distinct multilinear polynomials in the batch opening proof
mixed_t_prime: MultilinearExtension<PackedType<U, FE>>
Represents a mixing of individual polynomial t_primes
Let $n$ denote n_polys. Define $l = \lceil\log_2(n)\rceil$. Let $\alpha_0, \ldots, \alpha_{l-1}$ be the sampled mixing challenges. Then $c := \otimes_{i=0}^{l-1} (1 - \alpha_i, \alpha_i)$ are the $2^l$ mixing coefficients, denoting the $i$-th coefficient by $c_i$. Let $t’i$ denote the $t’$ for the $i$-th polynomial in the batch opening proof. This value represents the multilinear polynomial such that $\forall v \in {0, 1}^{\mu}$, $v \rightarrow \sum{i=0}^{n-1} c_i * t’_i(v)$
vcs_proofs: VCSProofs<PackedType<U, FI>, VCSProof>
Opening proofs for chosen columns of the encoded matrices
Let $j_1, \ldots, j_k$ be the indices of the columns that are opened. The ith element is a tuple of:
- A vector (size=n_polys) of the $j_i$th columns (one from each polynomial’s encoded matrix)
- A proof that these columns are consistent with the vector commitment
Trait Implementations§
Auto Trait Implementations§
impl<U, FI, FE, VCSProof> Freeze for Proof<U, FI, FE, VCSProof>
impl<U, FI, FE, VCSProof> RefUnwindSafe for Proof<U, FI, FE, VCSProof>where
<FE as WithUnderlier>::Underlier: Sized,
<FI as WithUnderlier>::Underlier: Sized,
<U as PackScalar<FE>>::Packed: RefUnwindSafe,
VCSProof: RefUnwindSafe,
<U as PackScalar<FI>>::Packed: RefUnwindSafe,
impl<U, FI, FE, VCSProof> Send for Proof<U, FI, FE, VCSProof>where
<FE as WithUnderlier>::Underlier: Sized,
<FI as WithUnderlier>::Underlier: Sized,
VCSProof: Send,
impl<U, FI, FE, VCSProof> Sync for Proof<U, FI, FE, VCSProof>where
<FE as WithUnderlier>::Underlier: Sized,
<FI as WithUnderlier>::Underlier: Sized,
VCSProof: Sync,
impl<U, FI, FE, VCSProof> Unpin for Proof<U, FI, FE, VCSProof>where
<FE as WithUnderlier>::Underlier: Sized,
<FI as WithUnderlier>::Underlier: Sized,
<U as PackScalar<FE>>::Packed: Unpin,
VCSProof: Unpin,
<U as PackScalar<FI>>::Packed: Unpin,
impl<U, FI, FE, VCSProof> UnwindSafe for Proof<U, FI, FE, VCSProof>where
<FE as WithUnderlier>::Underlier: Sized,
<FI as WithUnderlier>::Underlier: Sized,
<U as PackScalar<FE>>::Packed: UnwindSafe,
VCSProof: UnwindSafe,
<U as PackScalar<FI>>::Packed: 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
§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