mirror of
https://github.com/Z3Prover/z3
synced 2025-09-04 00:58:07 +00:00
disable bottom-up COI on rules with negated predicates. Fixes issue #140
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
parent
77c8e5b0a0
commit
46ca7e17e0
4 changed files with 10 additions and 0 deletions
|
@ -36,6 +36,9 @@ namespace datalog {
|
|||
// -----------------------------------
|
||||
|
||||
rule_set * mk_coi_filter::operator()(rule_set const & source) {
|
||||
if (!m_context.xform_coi()) {
|
||||
return 0;
|
||||
}
|
||||
if (source.empty()) {
|
||||
return 0;
|
||||
}
|
||||
|
@ -70,6 +73,10 @@ namespace datalog {
|
|||
e->get_data().m_value = alloc(ptr_vector<rule>);
|
||||
}
|
||||
e->get_data().m_value->push_back(r);
|
||||
if (r->is_neg_tail(i)) {
|
||||
// don't try COI on rule with negation.
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue