3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-08-03 01:40:22 +00:00

check with cube and clause

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
Nikolaj Bjorner 2018-05-27 16:54:15 -07:00 committed by Arie Gurfinkel
parent af57db0413
commit b73aa3642a
10 changed files with 202 additions and 108 deletions

View file

@ -190,6 +190,26 @@ namespace smt {
return m_context.check(num_assumptions, assumptions);
}
lbool check_sat(expr_ref_vector const& cube, expr_ref_vector const& clause, model_ref* mdl, expr_ref_vector* core, proof_ref* pr) override {
lbool r = m_context.check(cube, clause);
switch (r) {
case l_false:
if (pr) *pr = get_proof();
if (core) {
ptr_vector<expr> _core;
get_unsat_core(_core);
core->append(_core.size(), _core.c_ptr());
}
break;
case l_true:
if (mdl) get_model(*mdl);
break;
default:
break;
}
return r;
}
struct scoped_minimize_core {
smt_solver& s;
expr_ref_vector m_assumptions;