3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-04-29 20:05:51 +00:00

enable canceling simplex on interrupt, investigating PDR inconsistency

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
Nikolaj Bjorner 2015-03-25 12:13:57 -07:00
parent 4145b92136
commit 10cdbb881f
6 changed files with 27 additions and 13 deletions

View file

@ -226,6 +226,7 @@ namespace datalog {
m_engine(0),
m_closed(false),
m_saturation_was_run(false),
m_enable_bind_variables(true),
m_last_status(OK),
m_last_answer(m),
m_engine_type(LAST_ENGINE),
@ -328,7 +329,12 @@ namespace datalog {
}
expr_ref context::bind_vars(expr* fml, bool is_forall) {
return m_bind_variables(fml, is_forall);
if (m_enable_bind_variables) {
return m_bind_variables(fml, is_forall);
}
else {
return expr_ref(fml, m);
}
}
void context::register_predicate(func_decl * decl, bool named) {
@ -680,6 +686,7 @@ namespace datalog {
}
void context::transform_rules(rule_transformer::plugin* plugin) {
flet<bool> _enable_bv(m_enable_bind_variables, false);
rule_transformer transformer(*this);
transformer.register_plugin(plugin);
transform_rules(transformer);
@ -841,13 +848,6 @@ namespace datalog {
}
lbool context::query(expr* query) {
#if 0
// TODO: what?
if(get_engine() != DUALITY_ENGINE) {
new_query();
check_rules(m_rule_set);
}
#endif
m_mc = mk_skip_model_converter();
m_last_status = OK;
m_last_answer = 0;
@ -990,7 +990,6 @@ namespace datalog {
for (unsigned i = 0; i < m_rule_fmls.size(); ++i) {
expr_ref r = bind_vars(m_rule_fmls[i].get(), true);
rules.push_back(r.get());
// rules.push_back(m_rule_fmls[i].get());
names.push_back(m_rule_names[i]);
bounds.push_back(m_rule_bounds[i]);
}

View file

@ -205,6 +205,7 @@ namespace datalog {
bool m_closed;
bool m_saturation_was_run;
bool m_enable_bind_variables;
execution_result m_last_status;
expr_ref m_last_answer;
DL_ENGINE m_engine_type;
@ -294,6 +295,8 @@ namespace datalog {
*/
expr_ref bind_vars(expr* fml, bool is_forall);
bool& bind_vars_enabled() { return m_enable_bind_variables; }
/**
Register datalog relation.