Skip to content

Commit

Permalink
have theory_recfun use recursive function discriminator to control wh…
Browse files Browse the repository at this point in the history
…en it is enabled
  • Loading branch information
NikolajBjorner committed Nov 6, 2022
1 parent f004478 commit cbc5b1f
Show file tree
Hide file tree
Showing 2 changed files with 7 additions and 7 deletions.
9 changes: 5 additions & 4 deletions src/ast/recfun_decl_plugin.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -442,17 +442,18 @@ namespace recfun {
return promise_def(&u(), d);
}

void plugin::inherit(decl_plugin* other, ast_translation& tr) {
for (auto [k, v] : static_cast<plugin*>(other)->m_defs) {
void plugin::inherit(decl_plugin* _other, ast_translation& tr) {
plugin* other = static_cast<plugin*>(_other);
for (auto [k, v] : other->m_defs) {
func_decl_ref f(tr(k), tr.to());
if (m_defs.contains(f))
continue;
def* d = v->copy(u(), tr);
m_defs.insert(f, d);
for (case_def & c : d->get_cases())
m_case_defs.insert(c.get_decl(), &c);

m_case_defs.insert(c.get_decl(), &c);
}
m_has_rec_defs = other->m_has_rec_defs;
}

promise_def plugin::ensure_def(symbol const& name, unsigned n, sort *const * params, sort * range, bool is_generated) {
Expand Down
5 changes: 2 additions & 3 deletions src/smt/theory_recfun.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -102,9 +102,8 @@ namespace smt {
void theory_recfun::relevant_eh(app * n) {
SASSERT(ctx.relevancy());
// TRACEFN("relevant_eh: (defined) " << u().is_defined(n) << " " << mk_pp(n, m));
if (u().is_defined(n) && u().has_defs()) {
if (u().is_defined(n) && u().has_defs())
push_case_expand(n);
}
}

void theory_recfun::push_scope_eh() {
Expand Down Expand Up @@ -418,7 +417,7 @@ namespace smt {
}

void theory_recfun::add_theory_assumptions(expr_ref_vector & assumptions) {
if (u().has_defs() || !m_disabled_guards.empty()) {
if (u().has_rec_defs() || !m_disabled_guards.empty()) {
app_ref dlimit = m_util.mk_num_rounds_pred(m_num_rounds);
TRACEFN("add_theory_assumption " << dlimit);
assumptions.push_back(dlimit);
Expand Down

0 comments on commit cbc5b1f

Please sign in to comment.