mirror of
https://github.com/Z3Prover/z3
synced 2025-04-23 17:15:31 +00:00
solver::check_sat_cc : check_sat assuming cube and clause
Extends check_sat with an ability to assume a single clause in addition to assuming a cube of assumptions
This commit is contained in:
parent
4477f7d326
commit
26339119e4
6 changed files with 50 additions and 70 deletions
|
@ -190,26 +190,9 @@ namespace smt {
|
|||
return m_context.check(num_assumptions, assumptions);
|
||||
}
|
||||
|
||||
using solver_na2as::check_sat;
|
||||
|
||||
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;
|
||||
lbool check_sat_cc_core(expr_ref_vector const& cube, expr_ref_vector const& clause) override {
|
||||
return m_context.check(cube, clause);
|
||||
}
|
||||
|
||||
struct scoped_minimize_core {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue