Practical overview
When it fits
Use ProvenZK when a zero-knowledge circuit needs Lean-based formal analysis, particularly when the circuit originates from gnark code extracted from Go and the verification work involves gates, vectors, binary data, perfect hashes or Merkle trees.
Who it is for
- Lean 4 developers working on formal verification
- Researchers analyzing zero-knowledge circuits
- Teams using gnark circuits extracted from Go
- Engineers proving properties of circuit data structures and modular arithmetic
Documented uses
- Represent circuit gates and vectors in Lean
- Analyze gnark-derived zero-knowledge circuits
- Prove properties of binary conversion functions
- Reason about perfect hashes used in formal verification
- Verify circuit components involving Merkle trees
Requirements & limits
The repository is publicly accessible, open source and licensed under Apache-2.0. It is presented as a Lean 4 library for projects using the lake tool.
- The documented current integration is with gnark circuits extracted from Go using Reilabs’ Gnark Extractor.
- Lean 4 and the lake project tool are required by the documented setup.
- Mathlib 4’s ZMod underpins the library’s modular arithmetic.
- The library exposes separate modules for gates, vectors, binary data, perfect hashes and Merkle trees.
- The project is a formal-analysis library, so its value depends on a workflow that can use Lean proofs.
Check current requirements in the official documentation. Source-based guidance does not mean OpenViST has run or independently tested this project.
Add ProvenZK to a Lean project
Set up ProvenZK as a dependency and import its core circuit representations.
Before you start
- A Lean project built with the lake tool
- A project lakefile.lean
Steps
Add ProvenZK as a Git dependency in lakefile.lean using the repository URL.
Import ProvenZk.Gates and ProvenZk.Ext.Vector for the core gate and vector representations.
Import ProvenZK.Binary, ProvenZK.Hash or ProvenZK.Merkle when the project needs those documented components.
Expected outcome
The Lean project is configured to reference ProvenZK’s documented circuit, binary, hash and Merkle-tree components.
Guide limitations
- The README documents dependency setup and imports but does not document a complete proof or circuit-execution procedure.
- The current workflow is described for gnark circuits extracted from Go with Reilabs’ Gnark Extractor.
Compare options for Zero-knowledge verification
These projects document a common task and share a project role. This is a source-based comparison, not an execution benchmark or a guarantee of interchangeability.
| Project | Documented purpose | Platform | Access and requirements |
|---|---|---|---|
| ProvenZK | Represent circuit gates and vectors in Lean | CLI, Linux, macOS, Windows | The repository is publicly accessible, open source and licensed under Apache-2.0. It is presented as a Lean 4 library for projects using the lake tool. |
| Picus | Detect under-constrained signals in a zero-knowledge circuit | CLI | The repository is public and released under the MIT license. Installation and local builds are documented through Cargo, with Docker also provided as a build and run path. The default native solver does not require an external solver. |
Sources & review
Source record details
- Source availability
- Active
- Sources checked
- 3 October 2026
- Original website title
- reilabs/proven-zk · Official homepage title · retained in its source language

