3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-11-28 00:09:49 +00:00

Use refutation to compute ground sat answer

This commit is contained in:
Arie Gurfinkel 2019-07-25 15:16:19 -04:00
parent 8a0d79251e
commit 92db639caf
4 changed files with 44 additions and 139 deletions

View file

@ -1006,7 +1006,7 @@ class context {
/**
\brief Retrieve satisfying assignment with explanation.
*/
expr_ref mk_sat_answer() {return get_ground_sat_answer();}
expr_ref mk_sat_answer() const {return get_ground_sat_answer();}
expr_ref mk_unsat_answer() const;
unsigned get_cex_depth ();
@ -1065,6 +1065,7 @@ public:
ast_manager& get_ast_manager() const {return m;}
manager& get_manager() {return m_pm;}
const manager & get_manager() const {return m_pm;}
decl2rel const& get_pred_transformers() const {return m_rels;}
pred_transformer& get_pred_transformer(func_decl* p) const {return *m_rels.find(p);}
@ -1082,8 +1083,8 @@ public:
* get bottom-up (from query) sequence of ground predicate instances
* (for e.g. P(0,1,0,0,3)) that together form a ground derivation to query
*/
expr_ref get_ground_sat_answer ();
proof_ref get_ground_refutation();
expr_ref get_ground_sat_answer () const;
proof_ref get_ground_refutation() const;
void get_rules_along_trace (datalog::rule_ref_vector& rules);
void collect_statistics(statistics& st) const;
@ -1091,7 +1092,7 @@ public:
void reset();
std::ostream& display(std::ostream& out) const;
void display_certificate(std::ostream& out);
void display_certificate(std::ostream& out) const;
pob& get_root() const {return m_pob_queue.get_root();}
void set_query(func_decl* q) {m_query_pred = q;}