We've introduced checks that forbid creating constraints that do not conform to plonk form in the MonadCircuit instance for ArithmeticCircuit.
If we plan to support several proving protocols for the same Symbolic function, we need to rethink this part.
A possible solution is to allow all kinds of constraints in the circuit and convert them into the form suitable for each proving protocol.
We've introduced checks that forbid creating constraints that do not conform to plonk form in the MonadCircuit instance for
ArithmeticCircuit.If we plan to support several proving protocols for the same Symbolic function, we need to rethink this part.
A possible solution is to allow all kinds of constraints in the circuit and convert them into the form suitable for each proving protocol.