Skip to content

Commit 03f18c1

Browse files
some more copilot aided updated
1 parent 2ecf6dc commit 03f18c1

File tree

5 files changed

+39
-52
lines changed

5 files changed

+39
-52
lines changed

src/tactic/arith/add_bounds_tactic.cpp

+2-2
Original file line numberDiff line numberDiff line change
@@ -41,8 +41,8 @@ struct is_unbounded_proc {
4141
bool is_unbounded(goal const & g) {
4242
ast_manager & m = g.m();
4343
bound_manager bm(m);
44-
for (unsigned i = 0; i < g.size(); ++i)
45-
bm(g.form(i), g.dep(i), g.pr(i));
44+
for (auto [f, d, p] : g)
45+
bm(f, d, p);
4646
is_unbounded_proc proc(bm);
4747
return test(g, proc);
4848
}

src/tactic/arith/degree_shift_tactic.cpp

+25-32
Original file line numberDiff line numberDiff line change
@@ -161,11 +161,9 @@ class degree_shift_tactic : public tactic {
161161

162162
void display_candidates(std::ostream & out) {
163163
out << "candidates:\n";
164-
for (auto const& kv : m_var2degree) {
165-
if (!kv.m_value.is_one()) {
166-
out << "POWER: " << kv.m_value << "\n" << mk_ismt2_pp(kv.m_key, m) << "\n";
167-
}
168-
}
164+
for (auto const& [k, v] : m_var2degree)
165+
if (!v.is_one())
166+
out << "POWER: " << v << "\n" << mk_ismt2_pp(k, m) << "\n";
169167
}
170168

171169
void collect(goal const & g) {
@@ -182,12 +180,11 @@ class degree_shift_tactic : public tactic {
182180
void discard_non_candidates() {
183181
m_pinned.reset();
184182
ptr_vector<app> to_delete;
185-
for (auto const& kv : m_var2degree) {
186-
if (kv.m_value.is_one())
187-
to_delete.push_back(kv.m_key);
183+
for (auto const& [k, v] : m_var2degree)
184+
if (v.is_one())
185+
to_delete.push_back(k);
188186
else
189-
m_pinned.push_back(kv.m_key); // make sure it is not deleted during simplifications
190-
}
187+
m_pinned.push_back(k); // make sure it is not deleted during simplifications
191188
for (app* a : to_delete)
192189
m_var2degree.erase(a);
193190
}
@@ -199,23 +196,23 @@ class degree_shift_tactic : public tactic {
199196
xmc = alloc(generic_model_converter, m, "degree_shift");
200197
mc = xmc;
201198
}
202-
for (auto const& kv : m_var2degree) {
203-
SASSERT(kv.m_value.is_int());
204-
SASSERT(kv.m_value >= rational(2));
205-
app * fresh = m.mk_fresh_const(nullptr, kv.m_key->get_decl()->get_range());
199+
for (auto const& [k, v] : m_var2degree) {
200+
SASSERT(v.is_int());
201+
SASSERT(v >= rational(2));
202+
app * fresh = m.mk_fresh_const(nullptr, k->get_decl()->get_range());
206203
m_pinned.push_back(fresh);
207-
m_var2var.insert(kv.m_key, fresh);
204+
m_var2var.insert(k, fresh);
208205
if (m_produce_models) {
209206
xmc->hide(fresh->get_decl());
210-
xmc->add(kv.m_key->get_decl(), mk_power(fresh, rational(1)/kv.m_value));
207+
xmc->add(k->get_decl(), mk_power(fresh, rational(1)/v));
211208
}
212209
if (m_produce_proofs) {
213-
expr * s = mk_power(kv.m_key, kv.m_value);
210+
expr * s = mk_power(k, v);
214211
expr * eq = m.mk_eq(fresh, s);
215212
proof * pr1 = m.mk_def_intro(eq);
216213
proof * result_pr = m.mk_apply_def(fresh, s, pr1);
217214
m_pinned.push_back(result_pr);
218-
m_var2pr.insert(kv.m_key, result_pr);
215+
m_var2pr.insert(k, result_pr);
219216
}
220217
}
221218
}
@@ -235,28 +232,24 @@ class degree_shift_tactic : public tactic {
235232
// substitute
236233
expr_ref new_curr(m);
237234
proof_ref new_pr(m);
238-
unsigned size = g->size();
239-
for (unsigned idx = 0; idx < size; idx++) {
235+
unsigned idx = 0;
236+
for (auto [curr, dep, pr] : *g) {
240237
checkpoint();
241-
expr * curr = g->form(idx);
242238
(*m_rw)(curr, new_curr, new_pr);
243-
if (m_produce_proofs) {
244-
proof * pr = g->pr(idx);
245-
new_pr = m.mk_modus_ponens(pr, new_pr);
246-
}
247-
g->update(idx, new_curr, new_pr, g->dep(idx));
239+
new_pr = m.mk_modus_ponens(pr, new_pr);
240+
g->update(idx++, new_curr, new_pr, dep);
248241
}
249242

250243
// add >= 0 constraints for variables with even degree
251-
for (auto const& kv : m_var2degree) {
252-
SASSERT(kv.m_value.is_int());
253-
SASSERT(kv.m_value >= rational(2));
254-
if (kv.m_value.is_even()) {
255-
app * new_var = m_var2var.find(kv.m_key);
244+
for (auto const& [k,v] : m_var2degree) {
245+
SASSERT(v.is_int());
246+
SASSERT(v >= rational(2));
247+
if (v.is_even()) {
248+
app * new_var = m_var2var.find(k);
256249
app * new_c = m_autil.mk_ge(new_var, m_autil.mk_numeral(rational(0), false));
257250
proof * new_pr = nullptr;
258251
if (m_produce_proofs) {
259-
proof * pr = m_var2pr.find(kv.m_key);
252+
proof * pr = m_var2pr.find(k);
260253
new_pr = m.mk_th_lemma(m_autil.get_family_id(), new_c, 1, &pr);
261254
}
262255
g->assert_expr(new_c, new_pr, nullptr);

src/tactic/core/blast_term_ite_tactic.cpp

+5-10
Original file line numberDiff line numberDiff line change
@@ -127,26 +127,21 @@ class blast_term_ite_tactic : public tactic {
127127

128128
void operator()(goal_ref const & g, goal_ref_buffer & result) {
129129
tactic_report report("blast-term-ite", *g);
130-
bool produce_proofs = g->proofs_enabled();
131-
132130
expr_ref new_curr(m);
133131
proof_ref new_pr(m);
134-
unsigned size = g->size();
135132
unsigned num_fresh = 0;
136-
for (unsigned idx = 0; idx < size; idx++) {
137-
expr * curr = g->form(idx);
133+
unsigned idx = 0;
134+
for (auto [curr, dep, pr] : *g) {
138135
if (m_rw.m_cfg.m_max_inflation < UINT_MAX) {
139136
m_rw.m_cfg.m_init_term_size = get_num_exprs(curr);
140137
num_fresh += m_rw.m_cfg.m_num_fresh;
141138
m_rw.m_cfg.m_num_fresh = 0;
142139
}
143140
m_rw(curr, new_curr, new_pr);
144-
if (produce_proofs) {
145-
proof * pr = g->pr(idx);
146-
new_pr = m.mk_modus_ponens(pr, new_pr);
147-
}
148-
g->update(idx, new_curr, new_pr, g->dep(idx));
141+
new_pr = m.mk_modus_ponens(pr, new_pr);
142+
g->update(idx++, new_curr, new_pr, dep);
149143
}
144+
150145
report_tactic_progress(":blast-term-ite-consts", m_rw.m_cfg.m_num_fresh + num_fresh);
151146
g->inc_depth();
152147
result.push_back(g.get());

src/tactic/core/reduce_args_tactic.cpp

+3-4
Original file line numberDiff line numberDiff line change
@@ -425,14 +425,13 @@ class reduce_args_tactic : public tactic {
425425
reduce_args_ctx ctx(m);
426426
reduce_args_rw rw(*this, decl2args, ctx.m_decl2arg2funcs);
427427

428-
unsigned sz = g.size();
429-
for (unsigned i = 0; i < sz; i++) {
428+
unsigned idx = 0;
429+
for (auto [f, dep, pr] : g) {
430430
if (g.inconsistent())
431431
break;
432-
expr * f = g.form(i);
433432
expr_ref new_f(m);
434433
rw(f, new_f);
435-
g.update(i, new_f);
434+
g.update(idx++, new_f);
436435
}
437436

438437
report_tactic_progress(":reduced-funcs", decl2args.size());

src/tactic/core/tseitin_cnf_tactic.cpp

+4-4
Original file line numberDiff line numberDiff line change
@@ -852,10 +852,10 @@ class tseitin_cnf_tactic : public tactic {
852852
else
853853
m_mc = nullptr;
854854

855-
unsigned size = g->size();
856-
for (unsigned idx = 0; idx < size; idx++) {
857-
process(g->form(idx), g->dep(idx));
858-
g->update(idx, m.mk_true(), nullptr, nullptr); // to save memory
855+
unsigned idx = 0;
856+
for (auto [f, dep, pr] : *g) {
857+
process(f, dep);
858+
g->update(idx++, m.mk_true(), nullptr, nullptr);
859859
}
860860

861861
SASSERT(!m_produce_unsat_cores || m_clauses.size() == m_deps.size());

0 commit comments

Comments
 (0)