mirror of
https://github.com/Z3Prover/z3
synced 2025-06-19 12:23:38 +00:00
Implement get_proof() in bmc and spacer engines
This commit is contained in:
parent
876cfb4dc9
commit
375c0ff9a9
4 changed files with 8 additions and 8 deletions
|
@ -1537,10 +1537,14 @@ namespace datalog {
|
||||||
// m_solver->reset_statistics();
|
// m_solver->reset_statistics();
|
||||||
}
|
}
|
||||||
|
|
||||||
expr_ref bmc::get_answer() {
|
expr_ref bmc::get_answer() {
|
||||||
return m_answer;
|
return m_answer;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
proof_ref bmc::get_proof() {
|
||||||
|
return proof_ref(to_app(m_answer), m);
|
||||||
|
}
|
||||||
|
|
||||||
void bmc::get_rules_along_trace(datalog::rule_ref_vector& rules) {
|
void bmc::get_rules_along_trace(datalog::rule_ref_vector& rules) {
|
||||||
rules.append(m_rule_trace);
|
rules.append(m_rule_trace);
|
||||||
}
|
}
|
||||||
|
|
|
@ -63,7 +63,8 @@ namespace datalog {
|
||||||
void reset_statistics() override;
|
void reset_statistics() override;
|
||||||
void get_rules_along_trace(datalog::rule_ref_vector& rules) override;
|
void get_rules_along_trace(datalog::rule_ref_vector& rules) override;
|
||||||
|
|
||||||
expr_ref get_answer() override;
|
expr_ref get_answer() override;
|
||||||
|
proof_ref get_proof() override;
|
||||||
|
|
||||||
// direct access to (new) non-linear compiler.
|
// direct access to (new) non-linear compiler.
|
||||||
void compile(rule_set const& rules, expr_ref_vector& fmls, unsigned level);
|
void compile(rule_set const& rules, expr_ref_vector& fmls, unsigned level);
|
||||||
|
|
|
@ -2909,11 +2909,6 @@ model_ref context::get_model()
|
||||||
return model;
|
return model;
|
||||||
}
|
}
|
||||||
|
|
||||||
proof_ref context::get_proof() const
|
|
||||||
{
|
|
||||||
return proof_ref (m);
|
|
||||||
}
|
|
||||||
|
|
||||||
expr_ref context::get_answer()
|
expr_ref context::get_answer()
|
||||||
{
|
{
|
||||||
switch(m_last_result) {
|
switch(m_last_result) {
|
||||||
|
|
|
@ -1109,7 +1109,7 @@ public:
|
||||||
expr_ref get_reachable (func_decl* p);
|
expr_ref get_reachable (func_decl* p);
|
||||||
void add_invariant (func_decl *pred, expr* property);
|
void add_invariant (func_decl *pred, expr* property);
|
||||||
model_ref get_model();
|
model_ref get_model();
|
||||||
proof_ref get_proof() const;
|
proof_ref get_proof() const {return get_ground_refutation();}
|
||||||
|
|
||||||
expr_ref get_constraints (unsigned lvl);
|
expr_ref get_constraints (unsigned lvl);
|
||||||
void add_constraint (expr *c, unsigned lvl);
|
void add_constraint (expr *c, unsigned lvl);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue