mirror of
https://github.com/Z3Prover/z3
synced 2025-04-12 20:18:18 +00:00
na
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
parent
ac64a370d7
commit
e0d4669116
|
@ -145,7 +145,7 @@ br_status bool_rewriter::mk_nflat_and_core(unsigned num_args, expr * const * arg
|
||||||
return BR_DONE;
|
return BR_DONE;
|
||||||
default:
|
default:
|
||||||
if (s) {
|
if (s) {
|
||||||
result = m().mk_and(sz, buffer.c_ptr());
|
result = m().mk_and(buffer);
|
||||||
return BR_DONE;
|
return BR_DONE;
|
||||||
}
|
}
|
||||||
return BR_FAILED;
|
return BR_FAILED;
|
||||||
|
@ -166,16 +166,15 @@ br_status bool_rewriter::mk_flat_and_core(unsigned num_args, expr * const * args
|
||||||
expr * arg = args[i];
|
expr * arg = args[i];
|
||||||
// Remark: all rewrites are depth 1.
|
// Remark: all rewrites are depth 1.
|
||||||
if (m().is_and(arg)) {
|
if (m().is_and(arg)) {
|
||||||
unsigned num = to_app(arg)->get_num_args();
|
for (expr* e : *to_app(arg))
|
||||||
for (unsigned j = 0; j < num; j++)
|
flat_args.push_back(e);
|
||||||
flat_args.push_back(to_app(arg)->get_arg(j));
|
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
flat_args.push_back(arg);
|
flat_args.push_back(arg);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (mk_nflat_and_core(flat_args.size(), flat_args.c_ptr(), result) == BR_FAILED)
|
if (mk_nflat_and_core(flat_args.size(), flat_args.c_ptr(), result) == BR_FAILED)
|
||||||
result = m().mk_and(flat_args.size(), flat_args.c_ptr());
|
result = m().mk_and(flat_args);
|
||||||
return BR_DONE;
|
return BR_DONE;
|
||||||
}
|
}
|
||||||
return mk_nflat_and_core(num_args, args, result);
|
return mk_nflat_and_core(num_args, args, result);
|
||||||
|
@ -277,13 +276,12 @@ br_status bool_rewriter::mk_flat_or_core(unsigned num_args, expr * const * args,
|
||||||
// Remark: all rewrites are depth 1.
|
// Remark: all rewrites are depth 1.
|
||||||
if (m().is_or(arg)) {
|
if (m().is_or(arg)) {
|
||||||
ordered = false;
|
ordered = false;
|
||||||
unsigned num = to_app(arg)->get_num_args();
|
for (expr* e : *to_app(arg))
|
||||||
for (unsigned j = 0; j < num; j++)
|
flat_args.push_back(e);
|
||||||
flat_args.push_back(to_app(arg)->get_arg(j));
|
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
flat_args.push_back(arg);
|
flat_args.push_back(arg);
|
||||||
ordered &= !prev || !lt(arg, prev);
|
ordered &= (!prev || !lt(arg, prev));
|
||||||
prev = arg;
|
prev = arg;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -292,7 +290,7 @@ br_status bool_rewriter::mk_flat_or_core(unsigned num_args, expr * const * args,
|
||||||
ast_lt lt;
|
ast_lt lt;
|
||||||
std::sort(flat_args.begin(), flat_args.end(), lt);
|
std::sort(flat_args.begin(), flat_args.end(), lt);
|
||||||
}
|
}
|
||||||
result = m().mk_or(flat_args.size(), flat_args.c_ptr());
|
result = m().mk_or(flat_args);
|
||||||
}
|
}
|
||||||
return BR_DONE;
|
return BR_DONE;
|
||||||
}
|
}
|
||||||
|
@ -350,7 +348,7 @@ bool bool_rewriter::simp_nested_not_or(unsigned num_args, expr * const * args,
|
||||||
mk_not(new_args[0], result);
|
mk_not(new_args[0], result);
|
||||||
return true;
|
return true;
|
||||||
default:
|
default:
|
||||||
result = m().mk_not(m().mk_or(new_args.size(), new_args.c_ptr()));
|
result = m().mk_not(m().mk_or(new_args));
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -796,7 +794,7 @@ br_status bool_rewriter::mk_distinct_core(unsigned num_args, expr * const * args
|
||||||
for (unsigned j = i + 1; j < num_args; j++)
|
for (unsigned j = i + 1; j < num_args; j++)
|
||||||
new_diseqs.push_back(m().mk_not(mk_eq(args[i], args[j])));
|
new_diseqs.push_back(m().mk_not(mk_eq(args[i], args[j])));
|
||||||
}
|
}
|
||||||
result = m().mk_and(new_diseqs.size(), new_diseqs.c_ptr());
|
result = m().mk_and(new_diseqs);
|
||||||
return BR_REWRITE3;
|
return BR_REWRITE3;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue