Skip to content

Proofs for IndexedBinaryTree lemmas - #140

Merged
alexanderlhicks merged 2 commits into
Verified-zkEVM:mainfrom
logical-intelligence:ibt
Sep 3, 2025
Merged

Proofs for IndexedBinaryTree lemmas#140
alexanderlhicks merged 2 commits into
Verified-zkEVM:mainfrom
logical-intelligence:ibt

Conversation

@winger

@winger winger commented Aug 31, 2025

Copy link
Copy Markdown
Contributor

Provides the following definitions / proofs, along with auxiliary definitions & theorems:

instance {s} : LawfulFunctor (fun α => FullData α s) [ArkLib/ToMathlib/Data/IndexedBinaryTree/Lemmas.lean] #132
instance {s} : LawfulFunctor (fun α => InternalData α s) [ArkLib/ToMathlib/Data/IndexedBinaryTree/Lemmas.lean] #131
instance {s} : LawfulFunctor (fun α => LeafData α s) [ArkLib/ToMathlib/Data/IndexedBinaryTree/Lemmas.lean] #130
theorem SkeletonNodeIndex.rightChild_bind_parent [ArkLib/ToMathlib/Data/IndexedBinaryTree/Lemmas.lean] #129
theorem SkeletonNodeIndex.leftChild_bind_parent [ArkLib/ToMathlib/Data/IndexedBinaryTree/Lemmas.lean] #128
def FullData.Equiv [ArkLib/ToMathlib/Data/IndexedBinaryTree/Equiv.lean] #127
def SkeletonNodeIndex.SumEquiv [ArkLib/ToMathlib/Data/IndexedBinaryTree/Equiv.lean] #126
def FullData.EquivIndexFun [ArkLib/ToMathlib/Data/IndexedBinaryTree/Equiv.lean] #125
def InternalData.EquivIndexFun [ArkLib/ToMathlib/Data/IndexedBinaryTree/Equiv.lean] #124
def LeafData.EquivIndexFun [ArkLib/ToMathlib/Data/IndexedBinaryTree/Equiv.lean] #123
def SkeletonNodeIndex.path [ArkLib/ToMathlib/Data/IndexedBinaryTree/Basic.lean] #122

Note: the statements of SkeletonNodeIndex.leftChild_bind_parent and SkeletonNodeIndex.rightChild_bind_parent had to be updated to match the implementation.

winger added 2 commits August 30, 2025 15:59
…b/Data/IndexedBinaryTree/Lemmas.lean] Verified-zkEVM#132

instance {s} : LawfulFunctor (fun α => InternalData α s) [ArkLib/ToMathlib/Data/IndexedBinaryTree/Lemmas.lean] Verified-zkEVM#131
instance {s} : LawfulFunctor (fun α => LeafData α s) [ArkLib/ToMathlib/Data/IndexedBinaryTree/Lemmas.lean] Verified-zkEVM#130
theorem SkeletonNodeIndex.rightChild_bind_parent [ArkLib/ToMathlib/Data/IndexedBinaryTree/Lemmas.lean] Verified-zkEVM#129
theorem SkeletonNodeIndex.leftChild_bind_parent [ArkLib/ToMathlib/Data/IndexedBinaryTree/Lemmas.lean] Verified-zkEVM#128
def FullData.Equiv [ArkLib/ToMathlib/Data/IndexedBinaryTree/Equiv.lean] Verified-zkEVM#127
def SkeletonNodeIndex.SumEquiv [ArkLib/ToMathlib/Data/IndexedBinaryTree/Equiv.lean] Verified-zkEVM#126
def FullData.EquivIndexFun [ArkLib/ToMathlib/Data/IndexedBinaryTree/Equiv.lean] Verified-zkEVM#125
def InternalData.EquivIndexFun [ArkLib/ToMathlib/Data/IndexedBinaryTree/Equiv.lean] Verified-zkEVM#124
def LeafData.EquivIndexFun [ArkLib/ToMathlib/Data/IndexedBinaryTree/Equiv.lean] Verified-zkEVM#123
def SkeletonNodeIndex.path [ArkLib/ToMathlib/Data/IndexedBinaryTree/Basic.lean] Verified-zkEVM#122
@alexanderlhicks

Copy link
Copy Markdown
Collaborator

Thank you! Hoping to review these tomorrow and merge.

@alexanderlhicks alexanderlhicks self-assigned this Sep 1, 2025
@alexanderlhicks
alexanderlhicks merged commit c6f114a into Verified-zkEVM:main Sep 3, 2025
3 checks passed
SYMBaiEX pushed a commit to SYMBaiEX/ArkLib that referenced this pull request Jun 7, 2026
SYMBaiEX pushed a commit to SYMBaiEX/ArkLib that referenced this pull request Jun 7, 2026
SYMBaiEX pushed a commit to SYMBaiEX/ArkLib that referenced this pull request Jun 7, 2026
SYMBaiEX pushed a commit to SYMBaiEX/ArkLib that referenced this pull request Jun 7, 2026
SYMBaiEX pushed a commit to SYMBaiEX/ArkLib that referenced this pull request Jun 7, 2026
SYMBaiEX pushed a commit to SYMBaiEX/ArkLib that referenced this pull request Jun 7, 2026
SYMBaiEX pushed a commit to SYMBaiEX/ArkLib that referenced this pull request Jun 7, 2026
SYMBaiEX pushed a commit to SYMBaiEX/ArkLib that referenced this pull request Jun 7, 2026
…y-free build

Three tracked scratch files held `sorry` stubs attempting genuinely-OPEN
conjectures (not closeable by formalization):
  - ArkLib/P2Scratch.lean  (restrictedFaaDiBrunoMatch_proof — BCIKS20 P2 Hensel,
    Verified-zkEVM#139/Verified-zkEVM#140; the residual was refuted as not-unconditionally-true)
  - ArkLib/Data/CodingTheory/ProximityGap/BCIKS20/P2PartitionMatchScratch.lean
    (wrongly registered in the generated ArkLib.lean)
  - ArkLib/GrandChallengesScratch.lean (uniformEpsMCAgsPrizeBoundConjecture —
    the open uniform prize form, Verified-zkEVM#141)

None were imported or load-bearing (zero external references); only auto-sync
had touched them since landing. They were the last 3 live holes per
scripts/sorry_census.py. The open math stays tracked on Verified-zkEVM#139/Verified-zkEVM#140/Verified-zkEVM#141; the
production tree should not carry broken scratch attempts at open conjectures.

After removal + `scripts/update-lib.sh` regen of ArkLib.lean (835 imports):
  - scripts/sorry_census.py: 0 holes (was 3)
  - scripts/forbidden_tokens.py: clean (10 allowlisted external-paper axioms)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
SYMBaiEX pushed a commit to SYMBaiEX/ArkLib that referenced this pull request Jun 7, 2026
…er is not universal — refute the unsound residual axiom

ResidualAxioms.lean carries 'axiom mcaForallDoubleCover_residual : MCAForallDoubleCover C δ' for ALL codes. But MCAForallDoubleCover.not_mcaEvent shows MCAForallDoubleCover C δ is equivalent to 'no MCA bad event ever occurs', and lineDecodable_imp_epsMCA_le_target turns it into epsMCA = 0 for every code/radius — plainly false. So the axiom is unsound (makes the library inconsistent), not honest open-problem scaffolding.

New file proves this sorry-free, axiom-clean [propext, Classical.choice, Quot.sound]: concrete_mcaEvent exhibits a realizable MCA bad event (ZMod 2, Fin 1, C={0}, delta=0); not_mcaForallDoubleCover_concrete and exists_not_mcaForallDoubleCover conclude the universal axiom asserts a false proposition and must be removed (larp per Verified-zkEVM#169/Verified-zkEVM#171). A refutation artifact like double_coverage_counterexample, not a closure of open math.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
SYMBaiEX pushed a commit to SYMBaiEX/ArkLib that referenced this pull request Jun 7, 2026
…Cover refutation to reuse existing witness

The tree already de-larped mcaForallDoubleCover_residual (axiom -> def : Prop) and LineDecodingRefutation.lean already proves the concrete bad event (mcaEvent_ubad_zero) + epsMCA_Czero_pos. To avoid duplicating that (and the file bloat Verified-zkEVM#171 flags), reuse its witness and add only the genuinely-unique lemmas that refute the MCAForallDoubleCover PREDICATE directly: not_mcaForallDoubleCover_Czero and exists_not_mcaForallDoubleCover. These are a regression guard ensuring the residual can never be honestly re-promoted to an axiom/theorem. Axiom-clean [propext, Classical.choice, Quot.sound].

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
SYMBaiEX pushed a commit to SYMBaiEX/ArkLib that referenced this pull request Jun 7, 2026
… ArkLib.lean

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
SYMBaiEX pushed a commit to SYMBaiEX/ArkLib that referenced this pull request Jun 7, 2026
SYMBaiEX pushed a commit to SYMBaiEX/ArkLib that referenced this pull request Jun 7, 2026
SYMBaiEX pushed a commit to SYMBaiEX/ArkLib that referenced this pull request Jun 7, 2026
SYMBaiEX pushed a commit to SYMBaiEX/ArkLib that referenced this pull request Jun 7, 2026
The black-box T4.21 (`lineDecodable_imp_epsMCA_le_target`) is false (refuted in-tree).
The first repair via `MCAForallDoubleCover` is *circular*: `epsMCA_eq_zero_iff_MCAForallDoubleCover`
proves that hypothesis is equivalent to the conclusion `epsMCA = 0` (two distinct scalars pin a
degree-≤1 line, so the "double cover" collapses to joint agreement) — so it assumes its conclusion.

New module `LineDecodingT421Faithful.lean` gives the non-circular repair
`mcaBadCount_lt_of_gs_curve_cover`: exposing the genuine GS interpolation data (a single candidate
codeword-pair whose line covers the bad scalars on a curve, + failure of correlated agreement —
strictly weaker than `epsMCA = 0`), the *proven* BCIKS20 bound
`sufficiently_large_list_agreement_on_curve_implies_correlated_agreement` yields the real
list-size cap `mcaBadCount C δ u₀ u₁ < M·n + 1` (the authentic `a/|F|` shape of T4.21).

Axiom-clean [propext, Classical.choice, Quot.sound]; builds (3330 jobs); forbidden-tokens clean.
Registered in ArkLib.lean.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
SYMBaiEX pushed a commit to SYMBaiEX/ArkLib that referenced this pull request Jun 7, 2026
SYMBaiEX pushed a commit to SYMBaiEX/ArkLib that referenced this pull request Jun 7, 2026
SYMBaiEX pushed a commit to SYMBaiEX/ArkLib that referenced this pull request Jun 7, 2026
SYMBaiEX pushed a commit to SYMBaiEX/ArkLib that referenced this pull request Jun 7, 2026
SYMBaiEX pushed a commit to SYMBaiEX/ArkLib that referenced this pull request Jun 7, 2026
SYMBaiEX pushed a commit to SYMBaiEX/ArkLib that referenced this pull request Jun 8, 2026
…= (floor(delta*n)+1)/|F|)

Completes the exact characterization. Construction (slopeStack): k+1 active coords (k=floor(delta*n))
carry distinct slopes phi over the common-zero coords; each slope phi(i0) is a bad scalar (line
vanishes off the active set and at i0, witness size n-k >= (1-delta)n, nondegenerate at i0). The k+1
distinct slopes (phi injective on A) give >= k+1 bad scalars, so epsMCA >= (k+1)/|F|. Needs
floor(delta*n)+1 <= min(|iota|, |F|). With the upper bound this PINS epsMCA(bot,delta) exactly.

Axiom-clean (no sorry), 3 build-iterations. Genuine novel construction (Verified-zkEVM#140/Verified-zkEVM#171).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
SYMBaiEX pushed a commit to SYMBaiEX/ArkLib that referenced this pull request Jun 8, 2026
epsMCA_bot_eq_floor_succ_div: epsMCA(bot over F, delta) = (floor(delta*n)+1)/|F| for delta<=1 and
floor(delta*n)+1 <= min(|iota|,|F|). le_antisymm of the tight upper bound (slope-counting) and the
matching slopeStack lower construction. A fully machine-checked instance of the Grand MCA Challenge
format (closed-form epsMCA from which delta* is read off exactly). Axiom-clean. (Verified-zkEVM#140/Verified-zkEVM#232)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants