mirror of
https://github.com/Z3Prover/z3
synced 2025-08-04 10:20:23 +00:00
parent
019acdb1ef
commit
d002423133
1 changed files with 7 additions and 4 deletions
|
@ -89,6 +89,7 @@ br_status bool_rewriter::mk_nflat_and_core(unsigned num_args, expr * const * arg
|
||||||
ptr_buffer<expr> buffer;
|
ptr_buffer<expr> buffer;
|
||||||
expr_fast_mark1 neg_lits;
|
expr_fast_mark1 neg_lits;
|
||||||
expr_fast_mark2 pos_lits;
|
expr_fast_mark2 pos_lits;
|
||||||
|
expr* atom = nullptr;
|
||||||
|
|
||||||
for (unsigned i = 0; i < num_args; i++) {
|
for (unsigned i = 0; i < num_args; i++) {
|
||||||
expr * arg = args[i];
|
expr * arg = args[i];
|
||||||
|
@ -100,8 +101,7 @@ br_status bool_rewriter::mk_nflat_and_core(unsigned num_args, expr * const * arg
|
||||||
result = m().mk_false();
|
result = m().mk_false();
|
||||||
return BR_DONE;
|
return BR_DONE;
|
||||||
}
|
}
|
||||||
if (m().is_not(arg)) {
|
if (m().is_not(arg, atom)) {
|
||||||
expr * atom = to_app(arg)->get_arg(0);
|
|
||||||
if (neg_lits.is_marked(atom)) {
|
if (neg_lits.is_marked(atom)) {
|
||||||
s = true;
|
s = true;
|
||||||
continue;
|
continue;
|
||||||
|
@ -125,6 +125,8 @@ br_status bool_rewriter::mk_nflat_and_core(unsigned num_args, expr * const * arg
|
||||||
}
|
}
|
||||||
buffer.push_back(arg);
|
buffer.push_back(arg);
|
||||||
}
|
}
|
||||||
|
neg_lits.reset();
|
||||||
|
pos_lits.reset();
|
||||||
|
|
||||||
unsigned sz = buffer.size();
|
unsigned sz = buffer.size();
|
||||||
|
|
||||||
|
@ -217,6 +219,9 @@ br_status bool_rewriter::mk_nflat_or_core(unsigned num_args, expr * const * args
|
||||||
prev = arg;
|
prev = arg;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
neg_lits.reset();
|
||||||
|
pos_lits.reset();
|
||||||
|
|
||||||
unsigned sz = buffer.size();
|
unsigned sz = buffer.size();
|
||||||
|
|
||||||
switch(sz) {
|
switch(sz) {
|
||||||
|
@ -228,8 +233,6 @@ br_status bool_rewriter::mk_nflat_or_core(unsigned num_args, expr * const * args
|
||||||
return BR_DONE;
|
return BR_DONE;
|
||||||
default:
|
default:
|
||||||
if (m_local_ctx && m_local_ctx_cost <= m_local_ctx_limit) {
|
if (m_local_ctx && m_local_ctx_cost <= m_local_ctx_limit) {
|
||||||
neg_lits.reset();
|
|
||||||
pos_lits.reset();
|
|
||||||
if (local_ctx_simp(sz, buffer.c_ptr(), result))
|
if (local_ctx_simp(sz, buffer.c_ptr(), result))
|
||||||
return BR_DONE;
|
return BR_DONE;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue