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
|
@ -4612,9 +4612,15 @@ namespace smt {
|
|||
}
|
||||
}
|
||||
|
||||
expr_ref_vector context::get_trail() {
|
||||
expr_ref_vector context::get_trail(unsigned max_level) {
|
||||
expr_ref_vector result(get_manager());
|
||||
get_assignments(result);
|
||||
for (literal lit : m_assigned_literals) {
|
||||
if (get_assign_level(lit) > max_level + m_base_lvl)
|
||||
continue;
|
||||
expr_ref e(m);
|
||||
literal2expr(lit, e);
|
||||
result.push_back(std::move(e));
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
|
@ -4622,15 +4628,10 @@ namespace smt {
|
|||
expr_mark visited;
|
||||
for (expr* fml : result)
|
||||
visited.mark(fml);
|
||||
for (literal lit : m_assigned_literals) {
|
||||
if (get_assign_level(lit) > m_base_lvl)
|
||||
break;
|
||||
expr_ref e(m);
|
||||
literal2expr(lit, e);
|
||||
if (visited.is_marked(e))
|
||||
continue;
|
||||
result.push_back(std::move(e));
|
||||
}
|
||||
expr_ref_vector trail = get_trail(0);
|
||||
for (expr* t : trail)
|
||||
if (!visited.is_marked(t))
|
||||
result.push_back(t);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -1667,7 +1667,7 @@ namespace smt {
|
|||
|
||||
void get_levels(ptr_vector<expr> const& vars, unsigned_vector& depth);
|
||||
|
||||
expr_ref_vector get_trail();
|
||||
expr_ref_vector get_trail(unsigned max_level);
|
||||
|
||||
void get_model(model_ref & m);
|
||||
|
||||
|
|
|
@ -248,8 +248,8 @@ namespace smt {
|
|||
m_imp->m_kernel.get_levels(vars, depth);
|
||||
}
|
||||
|
||||
expr_ref_vector kernel::get_trail() {
|
||||
return m_imp->m_kernel.get_trail();
|
||||
expr_ref_vector kernel::get_trail(unsigned max_level) {
|
||||
return m_imp->m_kernel.get_trail(max_level);
|
||||
}
|
||||
|
||||
void kernel::user_propagate_init(
|
||||
|
|
|
@ -248,7 +248,7 @@ namespace smt {
|
|||
/**
|
||||
\brief retrieve trail of assignment stack.
|
||||
*/
|
||||
expr_ref_vector get_trail();
|
||||
expr_ref_vector get_trail(unsigned max_level);
|
||||
|
||||
/**
|
||||
\brief (For debubbing purposes) Prints the state of the kernel
|
||||
|
|
|
@ -208,8 +208,8 @@ namespace {
|
|||
m_context.get_levels(vars, depth);
|
||||
}
|
||||
|
||||
expr_ref_vector get_trail() override {
|
||||
return m_context.get_trail();
|
||||
expr_ref_vector get_trail(unsigned max_level) override {
|
||||
return m_context.get_trail(max_level);
|
||||
}
|
||||
|
||||
void user_propagate_init(
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue