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§

source

type Column: FoldingColumnTrait + Debug + Eq + Hash

source

type Selector: Clone + Debug + Eq + Hash + Copy + Ord + PartialOrd

source

type Challenge: Clone + Copy + Debug + Eq + Hash

The type of an abstract challenge that can be found in the expressions provided as constraints.

source

type Curve: CommitmentCurve

The target curve used by the polynomial commitment

source

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.

source

type Instance: Instance<Self::Curve> + Clone

For Plonk, it will be the commitments to the polynomials and the challenges

source

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.

source

type Structure: Clone

source

type Env: FoldingEnv<<Self::Curve as AffineRepr>::ScalarField, Self::Instance, Self::Witness, Self::Column, Self::Challenge, Self::Selector, Structure = Self::Structure>

Implementors§

source§

impl<G, Col, Chall, Sel, Str, I, W, Srs> FoldingConfig for StandardConfig<G, Col, Chall, I, W, Srs, Sel, Str>where Self: 'static, G: CommitmentCurve, I: Instance<G> + Index<Chall, Output = G::ScalarField> + Clone, W: Witness<G> + Clone + Index<Col, Output = [G::ScalarField]> + Index<Sel, Output = [G::ScalarField]>, Srs: SRS<G>, Col: Hash + Eq + Debug + Clone + FoldingColumnTrait, Sel: Ord + Copy + Hash + Debug, Chall: Hash + Eq + Debug + Copy, Str: Clone + Index<Col, Output = [G::ScalarField]>,

§

type Column = Col

§

type Selector = Sel

§

type Challenge = Chall

§

type Curve = G

§

type Srs = Srs

§

type Instance = I

§

type Witness = W

§

type Structure = Str

§

type Env = Env<G, Col, Chall, Sel, Str, I, W>