File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff 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
You can’t perform that action at this time.
0 commit comments