Formally Verified Arguments of Knowledge in Lean
333
stars
1,393
commits
Lean
primary language
Sep 11, 2026
updated
This library aims to provide a modular and composable framework for formally verifying succinct non-interactive arguments of knowledge (SNARKs). This is done as part of the verified-zkevm effort.
In the first stage of this library's development, we plan to formalize interactive (oracle) reductions (the information-theoretic core of almost all SNARKs today), and prove completeness and soundness for a select list of protocols (see the list of active formalizations below).
For each protocol, we aim to provide:
In the future, we plan to verify functional equivalence of the executable spec (or modifications thereof) for certain protocols (e.g., sum-check, FRI, or WHIR), with the extracted code from Rust implementations of the same protocols (via hax).
The core of our library is a mechanized theory of Interactive Oracle Reductions (see OracleReduction):
OracleReduction in our formalization) is an interactive protocol between a prover and a verifier to reduce a relation $$R_1$$ on some public statement & private witness to another relation $$R_2$$.Using the theory of interactive oracle reductions, we then formalize various proof systems in ProofSystem.
The library is currently in development. Alongside general development of the library's underlying theory, the following cryptographic components are actively being worked on:
VCV-io, ArkLib's main dependency alongside mathlib is also being developed in parallel. We are also starting work on the Bluebell probabilistic program logic in (our fork of) iris-lean.
We welcome outside contributions to the library! Please see CONTRIBUTING and, the list of issues for immediate tasks, and the ROADMAP for a list of desired contributions.
If you're interested in working on any of the items mentioned in the list of issues or the roadmap, please see verified-zkevm.org, contact the authors, or open a new issue.
New releases are planned in line with the Lean and mathlib stable release cycles.
(top 30 of 39)
Lean
91.7%
TeX
4.6%
Python
2.1%
HTML
1.1%
Formally Verified Arguments of Knowledge in Lean
333
stars
1,393
commits
Lean
primary language
Sep 11, 2026
updated
This library aims to provide a modular and composable framework for formally verifying succinct non-interactive arguments of knowledge (SNARKs). This is done as part of the verified-zkevm effort.
In the first stage of this library's development, we plan to formalize interactive (oracle) reductions (the information-theoretic core of almost all SNARKs today), and prove completeness and soundness for a select list of protocols (see the list of active formalizations below).
For each protocol, we aim to provide:
In the future, we plan to verify functional equivalence of the executable spec (or modifications thereof) for certain protocols (e.g., sum-check, FRI, or WHIR), with the extracted code from Rust implementations of the same protocols (via hax).
The core of our library is a mechanized theory of Interactive Oracle Reductions (see OracleReduction):
OracleReduction in our formalization) is an interactive protocol between a prover and a verifier to reduce a relation $$R_1$$ on some public statement & private witness to another relation $$R_2$$.Using the theory of interactive oracle reductions, we then formalize various proof systems in ProofSystem.
The library is currently in development. Alongside general development of the library's underlying theory, the following cryptographic components are actively being worked on:
VCV-io, ArkLib's main dependency alongside mathlib is also being developed in parallel. We are also starting work on the Bluebell probabilistic program logic in (our fork of) iris-lean.
We welcome outside contributions to the library! Please see CONTRIBUTING and, the list of issues for immediate tasks, and the ROADMAP for a list of desired contributions.
If you're interested in working on any of the items mentioned in the list of issues or the roadmap, please see verified-zkevm.org, contact the authors, or open a new issue.
New releases are planned in line with the Lean and mathlib stable release cycles.
(top 30 of 39)
Lean
91.7%
TeX
4.6%
Python
2.1%
HTML
1.1%