mirror of
https://github.com/Z3Prover/z3
synced 2025-04-24 01:25:31 +00:00
improve pre-processing
This commit is contained in:
parent
a634876180
commit
3cc9d7f443
22 changed files with 147 additions and 80 deletions
|
@ -4194,7 +4194,7 @@ namespace sat {
|
|||
unsigned_vector ps;
|
||||
for (literal lit : _lits)
|
||||
ps.push_back(lit.index());
|
||||
mc.cliques(ps, _mutexes);
|
||||
mc.cliques2(ps, _mutexes);
|
||||
vector<vector<literal_vector>> sorted;
|
||||
for (auto const& mux : _mutexes) {
|
||||
literal_vector clique;
|
||||
|
|
|
@ -390,7 +390,7 @@ public:
|
|||
}
|
||||
}
|
||||
|
||||
expr_ref_vector get_trail() override {
|
||||
expr_ref_vector get_trail(unsigned max_level) override {
|
||||
expr_ref_vector result(m);
|
||||
unsigned sz = m_solver.trail_size();
|
||||
expr_ref_vector lit2expr(m);
|
||||
|
@ -398,7 +398,11 @@ public:
|
|||
m_map.mk_inv(lit2expr);
|
||||
for (unsigned i = 0; i < sz; ++i) {
|
||||
sat::literal lit = m_solver.trail_literal(i);
|
||||
result.push_back(lit2expr[lit.index()].get());
|
||||
if (m_solver.lvl(lit) > max_level)
|
||||
continue;
|
||||
expr_ref e(lit2expr.get(lit.index()), m);
|
||||
if (e)
|
||||
result.push_back(e);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
|
|
@ -41,12 +41,12 @@ void atom2bool_var::mk_var_inv(expr_ref_vector & var2expr) const {
|
|||
|
||||
sat::bool_var atom2bool_var::to_bool_var(expr * n) const {
|
||||
unsigned idx = m_id2map.get(n->get_id(), UINT_MAX);
|
||||
if (idx == UINT_MAX) {
|
||||
if (idx == UINT_MAX)
|
||||
return sat::null_bool_var;
|
||||
}
|
||||
else {
|
||||
else if (idx >= m_mapping.size())
|
||||
return sat::null_bool_var;
|
||||
else
|
||||
return m_mapping[idx].m_value;
|
||||
}
|
||||
}
|
||||
|
||||
struct collect_boolean_interface_proc {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue