You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
After the discussion in #252, we arrived at the idea that ArithmeticCircuit is an intermediate representation of the computation that should allow an unrestricted ability to create polynomial, lookup, and fold constraints. If a particular proving system (e.g., Plonk) does not support a certain type of constraints, we convert them to the supported form during the protocol setup computation.
Given the above, we want to generalize the current lookup constraints to the inclusion checks:
$$
(x_1, \dots, x_{k}) \in T
$$
Translating this to Haskell, we probably want T to be represented by Map and the tuple of variables to be a functor. We do not restrict the number of such sets T to be used in the same ArithmeticCircuit.
Refactor ArithmeticCircuit type, replacing acRange field
Refactor MonadCircuit and its instances
The text was updated successfully, but these errors were encountered:
Well, I believe the conversion to the proof protocol format is a separate step. The workflow probably should go like this:
Compile the function to the IR of ArithmeticCircuit
Post-compile optimization (as a general rule, we want to optimize as we go, but it might not be always possible)
Convert to a proof protocol format
Protocol-specific optimizations (?)
So, we can wrap all 4 steps in a compile function whose output is a prepared setup of a specific protocol. But we should also have "internal" compile that only produces "ArithmeticCircuit". The latter, for example, is useful in IVC.
After the discussion in #252, we arrived at the idea that
ArithmeticCircuit
is an intermediate representation of the computation that should allow an unrestricted ability to create polynomial, lookup, and fold constraints. If a particular proving system (e.g., Plonk) does not support a certain type of constraints, we convert them to the supported form during the protocol setup computation.Given the above, we want to generalize the current lookup constraints to the inclusion checks:
Translating this to Haskell, we probably want
T
to be represented byMap
and the tuple of variables to be a functor. We do not restrict the number of such setsT
to be used in the sameArithmeticCircuit
.ArithmeticCircuit
type, replacingacRange
fieldMonadCircuit
and its instancesThe text was updated successfully, but these errors were encountered: