3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-04-24 01:25:31 +00:00

fixup std-order / inv-order

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
Nikolaj Bjorner 2024-10-03 19:35:16 -07:00
parent 66bb310966
commit 969511ac00
3 changed files with 5 additions and 3 deletions

View file

@ -30,7 +30,7 @@ class contains_vars::imp {
void visit(expr * n, unsigned delta, bool & visited) {
expr_delta_pair e(n, delta);
if (!m_cache.contains(e)) {
if (!is_ground(n) && !m_cache.contains(e)) {
m_todo.push_back(e);
visited = false;
}
@ -74,6 +74,7 @@ public:
m_todo.push_back(expr_delta_pair(n, begin));
while (!m_todo.empty()) {
expr_delta_pair e = m_todo.back();
if (visit_children(e.m_node, e.m_delta)) {
m_cache.insert(e);
m_todo.pop_back();

View file

@ -59,7 +59,7 @@ expr_ref var_subst::operator()(expr * n, unsigned num_args, expr * const * args)
new_args.push_back(arg);
else {
unsigned idx = to_var(arg)->get_idx();
new_args.push_back(m_std_order ? args[idx] : args[num_args - idx - 1]);
new_args.push_back(m_std_order ? args[num_args - idx - 1] : args[idx]);
}
}
result = m.mk_app(to_app(n)->get_decl(), new_args.size(), new_args.data());