Skip to content

Commit aa6dddb

Browse files
update pattern inference to allow patterns with variables outside of scope
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
1 parent 30a4a84 commit aa6dddb

3 files changed

Lines changed: 4 additions & 7 deletions

File tree

src/ast/pattern/pattern_inference.cpp

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -173,13 +173,9 @@ inline void pattern_inference_cfg::collect::save(expr * n, unsigned delta, info
173173
void pattern_inference_cfg::collect::save_candidate(expr * n, unsigned delta) {
174174
switch (n->get_kind()) {
175175
case AST_VAR: {
176-
unsigned idx = to_var(n)->get_idx();
177-
if (idx >= m_num_bindings + delta) {
178-
save(n, delta, nullptr);
179-
return;
180-
}
181176
uint_set free_vars;
182-
if (delta <= idx)
177+
unsigned idx = to_var(n)->get_idx();
178+
if (delta <= idx && idx < m_num_bindings + delta)
183179
free_vars.insert(idx - delta);
184180
info * i = alloc(info, m, n, free_vars, 1);
185181
save(n, delta, i);

src/smt/smt_quantifier.cpp

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -917,7 +917,6 @@ namespace smt {
917917
void propagate() override {
918918
if (!m_active)
919919
return;
920-
IF_VERBOSE(10, verbose_stream() << "ho_matching: propagate(), mam.has_work=" << m_mam->has_work() << "\n");
921920
m_mam->match();
922921
if (!m_context->relevancy() && use_ematching()) {
923922
ptr_vector<enode>::const_iterator it = m_context->begin_enodes();

src/smt/theory_array_base.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -339,6 +339,8 @@ namespace smt {
339339
}
340340

341341
void theory_array_base::assert_congruent(enode * a1, enode * a2) {
342+
if (ctx.get_fparams().m_array_fake_support)
343+
return;
342344
TRACE(array, tout << "congruent: #" << a1->get_owner_id() << " #" << a2->get_owner_id() << "\n";);
343345
SASSERT(is_array_sort(a1));
344346
SASSERT(is_array_sort(a2));

0 commit comments

Comments
 (0)