mirror of
https://github.com/Z3Prover/z3
synced 2025-04-24 09:35:32 +00:00
na (#4254)
* remove level of indirection for context and ast_manager in smt_theory Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com> * add request by #4252 Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com> * move to def Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com> * int Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com> * fix #4251 Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com> * fix #4255 * fix #4257 * add code to debug #4246 * restore new solver as default * na Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com> * fix #4246 Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
parent
becf423c77
commit
fdc87f286f
18 changed files with 269 additions and 231 deletions
|
@ -44,10 +44,7 @@ void extract_clauses_and_dependencies(goal_ref const& g, expr_ref_vector& clause
|
|||
deps.reset();
|
||||
m.linearize(d, deps);
|
||||
SASSERT(!deps.empty()); // d != 0, then deps must not be empty
|
||||
ptr_vector<expr>::iterator it = deps.begin();
|
||||
ptr_vector<expr>::iterator end = deps.end();
|
||||
for (; it != end; ++it) {
|
||||
expr * d = *it;
|
||||
for (expr* d : deps) {
|
||||
if (is_uninterp_const(d) && m.is_bool(d)) {
|
||||
// no need to create a fresh boolean variable for d
|
||||
if (!bool2dep.contains(d)) {
|
||||
|
@ -156,14 +153,16 @@ public:
|
|||
if (!m.inc()) {
|
||||
throw tactic_exception(Z3_CANCELED_MSG);
|
||||
}
|
||||
model_converter_ref mc;
|
||||
mc = local_solver->get_model_converter();
|
||||
mc = concat(fmc.get(), mc.get());
|
||||
in->reset();
|
||||
in->add(mc.get());
|
||||
unsigned sz = local_solver->get_num_assertions();
|
||||
for (unsigned i = 0; i < sz; ++i) {
|
||||
in->assert_expr(local_solver->get_assertion(i));
|
||||
if (!in->unsat_core_enabled()) {
|
||||
model_converter_ref mc;
|
||||
mc = local_solver->get_model_converter();
|
||||
mc = concat(fmc.get(), mc.get());
|
||||
in->reset();
|
||||
in->add(mc.get());
|
||||
unsigned sz = local_solver->get_num_assertions();
|
||||
for (unsigned i = 0; i < sz; ++i) {
|
||||
in->assert_expr(local_solver->get_assertion(i));
|
||||
}
|
||||
}
|
||||
result.push_back(in.get());
|
||||
break;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue