Skip to content

Commit 5a850c6

Browse files
committed
Fixing issue with multi-root btor files
1 parent e35f8d6 commit 5a850c6

File tree

1 file changed

+3
-4
lines changed

1 file changed

+3
-4
lines changed

src/parser/btor/btor_state.cpp

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -261,15 +261,14 @@ cmd::command* btor_state::finalize() const {
261261
cmd::command* transition_system_define = new cmd::define_transition_system("T", transition_system);
262262

263263
// Query
264+
// We cast the roots to booleans then conjunct them
264265
std::vector<term_ref> bad_children;
265266
for (size_t i = 0; i < d_roots.size(); ++ i) {
266267
term_ref bad = tm().substitute_and_cache(d_roots[i], btor_to_state_var);
268+
bad = tm().mk_term(TERM_EQ, bad, d_zero);
267269
bad_children.push_back(bad);
268270
}
269-
// FIXME: Don't think this works for more than one child --
270-
// 'property' is a bool, but then the next line compares it to bv 0
271-
term_ref property = tm().mk_or(bad_children);
272-
property = tm().mk_term(TERM_EQ, property, d_zero);
271+
term_ref property = tm().mk_and(bad_children);
273272
system::state_formula* property_formula = new system::state_formula(tm(), state_type, property);
274273
cmd::command* query = new cmd::query(ctx(), "T", property_formula);
275274

0 commit comments

Comments
 (0)