zkpyc-stdlib 0.1.0-dev

Standard library for the ZKPyC compiler.
Documentation
1
2
3
4
5
6
7
8
from zkpyc.types import Array, field # zk_ignore

# Two-bit window lookup table using one constraint
# Maps the bits `b` to a list of field elements `c`
def lookup(b: Array[bool, 2], c: Array[field, 4]) -> field:
    alpha: field = c[1] - c[0] + (field(b[1]) if (c[3] - c[2] - c[1] + c[0]) != field(0) else field(0))
    out: field = (field(b[0]) if alpha != field(0) else field(0)) + c[0] - (field(b[1]) if (field(0) - c[2] + c[0]) != field(0) else field(0))
    return out