mirror of
https://github.com/Z3Prover/z3
synced 2025-04-12 20:18:18 +00:00
na
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
parent
c21a2fcf9f
commit
1a36d44450
|
@ -186,6 +186,8 @@ struct goal2sat::imp : public sat::sat_internalizer {
|
||||||
l = sat::literal(v, sign);
|
l = sat::literal(v, sign);
|
||||||
m_solver.set_eliminated(v, false);
|
m_solver.set_eliminated(v, false);
|
||||||
}
|
}
|
||||||
|
if (root)
|
||||||
|
m_result_stack.reset();
|
||||||
SASSERT(l != sat::null_literal);
|
SASSERT(l != sat::null_literal);
|
||||||
if (root)
|
if (root)
|
||||||
mk_clause(l);
|
mk_clause(l);
|
||||||
|
@ -331,7 +333,6 @@ struct goal2sat::imp : public sat::sat_internalizer {
|
||||||
m_cache.insert(t, l);
|
m_cache.insert(t, l);
|
||||||
sat::literal * lits = m_result_stack.end() - num;
|
sat::literal * lits = m_result_stack.end() - num;
|
||||||
|
|
||||||
|
|
||||||
// l => /\ lits
|
// l => /\ lits
|
||||||
for (unsigned i = 0; i < num; i++) {
|
for (unsigned i = 0; i < num; i++) {
|
||||||
mk_clause(~l, lits[i]);
|
mk_clause(~l, lits[i]);
|
||||||
|
@ -481,6 +482,8 @@ struct goal2sat::imp : public sat::sat_internalizer {
|
||||||
sat::literal lit = internalize.internalize(*this, t, sign, root);
|
sat::literal lit = internalize.internalize(*this, t, sign, root);
|
||||||
if (root)
|
if (root)
|
||||||
m_result_stack.reset();
|
m_result_stack.reset();
|
||||||
|
else
|
||||||
|
m_result_stack.shrink(m_result_stack.size() - t->get_num_args());
|
||||||
if (lit == sat::null_literal)
|
if (lit == sat::null_literal)
|
||||||
return;
|
return;
|
||||||
if (root)
|
if (root)
|
||||||
|
@ -507,6 +510,7 @@ struct goal2sat::imp : public sat::sat_internalizer {
|
||||||
default:
|
default:
|
||||||
UNREACHABLE();
|
UNREACHABLE();
|
||||||
}
|
}
|
||||||
|
SASSERT(!root || m_result_stack.empty());
|
||||||
}
|
}
|
||||||
else if (pb.is_pb(t)) {
|
else if (pb.is_pb(t)) {
|
||||||
convert_ba(t, root, sign);
|
convert_ba(t, root, sign);
|
||||||
|
@ -781,7 +785,6 @@ void sat2goal::mc::flush_smc(sat::solver_core& s, atom2bool_var const& map) {
|
||||||
flush_gmc();
|
flush_gmc();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void sat2goal::mc::flush_gmc() {
|
void sat2goal::mc::flush_gmc() {
|
||||||
sat::literal_vector updates;
|
sat::literal_vector updates;
|
||||||
m_smc.expand(updates);
|
m_smc.expand(updates);
|
||||||
|
|
Loading…
Reference in a new issue