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§
- Constraint
SetEq IndPoint - Constraint
Sets EqInd Points - 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