mirror of
https://github.com/Z3Prover/z3
synced 2025-04-11 03:33:35 +00:00
parent
2673807a7f
commit
8cf5a7525b
|
@ -98,17 +98,15 @@ namespace datalog {
|
|||
expr_ref_vector new_conjs(m);
|
||||
expr_ref tmp(m);
|
||||
|
||||
|
||||
for (unsigned i = utsz; i < tsz; ++i)
|
||||
for (unsigned i = 0; i < tsz; ++i)
|
||||
new_conjs.push_back(r.get_tail(i));
|
||||
flatten_and(new_conjs);
|
||||
|
||||
expr_ref fml1(m), fml2(m), body(m), head(m);
|
||||
|
||||
// blast ite
|
||||
body = m.mk_and(new_conjs.size(), new_conjs.c_ptr());
|
||||
body = mk_and(new_conjs);
|
||||
if (!has_term_ite(body)) {
|
||||
TRACE("dl_term_ite", tout << "No term-ite, skipping a rule\n";);
|
||||
new_rules.add_rule(&r);
|
||||
return false;
|
||||
}
|
||||
|
|
|
@ -582,13 +582,11 @@ namespace datalog {
|
|||
bool mk_interp_tail_simplifier::transform_rules(const rule_set & orig, rule_set & tgt) {
|
||||
bool modified = false;
|
||||
rule_manager& rm = m_context.get_rule_manager();
|
||||
rule_set::iterator rit = orig.begin();
|
||||
rule_set::iterator rend = orig.end();
|
||||
for (; rit!=rend; ++rit) {
|
||||
for (rule * r : orig) {
|
||||
rule_ref new_rule(rm);
|
||||
if (transform_rule(*rit, new_rule)) {
|
||||
rm.mk_rule_rewrite_proof(**rit, *new_rule.get());
|
||||
bool is_modified = *rit != new_rule;
|
||||
if (transform_rule(r, new_rule)) {
|
||||
rm.mk_rule_rewrite_proof(*r, *new_rule.get());
|
||||
bool is_modified = r != new_rule;
|
||||
modified |= is_modified;
|
||||
tgt.add_rule(new_rule);
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue