mirror of
https://github.com/Z3Prover/z3
synced 2026-02-09 18:40:51 +00:00
Add std::span overloads for mk_or and mk_xor and update call sites
Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com>
This commit is contained in:
parent
e8f8910587
commit
9d53131b50
5 changed files with 14 additions and 12 deletions
|
|
@ -2201,10 +2201,12 @@ public:
|
|||
app * mk_xor(expr * lhs, expr * rhs) { return mk_app(basic_family_id, OP_XOR, lhs, rhs); }
|
||||
app * mk_ite(expr * c, expr * t, expr * e) { return mk_app(basic_family_id, OP_ITE, c, t, e); }
|
||||
app * mk_xor(unsigned num_args, expr * const * args) { return mk_app(basic_family_id, OP_XOR, num_args, args); }
|
||||
app * mk_xor(ptr_buffer<expr> const& args) { return mk_xor(args.size(), args.data()); }
|
||||
app * mk_xor(ptr_vector<expr> const& args) { return mk_xor(args.size(), args.data()); }
|
||||
app * mk_xor(ref_buffer<expr, ast_manager> const& args) { return mk_xor(args.size(), args.data()); }
|
||||
app * mk_xor(std::span<expr* const> args) { return mk_app(basic_family_id, OP_XOR, args); }
|
||||
app * mk_xor(ptr_buffer<expr> const& args) { return mk_xor(std::span<expr* const>(args.data(), args.size())); }
|
||||
app * mk_xor(ptr_vector<expr> const& args) { return mk_xor(std::span<expr* const>(args.data(), args.size())); }
|
||||
app * mk_xor(ref_buffer<expr, ast_manager> const& args) { return mk_xor(std::span<expr* const>(args.data(), args.size())); }
|
||||
app * mk_or(unsigned num_args, expr * const * args) { return mk_app(basic_family_id, OP_OR, num_args, args); }
|
||||
app * mk_or(std::span<expr* const> args) { return mk_app(basic_family_id, OP_OR, args); }
|
||||
app * mk_and(std::span<expr* const> args) { return mk_app(basic_family_id, OP_AND, args); }
|
||||
app * mk_or(expr * arg1, expr * arg2) { return mk_app(basic_family_id, OP_OR, arg1, arg2); }
|
||||
app * mk_and(expr * arg1, expr * arg2) { return mk_app(basic_family_id, OP_AND, arg1, arg2); }
|
||||
|
|
@ -2216,10 +2218,10 @@ public:
|
|||
app * mk_and(ptr_vector<expr> const& args) { return mk_and(std::span<expr* const>(args.data(), args.size())); }
|
||||
app * mk_and(ref_buffer<expr, ast_manager> const& args) { return mk_and(std::span<expr* const>(args.data(), args.size())); }
|
||||
app * mk_and(ptr_buffer<expr> const& args) { return mk_and(std::span<expr* const>(args.data(), args.size())); }
|
||||
app * mk_or(ref_vector<expr, ast_manager> const& args) { return mk_or(args.size(), args.data()); }
|
||||
app * mk_or(ptr_vector<expr> const& args) { return mk_or(args.size(), args.data()); }
|
||||
app * mk_or(ref_buffer<expr, ast_manager> const& args) { return mk_or(args.size(), args.data()); }
|
||||
app * mk_or(ptr_buffer<expr> const& args) { return mk_or(args.size(), args.data()); }
|
||||
app * mk_or(ref_vector<expr, ast_manager> const& args) { return mk_or(std::span<expr* const>(args.data(), args.size())); }
|
||||
app * mk_or(ptr_vector<expr> const& args) { return mk_or(std::span<expr* const>(args.data(), args.size())); }
|
||||
app * mk_or(ref_buffer<expr, ast_manager> const& args) { return mk_or(std::span<expr* const>(args.data(), args.size())); }
|
||||
app * mk_or(ptr_buffer<expr> const& args) { return mk_or(std::span<expr* const>(args.data(), args.size())); }
|
||||
app * mk_implies(expr * arg1, expr * arg2) { return mk_app(basic_family_id, OP_IMPLIES, arg1, arg2); }
|
||||
app * mk_not(expr * n) { return mk_app(basic_family_id, OP_NOT, n); }
|
||||
app * mk_distinct(unsigned num_args, expr * const * args);
|
||||
|
|
|
|||
|
|
@ -472,7 +472,7 @@ struct nnf::imp {
|
|||
if (m.is_and(t) == fr.m_pol)
|
||||
r = m.mk_and(std::span<expr* const>(m_result_stack.data() + fr.m_spos, t->get_num_args()));
|
||||
else
|
||||
r = m.mk_or(t->get_num_args(), m_result_stack.data() + fr.m_spos);
|
||||
r = m.mk_or(std::span<expr* const>(m_result_stack.data() + fr.m_spos, t->get_num_args()));
|
||||
|
||||
m_result_stack.shrink(fr.m_spos);
|
||||
m_result_stack.push_back(r);
|
||||
|
|
@ -522,7 +522,7 @@ struct nnf::imp {
|
|||
|
||||
app * r;
|
||||
if (fr.m_pol)
|
||||
r = m.mk_or(2, m_result_stack.data() + fr.m_spos);
|
||||
r = m.mk_or(std::span<expr* const>(m_result_stack.data() + fr.m_spos, 2));
|
||||
else
|
||||
r = m.mk_and(std::span<expr* const>(m_result_stack.data() + fr.m_spos, 2));
|
||||
|
||||
|
|
|
|||
|
|
@ -1970,7 +1970,7 @@ void pred_transformer::update_solver_with_rfs(prop_solver *solver,
|
|||
}
|
||||
else {
|
||||
expr *args[4] = { not_rule_tag, last_tag, rf->get(), rf->tag() };
|
||||
e = m.mk_or(4, args);
|
||||
e = m.mk_or(args);
|
||||
}
|
||||
last_tag = m.mk_not(rf->tag());
|
||||
pm.formula_n2o(e.get(), e, pos);
|
||||
|
|
|
|||
|
|
@ -344,7 +344,7 @@ namespace nlarith {
|
|||
|
||||
app* mk_or(expr* a, expr* b) {
|
||||
expr* args[2] = { a, b };
|
||||
return mk_or(2, args);
|
||||
return mk_or(args);
|
||||
}
|
||||
void display_branching(
|
||||
std::ostream& out, app* x,
|
||||
|
|
|
|||
|
|
@ -156,7 +156,7 @@ namespace smt {
|
|||
p5 = m.mk_unit_resolution(2, ps);
|
||||
SASSERT(m.get_fact(p5) == m.mk_false());
|
||||
expr* eqs[3] = { m.mk_not(m_eq1), m.mk_not(m_eq2), m_eq3 };
|
||||
expr_ref conclusion(m.mk_or(3, eqs), m);
|
||||
expr_ref conclusion(m.mk_or(eqs), m);
|
||||
p6 = m.mk_lemma(p5, conclusion);
|
||||
return p6;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue