Skip to content

feat(validate): EB015–EB017 proof status from Rodin proof files#53

Open
evdenis wants to merge 1 commit into
mainfrom
feat/proof-status
Open

feat(validate): EB015–EB017 proof status from Rodin proof files#53
evdenis wants to merge 1 commit into
mainfrom
feat/proof-status

Conversation

@evdenis

@evdenis evdenis commented Jun 14, 2026

Copy link
Copy Markdown
Contributor

What

A standalone proofs module that reads Rodin's proof artifacts
(.bpr / .bpo / .bps) and reports obligation status, auto-enabled whenever
proof files are present (no flag):

  • EB015 — undischarged (pending) proof obligation.
  • EB016 — broken proof (stale script).
  • EB017 — unparseable proof file.

Confidence and broken state are read from the .bps status, matching
eventb-checker 1.6 (a broken-but-discharged obligation counts pending and
reports once, as EB016 — never also as EB015). SARIF output carries a proof
summary; the text summary prints a Proofs: … line. Warnings keep the exit
code at 0.

Commits

  • feat(validate): EB015-EB017 proof status from Rodin proof files

Testing

  • proof_oracle_diff gate: proof status is byte-identical to eventb-checker 1.6
    across the model corpus (re-run green on this branch).
  • cli_test covers the EB015/EB016 reporting and the proof-summary lines.
  • Pre-commit gate green.

Part of splitting #50 into reviewable PRs. Independent of the refactor and WD
PRs — can be reviewed and merged on its own.

A standalone proofs module streams the Rodin .bpr/.bpo/.bps files and
reports undischarged obligations (EB015), broken proof scripts (EB016)
and unparseable proof files (EB017), plus an obligation summary. The
scan runs automatically whenever an archive or directory ships proof
files. validate surfaces the findings and a Proofs: ... summary line,
the SARIF output carries the summary as run properties, and the
proof_oracle_diff gate compares the counts and finding multiset against
eventb-checker. Reading the archive once now feeds the recovery parse,
the build and the proof scan from the same bytes.
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