mirror of
https://github.com/Z3Prover/z3
synced 2026-02-20 07:24:40 +00:00
Modernize C++ patterns: range-based for loops and nullptr (#8167)
* Initial plan * Replace NULL with nullptr in test files Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com> * Convert iterator loops to range-based for loops (part 1) Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com> * Convert iterator loops to range-based for loops (part 2) Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com> * Fix compilation errors in iterator loop conversions 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:
parent
f08f97b555
commit
aaec2e032e
16 changed files with 84 additions and 140 deletions
|
|
@ -94,10 +94,10 @@ namespace datalog {
|
|||
new_tail.append(instantiate_pred(to_app(preds[i].get())));
|
||||
}
|
||||
new_tail.append(phi);
|
||||
for(obj_map<expr, var*>::iterator it = done_selects.begin(); it!=done_selects.end(); ++it) {
|
||||
for (auto const& kv : done_selects) {
|
||||
expr_ref tmp(m);
|
||||
tmp = &it->get_key();
|
||||
new_tail.push_back(m.mk_eq(it->get_value(), tmp));
|
||||
tmp = kv.m_key;
|
||||
new_tail.push_back(m.mk_eq(kv.m_value, tmp));
|
||||
}
|
||||
proof_ref pr(m);
|
||||
src_manager->mk_rule(m.mk_implies(m.mk_and(new_tail.size(), new_tail.data()), new_head), pr, dest, r.name());
|
||||
|
|
|
|||
|
|
@ -189,10 +189,8 @@ namespace datalog {
|
|||
if (!m_ctx.karr()) {
|
||||
return nullptr;
|
||||
}
|
||||
rule_set::iterator it = source.begin(), end = source.end();
|
||||
for (; it != end; ++it) {
|
||||
rule const& r = **it;
|
||||
if (r.has_negation()) {
|
||||
for (rule* r : source) {
|
||||
if (r->has_negation()) {
|
||||
return nullptr;
|
||||
}
|
||||
}
|
||||
|
|
@ -225,8 +223,8 @@ namespace datalog {
|
|||
rel_context_base& rctx = *m_inner_ctx.get_rel_context();
|
||||
ptr_vector<func_decl> heads;
|
||||
func_decl_set const& predicates = m_ctx.get_predicates();
|
||||
for (func_decl_set::iterator fit = predicates.begin(); fit != predicates.end(); ++fit) {
|
||||
m_inner_ctx.register_predicate(*fit, false);
|
||||
for (func_decl* pred : predicates) {
|
||||
m_inner_ctx.register_predicate(pred, false);
|
||||
}
|
||||
m_inner_ctx.ensure_opened();
|
||||
m_inner_ctx.replace_rules(src);
|
||||
|
|
@ -256,9 +254,8 @@ namespace datalog {
|
|||
|
||||
rule_set* mk_karr_invariants::update_rules(rule_set const& src) {
|
||||
scoped_ptr<rule_set> dst = alloc(rule_set, m_ctx);
|
||||
rule_set::iterator it = src.begin(), end = src.end();
|
||||
for (; it != end; ++it) {
|
||||
update_body(*dst, **it);
|
||||
for (rule* r : src) {
|
||||
update_body(*dst, *r);
|
||||
}
|
||||
if (m_ctx.get_model_converter()) {
|
||||
add_invariant_model_converter* kmc = alloc(add_invariant_model_converter, m);
|
||||
|
|
|
|||
|
|
@ -115,16 +115,14 @@ namespace datalog {
|
|||
if (!m_sliceform2rule.empty()) {
|
||||
return;
|
||||
}
|
||||
obj_map<rule, rule*>::iterator it = m_rule2slice.begin();
|
||||
obj_map<rule, rule*>::iterator end = m_rule2slice.end();
|
||||
expr_ref fml(m);
|
||||
for (; it != end; ++it) {
|
||||
rm.to_formula(*it->m_value, fml);
|
||||
for (auto const& kv : m_rule2slice) {
|
||||
rm.to_formula(*kv.m_value, fml);
|
||||
m_pinned_exprs.push_back(fml);
|
||||
TRACE(dl,
|
||||
tout << "orig: " << mk_pp(fml, m) << "\n";
|
||||
it->m_value->display(m_ctx, tout << "new:\n"););
|
||||
m_sliceform2rule.insert(fml, it->m_key);
|
||||
kv.m_value->display(m_ctx, tout << "new:\n"););
|
||||
m_sliceform2rule.insert(fml, kv.m_key);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -714,14 +712,13 @@ namespace datalog {
|
|||
}
|
||||
|
||||
void mk_slice::declare_predicates(rule_set const& src, rule_set& dst) {
|
||||
obj_map<func_decl, bit_vector>::iterator it = m_sliceable.begin(), end = m_sliceable.end();
|
||||
ptr_vector<sort> domain;
|
||||
bool has_output = false;
|
||||
func_decl* f;
|
||||
for (; it != end; ++it) {
|
||||
for (auto const& kv : m_sliceable) {
|
||||
domain.reset();
|
||||
func_decl* p = it->m_key;
|
||||
bit_vector const& bv = it->m_value;
|
||||
func_decl* p = kv.m_key;
|
||||
bit_vector const& bv = kv.m_value;
|
||||
for (unsigned i = 0; i < bv.size(); ++i) {
|
||||
if (!bv.get(i)) {
|
||||
domain.push_back(p->get_domain(i));
|
||||
|
|
@ -848,9 +845,8 @@ namespace datalog {
|
|||
update_rules(src, *result);
|
||||
TRACE(dl, result->display(tout););
|
||||
if (m_mc) {
|
||||
obj_map<func_decl, bit_vector>::iterator it = m_sliceable.begin(), end = m_sliceable.end();
|
||||
for (; it != end; ++it) {
|
||||
m_mc->add_sliceable(it->m_key, it->m_value);
|
||||
for (auto const& kv : m_sliceable) {
|
||||
m_mc->add_sliceable(kv.m_key, kv.m_value);
|
||||
}
|
||||
}
|
||||
m_ctx.add_proof_converter(spc.get());
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue