3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-04-12 12:08:18 +00:00
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
Nikolaj Bjorner 2020-02-14 17:44:36 -10:00
parent b5276e93bb
commit b71595f5b1
3 changed files with 7 additions and 3 deletions

View file

@ -763,7 +763,7 @@ namespace datalog {
class context::engine_type_proc { class context::engine_type_proc {
ast_manager& m; ast_manager& m;
arith_util a; arith_util a;
datatype_util dt; datatype_util dt;
bv_util bv; bv_util bv;
DL_ENGINE m_engine_type; DL_ENGINE m_engine_type;
@ -790,10 +790,14 @@ namespace datalog {
else if (is_large_bv(m.get_sort(e))) { else if (is_large_bv(m.get_sort(e))) {
m_engine_type = SPACER_ENGINE; m_engine_type = SPACER_ENGINE;
} }
else if (!m.get_sort(e)->get_num_elements().is_finite()) {
m_engine_type = SPACER_ENGINE;
}
} }
}; };
void context::configure_engine(expr* q) { void context::configure_engine(expr* q) {
TRACE("dl", tout << mk_pp(q, m) << " " << m_engine_type << "\n";);
if (m_engine_type != LAST_ENGINE) { if (m_engine_type != LAST_ENGINE) {
return; return;
} }

View file

@ -728,7 +728,7 @@ namespace datalog {
expr_ref renamed = m_context.get_var_subst()(filter_cond, binding.size(), binding.c_ptr()); expr_ref renamed = m_context.get_var_subst()(filter_cond, binding.size(), binding.c_ptr());
app_ref app_renamed(to_app(renamed), m); app_ref app_renamed(to_app(renamed), m);
if (remove_columns.empty()) { if (remove_columns.empty()) {
if (!dealloc) if (!dealloc && filtered_res != UINT_MAX)
make_clone(filtered_res, filtered_res, acc); make_clone(filtered_res, filtered_res, acc);
acc.push_back(instruction::mk_filter_interpreted(filtered_res, app_renamed)); acc.push_back(instruction::mk_filter_interpreted(filtered_res, app_renamed));
} else { } else {

View file

@ -156,7 +156,7 @@ namespace datalog {
TRACE("dl", m_context.display(tout);); TRACE("dl", m_context.display(tout););
//IF_VERBOSE(3, m_context.display_smt2(0,0,verbose_stream());); //IF_VERBOSE(3, m_context.display_smt2(0,0,verbose_stream()););
if (!m_context.print_aig().is_null()) { if (m_context.print_aig().is_non_empty_string()) {
const char *filename = m_context.print_aig().bare_str(); const char *filename = m_context.print_aig().bare_str();
aig_exporter aig(m_context.get_rules(), get_context(), &m_table_facts); aig_exporter aig(m_context.get_rules(), get_context(), &m_table_facts);
std::ofstream strm(filename, std::ios_base::binary); std::ofstream strm(filename, std::ios_base::binary);