3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2026-02-22 08:17:37 +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

@ -77,7 +77,7 @@ class factor_tactic : public tactic {
if (args.size() == 1)
result = args[0];
else
result = m.mk_or(args.size(), args.data());
result = m.mk_or(args);
}
decl_kind flip(decl_kind k) {
@ -161,9 +161,9 @@ class factor_tactic : public tactic {
if (args.size() == 1)
result = args[0];
else if (strict)
result = m.mk_and(args.size(), args.data());
result = m.mk_and(args);
else
result = m.mk_or(args.size(), args.data());
result = m.mk_or(args);
}
br_status factor(func_decl * f, expr * lhs, expr * rhs, expr_ref & result) {

View file

@ -967,7 +967,7 @@ class fm_tactic : public tactic {
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

@ -341,7 +341,7 @@ public:
if (!m.is_true(e)) {
es.push_back(e);
}
result = mk_and(m, es.size(), es.data());
result = mk_and(es);
if (!m.is_true(e)) {
es.pop_back();
}

View file

@ -293,7 +293,7 @@ private:
switch (m_cls.size()) {
case 0: m_result.push_back(m.mk_false()); break;
case 1: m_result.push_back(m_cls[0]); break;
default: m_result.push_back(m.mk_or(m_cls.size(), m_cls.data()));
default: m_result.push_back(m.mk_or(m_cls));
}
return;
}
@ -380,7 +380,7 @@ private:
for (unsigned i = 0; i < m_p.size(); ++i) {
args.push_back(mon_lit2lit(m_p[i]));
}
r = m.mk_or(args.size(), args.data());
r = m.mk_or(args);
return;
}

View file

@ -173,8 +173,8 @@ class elim_small_bv_tactic : public tactic {
for (unsigned k = 0; k < new_bodies.size(); ++k)
tout << mk_ismt2_pp(new_bodies[k].get(), m) << std::endl; );
body = is_forall(q) ? m.mk_and(new_bodies.size(), new_bodies.data()) :
m.mk_or(new_bodies.size(), new_bodies.data());
body = is_forall(q) ? m.mk_and(new_bodies) :
m.mk_or(new_bodies);
SASSERT(is_well_sorted(m, body));
proof_ref pr(m);

View file

@ -175,7 +175,7 @@ class occf_tactic : public tactic {
}
if (keep != nullptr)
new_lits.push_back(keep);
g->update(i, m.mk_or(new_lits.size(), new_lits.data()), nullptr, d);
g->update(i, m.mk_or(new_lits), nullptr, d);
}
g->inc_depth();
result.push_back(g.get());

View file

@ -164,7 +164,7 @@ private:
for (unsigned i = 0; i < g.size(); ++i) {
conjs.push_back(g.form(i));
}
fml = m.mk_and(conjs.size(), conjs.data());
fml = m.mk_and(conjs);
normalize(fml);
}