Skip to content

Commit

Permalink
fixup std-order / inv-order
Browse files Browse the repository at this point in the history
Signed-off-by: Nikolaj Bjorner <[email protected]>
  • Loading branch information
NikolajBjorner committed Oct 4, 2024
1 parent 66bb310 commit 969511a
Show file tree
Hide file tree
Showing 3 changed files with 5 additions and 3 deletions.
3 changes: 2 additions & 1 deletion src/ast/has_free_vars.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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;
}
Expand Down Expand Up @@ -74,6 +74,7 @@ class contains_vars::imp {
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();
Expand Down
2 changes: 1 addition & 1 deletion src/ast/rewriter/var_subst.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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());
Expand Down
3 changes: 2 additions & 1 deletion src/parsers/smt2/smt2parser.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -116,6 +116,7 @@ namespace smt2 {
symbol m_match;
symbol m_case;
symbol m_underscore;
contains_vars m_has_free_vars;

typedef std::pair<symbol, expr*> named_expr;
named_expr m_last_named_expr;
Expand Down Expand Up @@ -1031,7 +1032,7 @@ namespace smt2 {

void name_expr(expr * n, symbol const & s) {
TRACE("name_expr", tout << "naming: " << s << " ->\n" << mk_pp(n, m()) << "\n";);
if (!is_ground(n) && has_free_vars(n))
if (!is_ground(n) && m_has_free_vars(n))
throw parser_exception("invalid named expression, expression contains free variables");
m_ctx.insert(s, 0, nullptr, n);
m_last_named_expr.first = s;
Expand Down

0 comments on commit 969511a

Please sign in to comment.