mirror of
https://github.com/Z3Prover/z3
synced 2025-04-12 12:08:18 +00:00
parent
b5276e93bb
commit
b71595f5b1
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
|
@ -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 {
|
||||||
|
|
|
@ -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);
|
||||||
|
|
Loading…
Reference in a new issue