Repository navigation
Advance soundness proof and close Layer 7 tape reconstruction - #30
Merged
Merged
Conversation
Most of them are empty.
Add the pending trace, witness, and constraint definitions alongside the normalized final-row ISA representation and its proof updates. Add focused regression modules, including FinalOperands. Completeness proofs remain deferred.
Prove last-jump, termination-store, padding, JAL and branch replay lemmas; stage remaining JALR and no-store obligations as named declarations.
Prove both architectural JALR replay steps, split the last-row lemma into named cases, and extract the shared replay-step helpers. Five gaps remain in StallSuffix.lean; methods/step_c_closing_plan.md is the plan for closing them. AGENTS.md records the working rules for agents. StallSuffix.lean and TerminationStore.lean were last edited after the agent's final build report and have not been rebuilt since.
The file elaborates; its only remaining sorry is rebuild_rows.
omibo
approved these changes
Oct 21, 2026
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.
Summary
The soundness proof now reconstructs a fixed advice tape from relaxed execution answers and proves
untrustedAnswerLanguage_implies_inLanguagewithoutsorryAx.This integrates the accumulated soundness work since #26 and closes Layer 7, while retaining the three explicit outstanding obligations in the top-level soundness proof.
8bbb2357.methods/soundness.mdandJoltConstraints/model_review.md.This PR branch captures the audited
feat/soundnesscommitabbe04532c57b7f18b1c6ec7562ad09fcc8e3956so concurrent work can continue independently.It reconciles main's squash of #26 and retains main's Lean CI action update to v1.6.2.
All Lean sources and Lake configuration are identical to the audited commit after reconciliation.
Verification
JoltBytecodeandJoltConstraints) with an isolated Lake build directory: 8,802 jobs passed.LeanRV64D.leanor anything underLeanRV64D/relative to main.git diff --checkpassed for the closing change and merge resolution.JoltInstance.soundnessafter building the integrated branch.untrustedAnswerLanguage_implies_inLanguagedepends only onpropext,Classical.choice,Quot.sound, and the existingsys_enable_experimental_extensionsaxiom.It has no
sorryAxdependency.The only
sorryAxpaths fromJoltInstance.soundnesspass through:JoltInstance.soundness_execution_prefix_agreement.JoltInstance.soundness_prover_accepts(C).JoltInstance.soundness_spoil_asserts_pass(D).The dependency traversal verified that all three are reachable and that excluding exactly those declarations removes
sorryAx.The existing
branch_target_toNatbv_decideaxiom remains recorded in the proof ledger; the tape closure adds nobv_decideuse.C remains intentionally assumed despite the documented trace-length counterexamples pending upstream resolution, so this PR does not claim a complete soundness proof.
Declaration timings include
narrow_load_shape40 ms and the migrated shift-pair proof 45 ms.The shared frame theorem takes 878 ms, reducing
execInstr_tapeGrowthfrom 580 to 6 ms andexecInstr_rule_of_device_relationfrom 1,363 to 4 ms.The complete tape check took 28.14 s during a concurrent build; the subsequent cached integrated build took 3.55 s, and its final axiom audit took 9.70 s.
The complete declaration timing tables are in
methods/soundness.md.AI assistance
Codex implemented and checked the tape reconstruction and shared proofs, ran the builds and axiom audits, and prepared this PR under Ari's direction.