Add observation-labelled pure-core small-step semantics - #160
Closed
Abraxas1010 wants to merge 2 commits into
Closed
Add observation-labelled pure-core small-step semantics#160Abraxas1010 wants to merge 2 commits into
Abraxas1010 wants to merge 2 commits into
Conversation
added 2 commits
July 24, 2026 16:13
Introduce an observation-labelled relational semantics and a separate executable stepper for the initial constants/locals/integer slice. Prove soundness, completeness, determinism, progress, preservation, traces, and exact refinement against execOne; project the relation into iris-lean and add a generated constructor-coverage gate.
Collaborator
|
Welcome, and thanks for your contribution. Please, notice that the iris migration was already finished (still need to be tested in depth though). Please use the latest main. I'm going to close this PR. |
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
This introduces the first coherent observation-labelled small-step slice for the Iris migration and preserves the existing big-step interpreter as a refinement oracle.
Expr/ThreadState/MachineStore/Configsplit and authoritative labelledSteprelationstep?with global soundness, completeness, determinism, terminality, runtime/store preservation, and well-formedness progress/preservation proofsWhy
Talos's
irismigration needs a relational semantics suitable for Iris while retaining an executable runner and a mechanically checked bridge to the current interpreter. This PR establishes that foundation on a deliberately bounded, coherent instruction family. It does not claim structured control flow, memory, or complete Wasm semantic preservation; those remain later migration layers.Validation
testsuite_report.txtis byte-identical to the committed baseline; zero out-of-fuel regressionsInstructionconstructorscargo clippyretains one unrelated pre-existingfloat_truncx != x/clippy::eq_opfailure; this PR does not modify that fileTrust scope
The principal new trace, fuel, and invariant theorems have measured axiom footprint
[propext]; stepper soundness additionally uses the repository's existing quotient footprint. The old/new refinement theorems inherit[Classical.choice, Quot.sound]from the existing interpreter path. Nosorry,admit, new axiom declaration, or compiler-only decision axiom is introduced.Contributor and collaboration
This contribution was prepared by Richard Goodman — Apoth3osis (
rgoodman@apoth3osis.io). Please reach out by email to discuss this work and opportunities for further collaboration on the Iris migration, WebAssembly semantics, and formal verification.AI tooling assisted implementation and review. Richard Goodman remains accountable for the contribution and is available to discuss every part of the design and proof surface.