Skip to content

verify: Report replayed proofs as proved obligations, not as verified - #16

Merged
SwayamInSync merged 16 commits into
mainfrom
fix/replay-dependencies
Oct 14, 2026
Merged

SwayamInSync merged 16 commits into
mainfrom
fix/replay-dependencies

Conversation

@SwayamInSync

Copy link
Copy Markdown
Owner

Archive replay verifies each module alone, but reported a module whose obligations hold as Verified. A source verdict also rests on what the archive does not carry: callee and trusted contracts, spec facts, partiality, and the vacuity checks. So a replay printed Verified where the source run did not:

Function Source run Replay on main
caller, whose callee's contract fails Unresolved [reason=callee.contract] Verified
vac, with an unsatisfiable precondition Verified [vacuous] Verified
uses_tr, calling a trusted contract Verified [trusts=tr] Verified
loop_star, with decreases(*) Verified [partial] Verified

Replay now reports such a module as Proved obligations: caller (dependencies not checked in replay), with JSON status proved-obligations, and never Verified. The exit code is unchanged. Failures keep their label: postconditions are not archived either, so replay certifies a counterexample by the definitions alone.

Testing: suite/replay_dependencies.cpp replays the four cases above and fails on main. The replay checks of eight tests and of the backend fidelity gate expect the new label. Verify suite: 398 passed, 1 unsupported. Replaying the archives of the 405 Verify sources (353 archive) with main and with this branch, the only change is that 1243 proofs read proved-obligations instead of verified; the 486 failures and 79 unresolved results are identical.

@SwayamInSync
SwayamInSync merged commit 7c64d55 into main Oct 14, 2026
14 checks passed
@SwayamInSync
SwayamInSync deleted the fix/replay-dependencies branch October 14, 2026 08:29
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