3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-09-04 00:58:07 +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

@ -266,11 +266,13 @@ namespace datalog {
}
else {
m_rewriter(e, tmp);
change = change || (tmp != e);
new_conjs.push_back(tmp);
}
}
if (!inserted) {
rules.add_rule(&r);
return false;
}
expr_ref fml1(m), fml2(m), body(m), head(m);
body = m.mk_and(new_conjs.size(), new_conjs.c_ptr());
head = r.get_head();
@ -278,8 +280,8 @@ namespace datalog {
m_rewriter(body);
sub(head);
m_rewriter(head);
change = ackermanize(r, body, head) || change;
if (!inserted && !change) {
change = ackermanize(r, body, head);
if (!change) {
rules.add_rule(&r);
return false;
}
@ -287,6 +289,7 @@ namespace datalog {
fml2 = m.mk_implies(body, head);
proof_ref p(m);
rule_set new_rules(m_ctx);
TRACE("dl", tout << fml2 << "\n";);
rm.mk_rule(fml2, p, new_rules, r.name());

View file

@ -38,6 +38,8 @@ Revision History:
namespace datalog {
void apply_default_transformation(context& ctx) {
flet<bool> _enable_bv(ctx.bind_vars_enabled(), false);
rule_transformer transf(ctx);
ctx.ensure_closed();
transf.reset();