feat(Append): completeness composition under init-uniformity + run_pure_verifier#635
Open
Abraxas1010 wants to merge 1 commit into
Open
Conversation
…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.
Contributor
🤖 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. |
Abraxas1010
pushed a commit
to Abraxas1010/ArkLib
that referenced
this pull request
Jul 12, 2026
… 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.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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