Skip to content

Commit 969511a

Browse files
fixup std-order / inv-order
Signed-off-by: Nikolaj Bjorner <[email protected]>
1 parent 66bb310 commit 969511a

File tree

3 files changed

+5
-3
lines changed

3 files changed

+5
-3
lines changed

src/ast/has_free_vars.cpp

+2-1
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ class contains_vars::imp {
3030

3131
void visit(expr * n, unsigned delta, bool & visited) {
3232
expr_delta_pair e(n, delta);
33-
if (!m_cache.contains(e)) {
33+
if (!is_ground(n) && !m_cache.contains(e)) {
3434
m_todo.push_back(e);
3535
visited = false;
3636
}
@@ -74,6 +74,7 @@ class contains_vars::imp {
7474
m_todo.push_back(expr_delta_pair(n, begin));
7575
while (!m_todo.empty()) {
7676
expr_delta_pair e = m_todo.back();
77+
7778
if (visit_children(e.m_node, e.m_delta)) {
7879
m_cache.insert(e);
7980
m_todo.pop_back();

src/ast/rewriter/var_subst.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ expr_ref var_subst::operator()(expr * n, unsigned num_args, expr * const * args)
5959
new_args.push_back(arg);
6060
else {
6161
unsigned idx = to_var(arg)->get_idx();
62-
new_args.push_back(m_std_order ? args[idx] : args[num_args - idx - 1]);
62+
new_args.push_back(m_std_order ? args[num_args - idx - 1] : args[idx]);
6363
}
6464
}
6565
result = m.mk_app(to_app(n)->get_decl(), new_args.size(), new_args.data());

src/parsers/smt2/smt2parser.cpp

+2-1
Original file line numberDiff line numberDiff line change
@@ -116,6 +116,7 @@ namespace smt2 {
116116
symbol m_match;
117117
symbol m_case;
118118
symbol m_underscore;
119+
contains_vars m_has_free_vars;
119120

120121
typedef std::pair<symbol, expr*> named_expr;
121122
named_expr m_last_named_expr;
@@ -1031,7 +1032,7 @@ namespace smt2 {
10311032

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

0 commit comments

Comments
 (0)