diff options
author | Andres Noetzli <andres.noetzli@gmail.com> | 2020-04-08 14:38:09 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-04-08 16:38:09 -0500 |
commit | a48cafdd09c3ff8cb9984bad930343958c30ce56 (patch) | |
tree | 6394a01dc7dbd296b4d1cc7cf3bbdd9cddfd68f7 /src/theory/uf/theory_uf.cpp | |
parent | 24357fea07bf1eb6b1156a8e455c58faee96b604 (diff) |
Perform theory widening eagerly (#4044)
Fixes #3971 and fixes #3991. In incremental mode, the logic can change from one
(check-sat) call to another. In the reported issue, we start with QF_NIA
but then switch to QF_UFNIA because there is a div term (which has a UF in
its expanded form). Dealing with this issue is challenging in general. As a
result, we have decided not to allow theory widening in
Theory::expandDefinitions() anymore but instead to do it eagerly in
SmtEngine::setDefaults().
Diffstat (limited to 'src/theory/uf/theory_uf.cpp')
-rw-r--r-- | src/theory/uf/theory_uf.cpp | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/src/theory/uf/theory_uf.cpp b/src/theory/uf/theory_uf.cpp index 3b42fa6a1..1098d42ce 100644 --- a/src/theory/uf/theory_uf.cpp +++ b/src/theory/uf/theory_uf.cpp @@ -201,7 +201,8 @@ unsigned TheoryUF::getArgumentStartIndexForApplyTerm( TNode node ) { return node.getKind()==kind::APPLY_UF ? 0 : 1; } -Node TheoryUF::expandDefinition(LogicRequest &logicRequest, Node node) { +Node TheoryUF::expandDefinition(Node node) +{ Trace("uf-exp-def") << "TheoryUF::expandDefinition: expanding definition : " << node << std::endl; if( node.getKind()==kind::HO_APPLY ){ |