feat(Bridge): Clean to ArkLib bridge with completeness and structural soundness#451
feat(Bridge): Clean to ArkLib bridge with completeness and structural soundness#451XC0R wants to merge 2 commits intoVerified-zkEVM:mainfrom
Conversation
|
Codex usage limits have been reached for code reviews. Please check with the admins of this repo to increase the limits by adding credits. |
🤖 Gemini PR SummaryImplements a formal bridge between the Clean circuit library and ArkLib's protocol framework, allowing Mathematical Formalization
Proofs
Infrastructure & Dependencies
Statistics
Lean Declarations ✏️ **Added:** 7 declaration(s)
🎨 **Style Guide Adherence**There are 26 violations of the style guide. They are grouped by rule below:
📄 **Per-File Summaries**
Last updated: 2026-04-12 22:39 UTC. |
|
wow! will look at this next week, amazing I definitely want the toolchain bump on main in clean so the libs can stay synced, can you create a PR from https://github.com/XC0R/clean/tree/toolchain-bump-v4.28 ?
I will try to align the definitions in clean so we don't have to change the name! |
|
PR for the toolchain bump: Verified-zkEVM/clean#357 Re the |
5a5dd02 to
02ca1a2
Compare
|
@XC0R Thanks for putting this together! Two substantive items before this can land:
The completeness side genuinely uses Clean's Minor: the unrelated [Posted by Cursor assistant (model: Opus 4.7) on behalf of @quangvdao with approval.] |
🤖 PR SummaryMathematical Formalization
Proof Status
Infrastructure & Dependencies
Statistics
Lean Declarations ✏️ **Added:** 9 declaration(s)
🎨 **Style Guide Adherence**The following violations of the style guide were identified:
📄 **Per-File Summaries**
Last updated: 2026-04-17 20:25 UTC. |
…ransfer Add a bridge module that wraps Clean's `FormalCircuit` as an ArkLib `NonInteractiveReduction`, transferring circuit-level security to protocol-level probabilistic guarantees. Main results (0 sorrys): - `reduction_perfectCompleteness`: Clean completeness → ArkLib perfect completeness - `reduction_soundness`: Clean soundness → ArkLib soundness (error = 0) Architecture: - 1-round ProverOnly protocol: prover sends witness environment, verifier checks circuit assumptions and returns output - Input relation: Assumptions ∧ eval consistency ∧ UsesLocalWitnesses - Output relation: ∃ input, circuit.Spec input output - Soundness: verifier rejects inputs outside Assumptions language - Completeness: original_completeness → ConstraintsHold → original_soundness → Spec Clean dependency updated to XC0R/clean fork (toolchain-bump-v4.28 branch, Lean v4.28.0).
…sfer - lakefile.toml: point Clean dep at Verified-zkEVM/clean (clean#357 merged) - Bridge/Clean.lean: update docstrings to clarify that Clean's original_soundness is transferred via reduction_perfectCompleteness, not reduction_soundness. The bridge transfers both Clean security properties; the naming mismatch is inherent to bridging two frameworks.
a28a099 to
35216dc
Compare
Summary
Bridge module that wraps Clean's
FormalCircuitas an ArkLibNonInteractiveReduction,transferring circuit-level security guarantees to protocol-level probabilistic security definitions.
Both Clean security properties (
original_completenessandoriginal_soundness) are transferredthrough
reduction_perfectCompleteness, which composes them to show the output satisfiesSpecwith probability 1.
reduction_soundnessis a structural property of the bridge construction(inputs outside
Assumptionsare rejected, error = 0).Architecture
A Clean
FormalCircuit F Input Outputis wrapped as a 1-roundProverOnlyprotocol:Environment Fas its single messagecircuit.Assumptionson the input; if satisfied, computesand returns the circuit output
original_completeness(constraints hold) +original_soundness(spec holds) compose to give ArkLib perfect completenessAssumptionslanguage (error = 0)Clean dependency
Now targets upstream Verified-zkEVM/clean at pinned
commit
4a013fed(post toolchain-bump-v4.28 merge via clean#357).lake-manifest.jsonchanges are alake updateartifact from retargeting the dep.New file
ArkLib/Bridge/Clean.lean(230 lines, 0 sorrys)