feat(Append): completeness composition under init-uniformity + run_pure_verifier - #635
Conversation
🤖 PR SummaryMathematical Formalization
Context and Dependencies
Statistics
Lean Declarations ✏️ Added: 2 declaration(s)
📋 **Additional Analysis**
📄 **Per-File Summaries**
Last updated: 2026-07-11 01:31 UTC. |
… the T1 keystone Completeness composes for the challenge-free (commitment-transform/BCS) class at fully general arity, with pure verifiers: - D0 uniformSample_cast + cast_arrow_apply: sampling transport across type equalities with heq-aligned instances - simulateQ_addLift_liftComp_left/right: the routing bricks — simulating a component computation through the composed challenge sum equals simulating in its own sum (instance alignment via fappend₂_left/right; the crown's 15-erw hazard reduced to two induction lemmas) - hfact_of_challenge_free: Verified-zkEVM#635's prover-factorization hypothesis at general arity (rewrite by append_run_of_challenge_free; bricks collapse the lifts; endgame rfl) - append_perfectCompleteness_of_challenge_free: Verified-zkEVM#635's theorem applied All at [propext, Classical.choice, Quot.sound], transitively sorryAx-free.
…dd run_pure_verifier Two new theorems alongside the open general append_completeness: * Reduction.run_pure_verifier — for any reduction whose verifier is a pure function f of statement and transcript, (R.run stmt wit).run equals the lifted prover run followed by pure massage. The run characterization the support_run_pure_verifier premise pattern suggests. * Reduction.append_perfectCompleteness_of_proverFactorization — perfect completeness composes across append given: pure verifiers, the prover-level simulated factorization (the distributional shadow of the open Prover.append_run, taken as a hypothesis so this theorem is usable now and the factorization can land separately), and — answering the TODO at the top of this section — R2's completeness quantified over ALL initial states: the appended run hands R2 whatever state R1's prover left, so a fixed-init premise cannot apply. A run-level factorization through R2.run is false pointwise (the appended verifier chains V1's output while the appended prover chains P1's; they agree only on honest supports), hence the prover-level hypothesis. No sorry; axioms [propext, Classical.choice, Quot.sound]. All importers build. From The Institute for Ontological Mathematics (IAOM) / Equation Capital dba Apoth3osis.
a2acb49 to
66da7fa
Compare
…ssage ++ 1-message The commit-then-reveal shape from Verified-zkEVM#627, fully proven (sorry-free, axioms [propext, Classical.choice, Quot.sound]): * per-field equation lemmas for Prover.append at the embedded literal indices (the Eq.mpr casts from the tactic-mode field definitions discharged by an eq_mpr_eq_cast/cast_heq/congr recipe); * append_run_components: the appended prover's run characterized entirely in component operations (P1's message; the boundary handoff P1.output >> P2.input >> P2.sendMessage; P2's output), each under the pinned direct lift (a restated liftM can elect a two-hop route through a component challenge sum that is semantically but not definitionally equal — pinned explicitly); * simulated bridges: the direct lifts wash out under any QueryImpl; * hfact_oneMsg: the prover-level simulated factorization — the hypothesis of Reduction.append_perfectCompleteness_of_proverFactorization, proven; * append_perfectCompleteness_oneMsg: pure verifiers + R1 complete at init + R2 complete uniformly in the initial state => the appended reduction is perfectly complete. Unconditional at this shape. The composition theorem is restated locally (see the CompositionLocal note): applying the Append.lean version at these concrete reducible specs hits a pinned-vs-generic OracleInterface unification storm. Stacked on Verified-zkEVM#631 (runToRound_succ) and Verified-zkEVM#635 (the composition theorem) — their commits are included; review only AppendOneMsg.lean + the ArkLib.lean import. From The Institute for Ontological Mathematics (IAOM) / Equation Capital dba Apoth3osis.
|
Rebased onto current Why: this branch was still pinned to The rebase was textually clean, and no proof needed repair. Full The Institute for Ontological Mathematics (IAOM) / Equation Capital dba Apoth3osis. |
🤖 PR SummaryMathematical Formalization
Statistics
Lean Declarations ✏️ Added: 2 declaration(s)
📋 **Additional Analysis**The diff introduces a new theorem 📄 **Per-File Summaries**
Last updated: 2026-07-28 14:55 UTC. |
|
Note on the red checks: both failures are pre-existing on CI — the Lean build is green.
Build and Deploy Website to GitHub Pages — fails on the blueprint declaration check: This workflow has failed on every run for at least the past two weeks, across every contributor's branch (#574, #610, #503, Happy to open a separate fix for the |
First of the composition units discussed on #627 (the milestone comment there has the full context).
Adds two theorems to the Security section of
Composition/Sequential/Append.lean, alongside (not replacing) the open generalappend_completeness:Reduction.run_pure_verifier— for a reduction whose verifier is a pure functionfof statement and transcript:(R.run stmt wit).run = liftM (R.prover.run stmt wit) >>= fun r => pure (some ((r.1, r.2), f stmt r.1)). This is the run characterization that the existingsupport_run_pure_verifierpremise pattern suggests, factored out for reuse.Reduction.append_perfectCompleteness_of_proverFactorization— perfect completeness composes acrossappendgiven (a) pure verifiers, (b) the prover-level simulated factorization as a hypothesis (the distributional shadow of the openProver.append_run— so this theorem is usable immediately, and the factorization can land separately; we have it proven for the 1-message ++ 1-message case, follow-up PR), and (c) the answer to this section's TODO ("when do these theorems hold?"): R₂'s completeness quantified over all initial states. The appended run hands R₂ whatever state R₁'s prover left, so a fixed-initpremise cannot apply — and component completeness proofs (e.g. feat(SendWitness): prove reduction completeness; add Prover.runToRound_succ #631's SendWitness) already satisfy the uniform form since they hold for arbitraryinit/impl.Design note recorded in the docstrings: a run-level factorization through
R₂.runis false pointwise — the appended verifier chains V₁'s output statement while the appended prover chains P₁'s output statement, and these agree only on honest supports — which is why the hypothesis is prover-level.Checks: no
sorry;#print axioms=[propext, Classical.choice, Quot.sound]; the module and all importers (Sequential.General,CoordinateWiseSpecialSoundness/Composition,RingSwitching/*) build.From The Institute for Ontological Mathematics (IAOM) / Equation Capital dba Apoth3osis