Expand description
The multivariate evalcheck polynomial protocol.
This protocol can be used to verify a list of evaluation claims on the multilinears in the crate::oracle::MultilinearOracleSet
.
For each claim, if they contain a subclaim, we recursively prove the subclaim. Otherwise,
we evaluate the claim if they are virtual, further reduced to sumcheck constraints for
crate::oracle::MultilinearPolyVariant::Shifted
, crate::oracle::MultilinearPolyVariant::Packed
,
or crate::oracle::MultilinearPolyVariant::Composite
.
All the committed polynomials are collected and should be handled by the crate::ring_switch
module.
crate::protocols::greedy_evalcheck
shows how the protocol is used in a round-by-round manner.
See EvalcheckProver::prove
for more details.
Modules§
- subclaims
- This module contains helpers to create bivariate sumcheck instances originating from:
Structs§
- Eval
Point - A wrapper struct for evaluation points.
- Eval
Point Oracle IdMap - Data structure for efficiently querying and inserting evaluations of claims.
- Evalcheck
Multilinear Claim - This struct represents a claim to be verified through the evalcheck protocol.
- Evalcheck
Prover - A mutable prover state.
- Evalcheck
Verifier - A mutable verifier state.
Enums§
- Error
- Evalcheck
Hint - A hint is an instruction that the prover sends to the verifier, instructing them how to check the current claim efficiently.
- Verification
Error
Functions§
- deserialize_
evalcheck_ proof - Deserializes the
EvalcheckProof
object from the given transcript. - serialize_
evalcheck_ proof - Serializes the
EvalcheckProof
into the transcript