Commit 92c6b6e
fix(provers): correct EProver '#'→'%' prefix bug and Z3 get-value parsing bug; add proof_failure diagnostics
EProver uses '%' as its output comment prefix (TPTP convention), not '#'
(shell convention). parse_result was checking '# SZS status ...' so every
EProver result came back inconclusive. Tests updated to match real output.
Z3's parse_smt_result took the last non-empty line as the check-sat answer.
When a (get-value ...) follows the final (check-sat), the last line is a
model term like '(found_2 0))' — not 'sat'/'unsat'. Fixed to scan backward
for the last line that is exactly one of the three answer tokens, skipping
model/value output.
Adds src/rust/diagnostics/proof_failure.rs: a new DiagnosticReport type
with FailureKind taxonomy (ParseMismatch, BackendBug, UnsolvedGoal, TypeError,
SyntaxError, OutOfScope, Timeout, ProverCrash, Satisfiable, ConfigError,
Unknown), per-prover output parsers for EProver/Z3/CVC5/Coq/Agda/Lean/Idris2/
Vampire, location extraction, human-readable display, and A2ML serialisation.
11 unit tests all pass.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>1 parent 9351a96 commit 92c6b6e
4 files changed
Lines changed: 971 additions & 26 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
4 | 4 | | |
5 | 5 | | |
6 | 6 | | |
| 7 | + | |
7 | 8 | | |
8 | 9 | | |
9 | 10 | | |
10 | 11 | | |
| 12 | + | |
0 commit comments