|
LLZK 2.0.0
An open-source IR for Zero Knowledge (ZK) circuits
|
The LLZK project consists of three main components:
The general workflow of using LLZK is as follows:
The types, attributes, and operations that make up LLZK IR are logically grouped into several dialects defined via MLIR. The dialects can be further grouped into a few categories:
For the complete specification of all dialects, see LLZK IR Dialects.
Several builtin MLIR dialects are also supported in LLZK IR:
Frontends are not contained within the LLZK repository, but are instead maintained in separate repositories, using LLZK-lib as a dependency.
The LLZK project currently maintains the following frontends:
For information on how to create a new frontend, please refer to the Translation Guidelines.
LLZK provides three types of passes:
Documentation on how to use these passes is provided in Tool Guides.
Developer documentation can be found:
The LLZK project currently maintains the following backends:
Veridise also maintains a Picus Constraint Language backend that allows LLZK to be lowered to PCL for use with the Picus verifier.