3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-04-30 12:25:51 +00:00

move functionality from qe_util to ast_util

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
Nikolaj Bjorner 2015-06-23 14:33:45 +02:00
parent 5f484c069b
commit bf5419d44a
25 changed files with 174 additions and 161 deletions

View file

@ -143,7 +143,7 @@ namespace pdr {
expr_ref closure::close_conjunction(expr* fml) {
expr_ref_vector fmls(m);
qe::flatten_and(fml, fmls);
flatten_and(fml, fmls);
for (unsigned i = 0; i < fmls.size(); ++i) {
fmls[i] = close_fml(fmls[i].get());
}

View file

@ -349,7 +349,7 @@ namespace pdr {
void pred_transformer::add_property(expr* lemma, unsigned lvl) {
expr_ref_vector lemmas(m);
qe::flatten_and(lemma, lemmas);
flatten_and(lemma, lemmas);
for (unsigned i = 0; i < lemmas.size(); ++i) {
expr* lemma_i = lemmas[i].get();
if (add_property1(lemma_i, lvl)) {
@ -594,7 +594,7 @@ namespace pdr {
for (unsigned i = ut_size; i < t_size; ++i) {
tail.push_back(rule.get_tail(i));
}
qe::flatten_and(tail);
flatten_and(tail);
for (unsigned i = 0; i < tail.size(); ++i) {
expr_ref tmp(m);
var_subst(m, false)(tail[i].get(), var_reprs.size(), (expr*const*)var_reprs.c_ptr(), tmp);
@ -809,7 +809,7 @@ namespace pdr {
ast_manager& m = pt().get_manager();
expr_ref_vector conjs(m);
obj_map<expr,expr*> model;
qe::flatten_and(state(), conjs);
flatten_and(state(), conjs);
for (unsigned i = 0; i < conjs.size(); ++i) {
expr* e = conjs[i].get(), *e1, *e2;
if (m.is_eq(e, e1, e2) || m.is_iff(e, e1, e2)) {
@ -2176,7 +2176,7 @@ namespace pdr {
expr_ref_vector mdl(m), forms(m), Phi(m);
forms.push_back(T);
forms.push_back(phi);
qe::flatten_and(forms);
flatten_and(forms);
ptr_vector<expr> forms1(forms.size(), forms.c_ptr());
if (use_model_generalizer) {
Phi.append(mev.minimize_model(forms1, M));
@ -2232,7 +2232,7 @@ namespace pdr {
TRACE("pdr", tout << "Projected:\n" << mk_pp(phi1, m) << "\n";);
}
Phi.reset();
qe::flatten_and(phi1, Phi);
flatten_and(phi1, Phi);
unsigned_vector indices;
vector<expr_ref_vector> child_states;
child_states.resize(preds.size(), expr_ref_vector(m));

View file

@ -449,7 +449,7 @@ namespace pdr {
expr_set bs;
expr_ref_vector blist(m_pr);
qe::flatten_and(B, blist);
flatten_and(B, blist);
for (unsigned i = 0; i < blist.size(); ++i) {
bs.insert(blist[i].get());
}

View file

@ -119,7 +119,7 @@ namespace pdr {
if (core.empty()) return;
expr_ref A(m), B(qe::mk_and(core)), C(m);
expr_ref_vector Bs(m);
qe::flatten_or(B, Bs);
flatten_or(B, Bs);
A = n.pt().get_propagation_formula(m_ctx.get_pred_transformers(), n.level());
bool change = false;
@ -138,7 +138,7 @@ namespace pdr {
C = qe::mk_or(Bs);
TRACE("pdr", tout << "prop:\n" << mk_pp(A,m) << "\ngen:" << mk_pp(B, m) << "\nto: " << mk_pp(C, m) << "\n";);
core.reset();
qe::flatten_and(C, core);
flatten_and(C, core);
uses_level = true;
}
}
@ -190,7 +190,7 @@ namespace pdr {
expr_ref fml2 = n.pt().get_formulas(n.level(), false);
fml1_2.push_back(fml1);
fml1_2.push_back(0);
qe::flatten_and(fml2, fmls);
flatten_and(fml2, fmls);
for (unsigned i = 0; i < fmls.size(); ++i) {
fml2 = m.mk_not(fmls[i].get());
fml1_2[1] = fml2;

View file

@ -56,7 +56,7 @@ namespace pdr {
expr_ref inductive_property::fixup_clause(expr* fml) const {
expr_ref_vector disjs(m);
qe::flatten_or(fml, disjs);
flatten_or(fml, disjs);
expr_ref result(m);
bool_rewriter(m).mk_or(disjs.size(), disjs.c_ptr(), result);
return result;
@ -65,7 +65,7 @@ namespace pdr {
expr_ref inductive_property::fixup_clauses(expr* fml) const {
expr_ref_vector conjs(m);
expr_ref result(m);
qe::flatten_and(fml, conjs);
flatten_and(fml, conjs);
for (unsigned i = 0; i < conjs.size(); ++i) {
conjs[i] = fixup_clause(conjs[i].get());
}
@ -237,7 +237,7 @@ namespace pdr {
expr_ref manager::mk_not_and(expr_ref_vector const& conjs) {
expr_ref result(m), e(m);
expr_ref_vector es(conjs);
qe::flatten_and(es);
flatten_and(es);
for (unsigned i = 0; i < es.size(); ++i) {
m_brwr.mk_not(es[i].get(), e);
es[i] = e;

View file

@ -76,7 +76,7 @@ namespace pdr {
}
void mk_safe(expr_ref_vector& conjs) {
qe::flatten_and(conjs);
flatten_and(conjs);
expand_literals(conjs);
for (unsigned i = 0; i < conjs.size(); ++i) {
expr * lit = conjs[i].get();

View file

@ -93,7 +93,7 @@ namespace pdr {
void reduce_disequalities(model& model, unsigned threshold, expr_ref& fml) {
ast_manager& m = fml.get_manager();
expr_ref_vector conjs(m);
qe::flatten_and(fml, conjs);
flatten_and(fml, conjs);
obj_map<expr, unsigned> diseqs;
expr* n, *lhs, *rhs;
for (unsigned i = 0; i < conjs.size(); ++i) {