Skip to content

Merge the invariant's two halted cases into one - #27

Merged
kristinas merged 1 commit into
mainfrom
kristina-halted-case
Nov 6, 2026
Merged

kristinas merged 1 commit into
mainfrom
kristina-halted-case

Conversation

@kristinas

Copy link
Copy Markdown
Contributor

The functional invariant's halted cases for ebreak and ecall differed only in which halt state they expect. They are now one case: haltMatches checks that the halt matches the instruction at the ISA's pc.

  • Proof.Core.Functional.Invariant: one haltedCaseAt (and one haltedCase in the list form); HaltKind is gone.
  • Comments in Obligation.hs and test/ProofSpec.hs now say "the halted case".

The invariant is logically unchanged, but its solver queries change shape. Opened as a draft so CI runs the solver build: a local run ran out of memory.

🤖 Generated with Claude Code

The halted cases for ebreak and ecall differed only in which halt
state they expect. One case now checks, through haltMatches, that the
halt matches the instruction at the ISA's pc. The invariant is
logically unchanged: (A && rest) || (B && rest) is (A || B) && rest.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@kristinas
kristinas marked this pull request as ready for review November 6, 2026 19:05
@kristinas
kristinas merged commit d396462 into main Nov 6, 2026
1 check passed
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.

1 participant