3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2026-02-23 00:37:36 +00:00

Refactor mk_and/mk_or call sites to use vector overloads (#8286)

* Initial plan

* Refactor mk_and and mk_or call sites to use overloaded methods

Changed 130 call sites across 64 files to use vector overloads directly instead of manually passing .size() and .data()/.c_ptr()

Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com>

* Revert mk_or changes for ptr_buffer/ptr_vector (no overload exists in ast_util.h)

* Fix compilation errors from mk_and/mk_or refactoring

Fixed type mismatches by:
- Removing m parameter for expr_ref_vector (ast_util.h has mk_and/mk_or(expr_ref_vector) overloads)
- Reverting changes for ref_buffer types (no overload exists in ast_util.h, only in ast.h for m.mk_and)
- Verified build succeeds and Z3 works correctly

Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com>

* Fix test files to use correct mk_and/mk_or overloads

Changed test/doc.cpp and test/udoc_relation.cpp to use mk_and(expr_ref_vector) and mk_or(expr_ref_vector) without m parameter

Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com>
This commit is contained in:
Copilot 2026-01-22 13:21:22 -08:00 committed by Nikolaj Bjorner
parent 21f10f0a5c
commit 1d417e3a0f
61 changed files with 118 additions and 118 deletions

View file

@ -550,7 +550,7 @@ namespace qel {
void flatten_definitions(expr_ref_vector& conjs) {
TRACE(qe_lite,
expr_ref tmp(m);
tmp = m.mk_and(conjs.size(), conjs.data());
tmp = m.mk_and(conjs);
tout << mk_pp(tmp, m) << "\n";);
for (unsigned i = 0; i < conjs.size(); ++i) {
expr* c = conjs[i].get();
@ -586,7 +586,7 @@ namespace qel {
}
TRACE(qe_lite,
expr_ref tmp(m);
tmp = m.mk_and(conjs.size(), conjs.data());
tmp = m.mk_and(conjs);
tout << "after flatten\n" << mk_pp(tmp, m) << "\n";);
}
@ -665,7 +665,7 @@ namespace qel {
if (!m_order.empty()) {
expr_ref r(m), new_r(m);
r = m.mk_and(conjs.size(), conjs.data());
r = m.mk_and(conjs);
create_substitution(largest_vinx + 1);
new_r = m_subst(r, m_subst_map.size(), m_subst_map.data());
m_rewriter(new_r);
@ -1550,7 +1550,7 @@ namespace fm {
if (lits.size() == 1)
return to_app(lits[0]);
else
return m.mk_or(lits.size(), lits.data());
return m.mk_or(lits);
}
var mk_var(expr * t) {

View file

@ -858,7 +858,7 @@ namespace qe {
ptr_vector<expr> fmls;
expr_ref fml(m);
in->get_formulas(fmls);
fml = mk_and(m, fmls.size(), fmls.data());
fml = mk_and(m, fmls);
if (m_mode == elim_t) {
fml = m.mk_not(fml);
}

View file

@ -388,7 +388,7 @@ namespace qe {
expr* l_i = l->get_arg(i);
conj.push_back(m.mk_eq(l_i, r_i));
}
expr* e = m.mk_and(conj.size(), conj.data());
expr* e = m.mk_and(conj);
m_map.insert(a, e, nullptr);
TRACE(qe, tout << "replace: " << mk_pp(a, m) << " ==> \n" << mk_pp(e, m) << "\n";);
return true;

View file

@ -1282,7 +1282,7 @@ namespace qe {
expr_ref_vector defs(m);
expr_ref fml(m);
in->get_formulas(fmls);
fml = mk_and(m, fmls.size(), fmls.data());
fml = mk_and(m, fmls);
// for now:
// fail if cores. (TBD)