mirror of
https://github.com/Z3Prover/z3
synced 2025-08-09 20:50:50 +00:00
wip - updates to proof logging and self-checking
move self-checking functionality to inside sat/smt so it can be used on-line and not just off-line. when self-validation fails, use vs, not clause, to check. It allows self-validation without checking and maintaining RUP validation. new options sat.smt.proof.check_rup, sat.smt.proof.check for online validation. z3 sat.smt.proof.check=true sat.euf=true /v:1 sat.smt.proof.check_rup=true /st file.smt2 sat.smt.proof=p.smt2
This commit is contained in:
parent
993ff40826
commit
ac1552d194
40 changed files with 539 additions and 419 deletions
|
@ -25,7 +25,7 @@ Author:
|
|||
|
||||
namespace tseitin {
|
||||
|
||||
class proof_checker : public euf::proof_checker_plugin {
|
||||
class theory_checker : public euf::theory_checker_plugin {
|
||||
ast_manager& m;
|
||||
|
||||
expr_fast_mark1 m_mark;
|
||||
|
@ -52,12 +52,12 @@ namespace tseitin {
|
|||
}
|
||||
|
||||
struct scoped_mark {
|
||||
proof_checker& pc;
|
||||
scoped_mark(proof_checker& pc): pc(pc) {}
|
||||
theory_checker& pc;
|
||||
scoped_mark(theory_checker& pc): pc(pc) {}
|
||||
~scoped_mark() { pc.m_mark.reset(); pc.m_nmark.reset(); }
|
||||
};
|
||||
public:
|
||||
proof_checker(ast_manager& m):
|
||||
theory_checker(ast_manager& m):
|
||||
m(m) {
|
||||
}
|
||||
|
||||
|
@ -65,7 +65,7 @@ namespace tseitin {
|
|||
|
||||
bool check(app* jst) override;
|
||||
|
||||
void register_plugins(euf::proof_checker& pc) override {
|
||||
void register_plugins(euf::theory_checker& pc) override {
|
||||
pc.register_plugin(symbol("tseitin"), this);
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue