This module includes the AND gadget implementation and the witness creation code.
Note that this module does not need any new gate type for the AND operation.
This module implements a complete EC addition gate.
Implementation of the
EndomulScalar
gate for the endomul scalar multiplication.
This gate checks 8 rounds of the Algorithm 2 in the
Halo paper per row.
This module implements short Weierstrass curve
endomorphism optimised variable base
scalar multiplication custom Plonk polynomials.
Foreign Field Addition module
Common parameters and functions for kimchi’s foreign field circuits.
Foreign field multiplication module
This module implements the double generic gate.
Keccak hash module
This module includes the definition of the NOT gadget and the witness code generation,
for both the implementation running with Xor16
gates and the one with Generic
gates.
Note that this module does not include a Not
gate type.
This module implements permutation constraint polynomials.
This module implements the Poseidon constraint polynomials.
Range check gate module
This implements the constraints of the Cairo gates
This module implements short Weierstrass curve variable base scalar multiplication custom Plonk polynomials.
This module includes the definition of the XOR gadget for 64, 32, and 16 bits,
the definition of the constraints of the Xor16
circuit gate,
and the code for witness generation for the XOR gadget.