mirror of
https://github.com/Z3Prover/z3
synced 2025-08-16 07:45:27 +00:00
enable concurrent sls with new solver core
allow using sls engine (for bit-vectors) with the new core. Examples z3 sat.smt=true tactic.default_tactic=smt /v:1 smt.sls.enable=true smt.bv.solver=0 /st C:\QF_BV_SAT\bench_10.smt2 z3 sat.smt=true tactic.default_tactic=smt /v:1 smt.sls.enable=true smt.bv.solver=2 /st C:\QF_BV_SAT\bench_10.smt2 z3 C:\QF_BV_SAT\bench_11100.smt2 sat.smt=true tactic.default_tactic=smt /v:1 smt.sls.enable=true smt.bv.solver=2 /st
This commit is contained in:
parent
510534dbd4
commit
c0bdc7cdd6
19 changed files with 206 additions and 83 deletions
|
@ -197,10 +197,16 @@ public:
|
|||
case l_false:
|
||||
extract_core();
|
||||
break;
|
||||
default:
|
||||
default: {
|
||||
auto* ext = get_euf();
|
||||
if (ext && ext->get_sls_model()) {
|
||||
r = l_true;
|
||||
break;
|
||||
}
|
||||
set_reason_unknown(m_solver.get_reason_unknown());
|
||||
break;
|
||||
}
|
||||
}
|
||||
return r;
|
||||
}
|
||||
|
||||
|
@ -576,6 +582,7 @@ private:
|
|||
void add_assumption(expr* a) {
|
||||
init_goal2sat();
|
||||
m_dep.insert(a, m_goal2sat.internalize(a));
|
||||
get_euf()->add_assertion(a);
|
||||
}
|
||||
|
||||
void internalize_assumptions(expr_ref_vector const& asms) {
|
||||
|
@ -632,6 +639,11 @@ private:
|
|||
void get_model_core(model_ref & mdl) override {
|
||||
TRACE("sat", tout << "retrieve model " << (m_solver.model_is_current()?"present":"absent") << "\n";);
|
||||
mdl = nullptr;
|
||||
auto ext = get_euf();
|
||||
if (ext)
|
||||
mdl = ext->get_sls_model();
|
||||
if (mdl)
|
||||
return;
|
||||
if (!m_solver.model_is_current())
|
||||
return;
|
||||
if (m_fmls.size() > m_qhead)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue