Open DavePearce opened 1 month ago
NOTE: some of these functions are not actually used within the zkEVM constraints and could be removed.
Note also that this compiles without warnings / errors:
(module test)
(defcolumns (A :binary@loob) (B :binary@loob))
(defconstraint test () (if (+ A 1) B))
These functions accept variadic arguments, and place requirements on them. Specifically, that summing any two arguments cannot result in 0 unless they are all 0. In real terms, this means they should be "small" in some sense (e.g. u1, u8, etc). Unfortunately, the lack of type information given for the arguments of this functions represents a potential pitfall. Specifically:
The latter point is especially true with field agnosticity. That's because the size of fields (hence the chance of overflow) is much increased.