pub type E<F> = Expr<ConstantExpr<F, BerkeleyChallengeTerm>, Column<RelationColumnType>>;
Expand description
Type to represent a constraint on the individual columns of the execution
trace.
As a reminder, a constraint can be formally defined as a multi-variate
polynomial over a finite field. The variables of the polynomial are defined
as kimchi_msm::columns::Column
.
The expression
framework defined in kimchi::circuits::expr
is used to
describe the multi-variate polynomials.
For instance, a vanilla 3-wires PlonK constraint can be defined using the
multi-variate polynomial of degree 2
P(X, Y, Z) = q_x X + q_y Y + q_m X Y + q_o Z + q_c
To represent this multi-variate polynomial using the expression framework,
we would use 3 different columns.