feat: define theorem for extractability for Merkle trees - #144
feat: define theorem for extractability for Merkle trees#144BoltonBailey wants to merge 20 commits into
Conversation
🤖 Gemini PR SummaryThis diff significantly refactors and expands the Merkle Tree commitment scheme implementation. Here is a high-level summary of the key changes:
Analysis of Changes
Last updated: 2025-12-11 02:32 UTC. See the main CI run for build status. |
🤖 Gemini PR SummaryStructural Refactor
Mathematical Formalization
Work in Progress (Incomplete Proofs)
Statistics
Lean Declarations ✏️ **Removed:** 2 declaration(s)
✏️ **Added:** 21 declaration(s)
❌ **Added:** 4 `sorry`(s)
🎨 **Style Guide Adherence**There are 34 violations of the style guide in the provided diff. They are grouped by rule below:
📄 **Per-File Summaries**
Last updated: 2026-03-23 02:37 UTC. |
|
I have only been able to work on this PR sporadically - it's looking like this PR will require more background on a collision lemma to be made sorry free. On the other hand, it does some reorganization of this folder, and so maybe it makes sense to merge now, so that any refactors don't overwrite the file and so people who are interested in the sorries can try to solve them. What do you all think? |
If the statements currently in this PR feel right I'm happy to merge this with some remaining sorries and any appropriate todos indicated in the file to make it easier for future work to pick up from here. |
- Resolved merge conflict in Defs.lean and moved Merkle tree files to new Inductive/Vector subdirectories. - Updated ArkLib.lean and internal imports to reflect the new file structure. - Fixed VCVio API breakages (SampleableType, QueryLog type changes, probEvent macro, OracleSpec.Fintype).
|
tentatively let gemini try to refactor this in line with changes to vcv-io and re-organised things to take into account progress on vector merkle trees. |
Build Timing Report
Incremental Rebuild Signal
This compares a clean project build against an incremental rebuild in the same CI job; it is a lightweight variability signal, not a full cross-run benchmark. Slowest Current Clean-Build FilesShowing 20 slowest current targets, with comparison against the selected baseline when available.
|
|
The contents of this PR have been upstreamed in Verified-zkEVM/VCVio#365 |
…ar-words budget Adds `ProximityGap.exists_line_covered_stack_of_far_lt`, composing the proven pigeonhole `exists_line_covered_stack_of_sum_far_lt` with the covering double-count `sum_far_card_eq` (PR Verified-zkEVM#144): if `|F| · #{w far from C} < |ι → A|` then some stack `u` has its whole affine line `u 0 + γ • u 1` within distance `δ` of `C`. This crystallizes the remaining open content of the CS25 complete-CA-breakdown lower bound (T4.17, `cs25_rs_epsCA_breakdown_lower`): the genuine gap is now exactly the "few far words" budget `#{w far} < |A|^n / |F|` (the qEntropy/RS-ball-count covering bound) plus the non-degeneracy of the covered stack. Validation: `lake build ...CS25CoveringWitness` typechecks, axiom-clean, no `sorryAx`; `forbidden_tokens.py` clean; `sorry_census.py` holes=0; `git diff --check` clean. Refs Verified-zkEVM#75, Verified-zkEVM#82. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This PR:
Defs.leanandCompleteness.leanExtractability.leanfile with definition of the proof of extractability.NOTE: This content seems to have been upstreamed to VCV, so I'm going to work on moving this, here are some relevant PRs on that repo:
Verified-zkEVM/VCVio#365
Verified-zkEVM/VCVio#364
Verified-zkEVM/VCVio#357