3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-08-21 18:50:26 +00:00

rename set-flat to set-flat-and-or to allow to differentiate parameters

This commit is contained in:
Nikolaj Bjorner 2022-10-27 11:22:57 -07:00
parent fe1b4bf5ce
commit 1fae3aa152
9 changed files with 15 additions and 15 deletions

View file

@ -50,7 +50,7 @@ Notes:
*/
class bool_rewriter {
ast_manager & m_manager;
bool m_flat;
bool m_flat_and_or;
bool m_local_ctx;
bool m_elim_and;
bool m_blast_distinct;
@ -83,8 +83,8 @@ public:
family_id get_fid() const { return m().get_basic_family_id(); }
bool is_eq(expr * t) const { return m().is_eq(t); }
bool flat() const { return m_flat; }
void set_flat(bool f) { m_flat = f; }
bool flat_and_or() const { return m_flat_and_or; }
void set_flat_and_or(bool f) { m_flat_and_or = f; }
bool elim_and() const { return m_elim_and; }
void set_elim_and(bool f) { m_elim_and = f; }
void reset_local_ctx_cost() { m_local_ctx_cost = 0; }
@ -111,7 +111,7 @@ public:
mk_and_as_or(num_args, args, result);
return BR_DONE;
}
else if (m_flat) {
else if (m_flat_and_or) {
return mk_flat_and_core(num_args, args, result);
}
else {
@ -119,7 +119,7 @@ public:
}
}
br_status mk_or_core(unsigned num_args, expr * const * args, expr_ref & result) {
return m_flat ?
return m_flat_and_or ?
mk_flat_or_core(num_args, args, result) :
mk_nflat_or_core(num_args, args, result);
}
@ -234,7 +234,7 @@ public:
struct bool_rewriter_cfg : public default_rewriter_cfg {
bool_rewriter m_r;
bool flat_assoc(func_decl * f) const { return m_r.flat() && (m_r.m().is_and(f) || m_r.m().is_or(f)); }
bool flat_assoc(func_decl * f) const { return m_r.flat_and_or() && (m_r.m().is_and(f) || m_r.m().is_or(f)); }
bool rewrite_patterns() const { return false; }
br_status reduce_app(func_decl * f, unsigned num, expr * const * args, expr_ref & result, proof_ref & result_pr) {
result_pr = nullptr;