pub enum InvalidProofShapeError {
Show 19 variants
InstanceCountMismatch,
TraceLocalWidthMismatch {
air: usize,
expected: usize,
got: usize,
},
TraceNextMismatch {
air: usize,
},
UnexpectedTraceNext {
air: usize,
},
QuotientChunksCountMismatch {
air: usize,
expected: usize,
got: usize,
},
QuotientChunkDimensionMismatch {
air: usize,
},
QuotientDomainsCountMismatch {
air: usize,
},
PreprocessedTraceWidthMismatch {
expected_local: usize,
expected_next: usize,
got_local: usize,
got_next: usize,
},
PreprocessedVerifierKeyInconsistency,
PreprocessedDegreeMismatch {
vk_degree_bits: usize,
proof_degree_bits: usize,
},
PreprocessedWidthMismatch {
air: usize,
},
UnexpectedPreprocessedValues {
air: usize,
},
DegreeBitsTooSmall {
air: Option<usize>,
minimum: usize,
got: usize,
},
DegreeBitsTooLarge {
air: Option<usize>,
maximum: usize,
got: usize,
},
QuotientDomainTooLarge {
air: Option<usize>,
maximum: usize,
got: usize,
},
MissingPreprocessedValues {
air: usize,
},
PreprocessedMetadataMismatch {
air: usize,
},
PublicValuesLengthMismatch {
expected: usize,
got: usize,
},
OpenedValuesDimensionMismatch,
}Expand description
Specific reasons why a proof’s shape is invalid.
Variants§
InstanceCountMismatch
Instance arrays (airs, opened_values, public_values, degree_bits) have different lengths.
TraceLocalWidthMismatch
Trace local width doesn’t match the AIR width.
TraceNextMismatch
Trace next values have wrong width or are unexpectedly missing.
UnexpectedTraceNext
Trace next values present when AIR doesn’t use next row.
QuotientChunksCountMismatch
Quotient chunks count doesn’t match expected.
QuotientChunkDimensionMismatch
Quotient chunk has wrong dimension.
QuotientDomainsCountMismatch
Quotient opened values count doesn’t match domain count.
PreprocessedTraceWidthMismatch
Preprocessed trace opened values width doesn’t match expected.
PreprocessedVerifierKeyInconsistency
Preprocessed verifier key is inconsistent with width.
PreprocessedDegreeMismatch
Preprocessed and main trace have different heights.
PreprocessedWidthMismatch
Preprocessed width mismatch for a specific AIR.
UnexpectedPreprocessedValues
Preprocessed values present when preprocessed width is zero.
DegreeBitsTooSmall
Proof degree bits are too small for the PCS ZK setting.
DegreeBitsTooLarge
Proof degree bits are too large to safely construct verifier domains.
QuotientDomainTooLarge
The quotient domain log-size overflows after adding degree bits and quotient chunk bits.
MissingPreprocessedValues
Missing preprocessed local or next values.
PreprocessedMetadataMismatch
Preprocessed metadata missing or mismatched.
PublicValuesLengthMismatch
Public values length doesn’t match what the AIR expects.
OpenedValuesDimensionMismatch
Opened values (trace, quotient, random) don’t match expected dimensions.
Trait Implementations§
Source§impl Debug for InvalidProofShapeError
impl Debug for InvalidProofShapeError
Source§impl Display for InvalidProofShapeError
impl Display for InvalidProofShapeError
Source§impl Error for InvalidProofShapeError
impl Error for InvalidProofShapeError
1.30.0 · Source§fn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
1.0.0 · Source§fn description(&self) -> &str
fn description(&self) -> &str
use the Display impl or to_string()
Source§impl<PcsErr> From<InvalidProofShapeError> for VerificationError<PcsErr>where
PcsErr: Debug,
impl<PcsErr> From<InvalidProofShapeError> for VerificationError<PcsErr>where
PcsErr: Debug,
Source§fn from(source: InvalidProofShapeError) -> Self
fn from(source: InvalidProofShapeError) -> Self
Auto Trait Implementations§
impl Freeze for InvalidProofShapeError
impl RefUnwindSafe for InvalidProofShapeError
impl Send for InvalidProofShapeError
impl Sync for InvalidProofShapeError
impl Unpin for InvalidProofShapeError
impl UnsafeUnpin for InvalidProofShapeError
impl UnwindSafe for InvalidProofShapeError
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> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§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