Trait folding::FoldingEnv
source · pub trait FoldingEnv<F: Zero + Clone, I, W, Col, Chal, Selector> {
type Structure;
// Required methods
fn new(
structure: &Self::Structure,
instances: [&I; 2],
witnesses: [&W; 2]
) -> Self;
fn challenge(&self, challenge: Chal, side: Side) -> F;
fn col(&self, col: Col, curr_or_next: CurrOrNext, side: Side) -> &[F];
fn selector(&self, s: &Selector, side: Side) -> &[F];
}
Expand description
Describe a folding environment. The type parameters are:
F
: The field of the circuit/computationI
: The instance type, i.e the public inputsW
: The type of the witness, i.e. the private inputsCol
: The type of the columnChal
: The type of the challengeSelector
: The type of the selector
Required Associated Types§
Required Methods§
sourcefn new(
structure: &Self::Structure,
instances: [&I; 2],
witnesses: [&W; 2]
) -> Self
fn new( structure: &Self::Structure, instances: [&I; 2], witnesses: [&W; 2] ) -> Self
Creates a new environment storing the structure, instances and witnesses.
sourcefn challenge(&self, challenge: Chal, side: Side) -> F
fn challenge(&self, challenge: Chal, side: Side) -> F
Obtains a given challenge from the expanded instance for one side. The challenges are stored inside the instances structs.
sourcefn col(&self, col: Col, curr_or_next: CurrOrNext, side: Side) -> &[F]
fn col(&self, col: Col, curr_or_next: CurrOrNext, side: Side) -> &[F]
Returns the evaluations of a given column witness at omega or zeta*omega.