Trait folding::FoldingConfig
source · pub trait FoldingConfig: Debug + 'static {
type Column: FoldingColumnTrait + Debug + Eq + Hash;
type Selector: Clone + Debug + Eq + Hash + Copy + Ord + PartialOrd;
type Challenge: Clone + Copy + Debug + Eq + Hash;
type Curve: CommitmentCurve;
type Srs: SRS<Self::Curve>;
type Instance: Instance<Self::Curve> + Clone;
type Witness: Witness<Self::Curve> + Clone;
type Structure: Clone;
type Env: FoldingEnv<<Self::Curve as AffineRepr>::ScalarField, Self::Instance, Self::Witness, Self::Column, Self::Challenge, Self::Selector, Structure = Self::Structure>;
}
Required Associated Types§
type Column: FoldingColumnTrait + Debug + Eq + Hash
type Selector: Clone + Debug + Eq + Hash + Copy + Ord + PartialOrd
sourcetype Challenge: Clone + Copy + Debug + Eq + Hash
type Challenge: Clone + Copy + Debug + Eq + Hash
The type of an abstract challenge that can be found in the expressions provided as constraints.
sourcetype Srs: SRS<Self::Curve>
type Srs: SRS<Self::Curve>
The SRS used by the polynomial commitment. The SRS is used to commit to the additional columns that are added by the quadraticization.
sourcetype Instance: Instance<Self::Curve> + Clone
type Instance: Instance<Self::Curve> + Clone
For Plonk, it will be the commitments to the polynomials and the challenges
sourcetype Witness: Witness<Self::Curve> + Clone
type Witness: Witness<Self::Curve> + Clone
For PlonK, it will be the polynomials in evaluation form that we commit
to, i.e. the columns.
In the generic prover/verifier, it would be kimchi_msm::witness::Witness
.