3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-08-05 10:50:24 +00:00

fixes to mostly solver arith/euf and backtracking scopes

This commit is contained in:
Nikolaj Bjorner 2020-10-26 11:06:34 -07:00
parent 1ee2ba2a9b
commit 8d76470a8a
25 changed files with 189 additions and 93 deletions

View file

@ -606,8 +606,6 @@ struct goal2sat::imp : public sat::sat_internalizer {
if (!ext) {
euf = alloc(euf::solver, m, *this);
m_solver.set_extension(euf);
for (unsigned i = m_solver.num_scopes(); i-- > 0; )
euf->push();
#if 0
std::function<solver*(void)> mk_solver = [&]() {
return mk_inc_sat_solver(m, m_params, true);
@ -911,6 +909,14 @@ struct goal2sat::imp : public sat::sat_internalizer {
ext->update_model(mdl);
}
void user_push() {
}
void user_pop(unsigned n) {
m_true = sat::null_literal;
}
};
struct unsupported_bool_proc {
@ -984,6 +990,16 @@ void goal2sat::update_model(model_ref& mdl) {
m_imp->update_model(mdl);
}
void goal2sat::user_push() {
if (m_imp)
m_imp->user_push();
}
void goal2sat::user_pop(unsigned n) {
if (m_imp)
m_imp->user_pop(n);
}
sat::sat_internalizer& goal2sat::si(ast_manager& m, params_ref const& p, sat::solver_core& t, atom2bool_var& a2b, dep2asm_map& dep2asm, bool default_external) {
if (!m_imp)